{
 "version": 1,
 "built": "2026-10-06T02:55:55+00:00",
 "groups": [
  {
   "id": "access",
   "title": "Access & traffic"
  },
  {
   "id": "utilities",
   "title": "Utilities & power"
  },
  {
   "id": "ground",
   "title": "Ground",
   "note": "Soils and slope, summarised to H3 hexagons (~0.7 km²)"
  },
  {
   "id": "hazards",
   "title": "Hazards"
  }
 ],
 "layers": [
  {
   "id": "aadt",
   "title": "Traffic counts (AADT)",
   "group": "access",
   "kind": "line",
   "default_on": true,
   "minzoom": 8,
   "count": 8560,
   "source": {
    "agency": "Montana Department of Transportation",
    "name": "Traffic Yearly Counts (TYC) + count-site history",
    "url": "https://gis.mtmdt.us/server/rest/services/MDTGIS/Traffic/MapServer/5",
    "cadence": "Annual",
    "retrieved": "2026-10-06",
    "license": "Public record"
   },
   "coverage": "All MDT-counted segments statewide for 2025: Interstates, US and state highways, urban routes and many secondary roads (8,560 segments; 7,458 count sites with 2014–2025 history).",
   "gaps": "Most local and county roads are not counted. Short-term counts are adjusted to an annual average, and many years are MDT estimates rather than counts. Truck shares come from MDT's vehicle-class factors.",
   "files": {
    "parts": [
     {
      "f": "site/aadt/beaverhead.geojson",
      "c": "Beaverhead",
      "n": 188,
      "b": [
       -113.9476,
       44.5099,
       -111.5238,
       45.8502
      ],
      "kb": 125
     },
     {
      "f": "site/aadt/big_horn.geojson",
      "c": "Big Horn",
      "n": 177,
      "b": [
       -108.6997,
       44.996,
       -106.3911,
       46.0434
      ],
      "kb": 100
     },
     {
      "f": "site/aadt/blaine.geojson",
      "c": "Blaine",
      "n": 102,
      "b": [
       -109.4976,
       47.7375,
       -108.3421,
       48.9995
      ],
      "kb": 69
     },
     {
      "f": "site/aadt/broadwater.geojson",
      "c": "Broadwater",
      "n": 60,
      "b": [
       -111.7878,
       45.8537,
       -111.0693,
       46.6448
      ],
      "kb": 36
     },
     {
      "f": "site/aadt/carbon.geojson",
      "c": "Carbon",
      "n": 88,
      "b": [
       -109.6426,
       44.9996,
       -108.4494,
       45.637
      ],
      "kb": 62
     },
     {
      "f": "site/aadt/carter.geojson",
      "c": "Carter",
      "n": 33,
      "b": [
       -105.0383,
       44.9978,
       -104.0406,
       46.0548
      ],
      "kb": 29
     },
     {
      "f": "site/aadt/cascade.geojson",
      "c": "Cascade",
      "n": 563,
      "b": [
       -112.0477,
       46.8411,
       -110.6646,
       47.6979
      ],
      "kb": 250
     },
     {
      "f": "site/aadt/chouteau.geojson",
      "c": "Chouteau",
      "n": 97,
      "b": [
       -111.4089,
       47.4165,
       -109.625,
       48.3066
      ],
      "kb": 54
     },
     {
      "f": "site/aadt/custer.geojson",
      "c": "Custer",
      "n": 168,
      "b": [
       -106.1916,
       45.7873,
       -104.793,
       46.6581
      ],
      "kb": 87
     },
     {
      "f": "site/aadt/daniels.geojson",
      "c": "Daniels",
      "n": 56,
      "b": [
       -106.1519,
       48.5631,
       -104.9733,
       48.9995
      ],
      "kb": 26
     },
     {
      "f": "site/aadt/dawson.geojson",
      "c": "Dawson",
      "n": 175,
      "b": [
       -105.4065,
       46.8899,
       -104.3274,
       47.7469
      ],
      "kb": 86
     },
     {
      "f": "site/aadt/deer_lodge.geojson",
      "c": "Deer Lodge",
      "n": 122,
      "b": [
       -113.4138,
       45.7848,
       -112.5859,
       46.2664
      ],
      "kb": 55
     },
     {
      "f": "site/aadt/fallon.geojson",
      "c": "Fallon",
      "n": 51,
      "b": [
       -104.9057,
       46.0535,
       -104.0456,
       46.685
      ],
      "kb": 29
     },
     {
      "f": "site/aadt/fergus.geojson",
      "c": "Fergus",
      "n": 191,
      "b": [
       -110.2136,
       46.6941,
       -108.6093,
       47.7384
      ],
      "kb": 107
     },
     {
      "f": "site/aadt/flathead.geojson",
      "c": "Flathead",
      "n": 456,
      "b": [
       -115.0107,
       47.7899,
       -113.3549,
       49.0011
      ],
      "kb": 273
     },
     {
      "f": "site/aadt/gallatin.geojson",
      "c": "Gallatin",
      "n": 457,
      "b": [
       -111.7798,
       44.6587,
       -110.7891,
       46.0233
      ],
      "kb": 205
     },
     {
      "f": "site/aadt/garfield.geojson",
      "c": "Garfield",
      "n": 30,
      "b": [
       -107.8888,
       46.8456,
       -106.0866,
       47.6099
      ],
      "kb": 29
     },
     {
      "f": "site/aadt/glacier.geojson",
      "c": "Glacier",
      "n": 110,
      "b": [
       -113.7182,
       48.3099,
       -112.1891,
       48.9986
      ],
      "kb": 74
     },
     {
      "f": "site/aadt/golden_valley.geojson",
      "c": "Golden Valley",
      "n": 36,
      "b": [
       -109.5841,
       46.1176,
       -108.8003,
       46.7512
      ],
      "kb": 25
     },
     {
      "f": "site/aadt/granite.geojson",
      "c": "Granite",
      "n": 62,
      "b": [
       -113.7794,
       46.0133,
       -113.0387,
       46.8321
      ],
      "kb": 55
     },
     {
      "f": "site/aadt/hill.geojson",
      "c": "Hill",
      "n": 172,
      "b": [
       -110.7563,
       48.2567,
       -109.497,
       49.0
      ],
      "kb": 71
     },
     {
      "f": "site/aadt/jefferson.geojson",
      "c": "Jefferson",
      "n": 151,
      "b": [
       -112.5859,
       45.7477,
       -111.6601,
       46.569
      ],
      "kb": 88
     },
     {
      "f": "site/aadt/judith_basin.geojson",
      "c": "Judith Basin",
      "n": 106,
      "b": [
       -110.7883,
       46.6873,
       -109.7458,
       47.4167
      ],
      "kb": 67
     },
     {
      "f": "site/aadt/lake.geojson",
      "c": "Lake",
      "n": 152,
      "b": [
       -114.626,
       47.1384,
       -113.7598,
       48.0517
      ],
      "kb": 76
     },
     {
      "f": "site/aadt/lewis_and_clark.geojson",
      "c": "Lewis and Clark",
      "n": 522,
      "b": [
       -112.7958,
       46.4216,
       -111.6249,
       47.6207
      ],
      "kb": 291
     },
     {
      "f": "site/aadt/liberty.geojson",
      "c": "Liberty",
      "n": 54,
      "b": [
       -111.409,
       48.1322,
       -110.7504,
       48.9973
      ],
      "kb": 24
     },
     {
      "f": "site/aadt/lincoln.geojson",
      "c": "Lincoln",
      "n": 156,
      "b": [
       -116.0491,
       48.0185,
       -114.7469,
       48.9997
      ],
      "kb": 159
     },
     {
      "f": "site/aadt/madison.geojson",
      "c": "Madison",
      "n": 106,
      "b": [
       -112.7093,
       44.7112,
       -111.3731,
       45.86
      ],
      "kb": 75
     },
     {
      "f": "site/aadt/mccone.geojson",
      "c": "McCone",
      "n": 50,
      "b": [
       -106.4224,
       47.1812,
       -105.1951,
       48.0621
      ],
      "kb": 26
     },
     {
      "f": "site/aadt/meagher.geojson",
      "c": "Meagher",
      "n": 46,
      "b": [
       -111.413,
       46.1928,
       -110.2815,
       47.001
      ],
      "kb": 44
     },
     {
      "f": "site/aadt/mineral.geojson",
      "c": "Mineral",
      "n": 154,
      "b": [
       -115.6954,
       46.9855,
       -114.4514,
       47.4788
      ],
      "kb": 94
     },
     {
      "f": "site/aadt/missoula.geojson",
      "c": "Missoula",
      "n": 608,
      "b": [
       -114.7014,
       46.6349,
       -113.3028,
       47.6002
      ],
      "kb": 280
     },
     {
      "f": "site/aadt/musselshell.geojson",
      "c": "Musselshell",
      "n": 53,
      "b": [
       -108.8133,
       46.1325,
       -107.8127,
       46.7558
      ],
      "kb": 38
     },
     {
      "f": "site/aadt/park.geojson",
      "c": "Park",
      "n": 172,
      "b": [
       -110.9001,
       44.93,
       -109.7261,
       46.1928
      ],
      "kb": 90
     },
     {
      "f": "site/aadt/petroleum.geojson",
      "c": "Petroleum",
      "n": 22,
      "b": [
       -108.6308,
       46.7492,
       -107.8515,
       47.0379
      ],
      "kb": 14
     },
     {
      "f": "site/aadt/phillips.geojson",
      "c": "Phillips",
      "n": 74,
      "b": [
       -108.7263,
       47.6308,
       -107.1928,
       48.9998
      ],
      "kb": 51
     },
     {
      "f": "site/aadt/pondera.geojson",
      "c": "Pondera",
      "n": 113,
      "b": [
       -112.9018,
       47.9842,
       -111.4087,
       48.4836
      ],
      "kb": 56
     },
     {
      "f": "site/aadt/powder_river.geojson",
      "c": "Powder River",
      "n": 45,
      "b": [
       -106.2797,
       45.0002,
       -105.0383,
       45.7922
      ],
      "kb": 46
     },
     {
      "f": "site/aadt/powell.geojson",
      "c": "Powell",
      "n": 117,
      "b": [
       -113.303,
       46.2657,
       -112.2988,
       47.1341
      ],
      "kb": 76
     },
     {
      "f": "site/aadt/prairie.geojson",
      "c": "Prairie",
      "n": 49,
      "b": [
       -106.0866,
       46.58,
       -104.6138,
       47.1812
      ],
      "kb": 31
     },
     {
      "f": "site/aadt/ravalli.geojson",
      "c": "Ravalli",
      "n": 126,
      "b": [
       -114.3988,
       45.5035,
       -113.7092,
       46.661
      ],
      "kb": 83
     },
     {
      "f": "site/aadt/richland.geojson",
      "c": "Richland",
      "n": 150,
      "b": [
       -105.235,
       47.3537,
       -104.0415,
       48.1232
      ],
      "kb": 69
     },
     {
      "f": "site/aadt/roosevelt.geojson",
      "c": "Roosevelt",
      "n": 136,
      "b": [
       -105.8872,
       48.0025,
       -104.0441,
       48.5633
      ],
      "kb": 62
     },
     {
      "f": "site/aadt/rosebud.geojson",
      "c": "Rosebud",
      "n": 137,
      "b": [
       -107.8216,
       45.1797,
       -106.1201,
       46.8487
      ],
      "kb": 95
     },
     {
      "f": "site/aadt/sanders.geojson",
      "c": "Sanders",
      "n": 86,
      "b": [
       -116.0492,
       47.2802,
       -114.2031,
       48.2057
      ],
      "kb": 80
     },
     {
      "f": "site/aadt/sheridan.geojson",
      "c": "Sheridan",
      "n": 102,
      "b": [
       -105.0383,
       48.4184,
       -104.0481,
       48.9988
      ],
      "kb": 56
     },
     {
      "f": "site/aadt/silver_bow.geojson",
      "c": "Silver Bow",
      "n": 252,
      "b": [
       -113.0839,
       45.6268,
       -112.1932,
       46.1084
      ],
      "kb": 113
     },
     {
      "f": "site/aadt/stillwater.geojson",
      "c": "Stillwater",
      "n": 74,
      "b": [
       -109.9046,
       45.3509,
       -108.8431,
       46.1322
      ],
      "kb": 47
     },
     {
      "f": "site/aadt/sweet_grass.geojson",
      "c": "Sweet Grass",
      "n": 74,
      "b": [
       -110.2237,
       45.3488,
       -109.4227,
       46.2193
      ],
      "kb": 45
     },
     {
      "f": "site/aadt/teton.geojson",
      "c": "Teton",
      "n": 122,
      "b": [
       -112.8113,
       47.4952,
       -111.4089,
       48.1317
      ],
      "kb": 62
     },
     {
      "f": "site/aadt/toole.geojson",
      "c": "Toole",
      "n": 141,
      "b": [
       -112.2185,
       48.2195,
       -111.2733,
       48.9981
      ],
      "kb": 64
     },
     {
      "f": "site/aadt/treasure.geojson",
      "c": "Treasure",
      "n": 58,
      "b": [
       -107.55,
       45.9134,
       -106.939,
       46.4821
      ],
      "kb": 32
     },
     {
      "f": "site/aadt/valley.geojson",
      "c": "Valley",
      "n": 102,
      "b": [
       -107.3831,
       47.7938,
       -105.7179,
       48.9996
      ],
      "kb": 58
     },
     {
      "f": "site/aadt/wheatland.geojson",
      "c": "Wheatland",
      "n": 46,
      "b": [
       -110.2815,
       46.2193,
       -109.4031,
       46.6938
      ],
      "kb": 23
     },
     {
      "f": "site/aadt/wibaux.geojson",
      "c": "Wibaux",
      "n": 59,
      "b": [
       -104.6072,
       46.6414,
       -104.0458,
       47.3537
      ],
      "kb": 28
     },
     {
      "f": "site/aadt/yellowstone.geojson",
      "c": "Yellowstone",
      "n": 751,
      "b": [
       -108.9245,
       45.4643,
       -107.4633,
       46.3953
      ],
      "kb": 305
     }
    ],
    "overview": "site/aadt_overview.geojson"
   },
   "style": {
    "by": {
     "prop": "aadt",
     "type": "step",
     "default": "#C9C4B5",
     "stops": [
      [
       0,
       "#CFC8B6",
       "< 1,000 / day"
      ],
      [
       1000,
       "#A9B79E",
       "1,000–5,000"
      ],
      [
       5000,
       "#6E9A7A",
       "5,000–15,000"
      ],
      [
       15000,
       "#3F7166",
       "15,000+"
      ]
     ]
    },
    "width_by": {
     "prop": "aadt",
     "stops": [
      [
       0,
       1.2
      ],
      [
       5000,
       2.6
      ],
      [
       20000,
       4.5
      ]
     ]
    },
    "opacity": 0.9
   },
   "popup": {
    "title": "{route} · {aadt:int} vehicles/day",
    "subtitle": "{desc}",
    "fields": [
     [
      "aadt",
      "AADT",
      "int",
      " vehicles/day"
     ],
     [
      "yr",
      "Year",
      "year"
     ],
     [
      "est",
      "Basis"
     ],
     [
      "trk",
      "Trucks (all commercial)",
      "pct"
     ],
     [
      "ltrk",
      "Large trucks",
      "pct"
     ],
     [
      "ch10",
      "Change since {y0}",
      "signed_pct"
     ],
     [
      "a0",
      "AADT in {y0}",
      "int"
     ],
     [
      "lanes",
      "Lanes",
      "int"
     ],
     [
      "fc",
      "Functional class"
     ],
     [
      "site",
      "MDT count site"
     ],
     [
      "county",
      "County"
     ]
    ],
    "link": {
     "label": "MDT traffic data (count site)",
     "url": "https://mdt.ms2soft.com/tcds/tsearch.asp?loc=Mdt&mod=TCDS&local_id={site}"
    }
   },
   "site": {
    "label": "Nearest counted road",
    "mode": "nearest",
    "max_km": 25,
    "summary": "{route}: {aadt:int}/day ({yr}) · {dist}",
    "fields": [
     [
      "route",
      "Route"
     ],
     [
      "aadt",
      "AADT",
      "int"
     ],
     [
      "yr",
      "Year"
     ],
     [
      "trk",
      "Trucks %",
      "num"
     ],
     [
      "ch10",
      "10-yr change %",
      "num"
     ],
     [
      "desc",
      "Location"
     ]
    ]
   }
  },
  {
   "id": "broadband",
   "title": "Broadband availability",
   "group": "utilities",
   "kind": "h3",
   "status": "unavailable",
   "source": {
    "agency": "Federal Communications Commission",
    "name": "National Broadband Map (BDC)",
    "url": "https://broadbandmap.fcc.gov/home",
    "cadence": "Twice a year",
    "retrieved": "",
    "license": "Public domain"
   },
   "coverage": "Not loaded yet.",
   "gaps": "The FCC's download API needs a free registered account, and its website refuses Data4's cloud servers. The fetcher (src/site/fetch_broadband.py) is ready and runs once FCC_USERNAME and FCC_API_TOKEN are set. Until then, use the FCC map link.",
   "site": {
    "label": "Broadband",
    "mode": "link",
    "summary": "Not loaded yet. Check the FCC map.",
    "url": "https://broadbandmap.fcc.gov/location-summary/fixed?lon={lon}&lat={lat}&zoom=14"
   }
  },
  {
   "id": "transmission",
   "title": "Transmission lines",
   "group": "utilities",
   "kind": "line",
   "count": 559,
   "source": {
    "agency": "Homeland Infrastructure Foundation-Level Data (HIFLD)",
    "name": "Electric Power Transmission Lines",
    "url": "https://hifld-geoplatform.hub.arcgis.com/",
    "cadence": "Irregular",
    "retrieved": "2026-10-01",
    "license": "Public domain"
   },
   "coverage": "Lines of 69 kV and above, statewide. This is the same file as the Parcels view's transmission layer.",
   "gaps": "Many lines have no owner or voltage listed. HIFLD does not map distribution lines (below 69 kV).",
   "files": {
    "geojson": "../mt_transmission.geojson"
   },
   "style": {
    "by": {
     "prop": "VOLT_CLASS",
     "type": "category",
     "default": "#A8A397",
     "stops": [
      [
       "500",
       "#7A3E2E",
       "500 kV"
      ],
      [
       "345",
       "#9C5B3F",
       "345 kV"
      ],
      [
       "220-287",
       "#B07A55",
       "220–287 kV"
      ],
      [
       "100-161",
       "#C9A27E",
       "100–161 kV"
      ],
      [
       "UNDER 100",
       "#D6C3A8",
       "Under 100 kV"
      ]
     ]
    },
    "width": 1.6,
    "opacity": 0.85
   },
   "popup": {
    "title": "Transmission line · {VOLTAGE:int} kV",
    "fields": [
     [
      "OWNER",
      "Owner"
     ],
     [
      "VOLT_CLASS",
      "Voltage class"
     ],
     [
      "SUB_1",
      "From"
     ],
     [
      "SUB_2",
      "To"
     ],
     [
      "STATUS",
      "Status"
     ]
    ]
   },
   "site": {
    "label": "Nearest transmission line",
    "mode": "nearest",
    "max_km": 200,
    "summary": "{VOLTAGE:int} kV · {dist}",
    "fields": [
     [
      "VOLTAGE",
      "kV",
      "int"
     ],
     [
      "OWNER",
      "Owner"
     ]
    ]
   }
  },
  {
   "id": "substations",
   "title": "Substations",
   "group": "utilities",
   "kind": "point",
   "default_on": true,
   "count": 388,
   "source": {
    "agency": "Derived from HIFLD transmission lines",
    "name": "Line end points named SUB_1 / SUB_2",
    "url": "https://hifld-geoplatform.hub.arcgis.com/",
    "cadence": "With the line data",
    "retrieved": "2026-10-01",
    "license": "Public domain (derived)"
   },
   "coverage": "388 points where 69 kV+ lines end in Montana: 188 named substations, 47 unnamed, and 153 taps.",
   "gaps": "HIFLD no longer publishes its substation layer openly, so locations are where line ends meet. Expect positions off by up to ~150 m. Voltage is the highest connected line's. Distribution substations are missing.",
   "files": {
    "geojson": "site/substations.geojson"
   },
   "style": {
    "by": {
     "prop": "kv",
     "type": "step",
     "default": "#8B8574",
     "stops": [
      [
       0,
       "#A79F8C",
       "Under 115 kV"
      ],
      [
       115,
       "#8E6E55",
       "115–230 kV"
      ],
      [
       230,
       "#6B4436",
       "230 kV+"
      ]
     ]
    },
    "radius": 4.5,
    "outline": "#ffffff",
    "opacity": 0.95
   },
   "popup": {
    "title": "{name}",
    "subtitle": "{kind}",
    "fields": [
     [
      "kv",
      "Highest line voltage",
      "kv"
     ],
     [
      "kv_min",
      "Lowest",
      "kv"
     ],
     [
      "lines",
      "Lines connected",
      "int"
     ],
     [
      "owner",
      "Line owner"
     ]
    ],
    "note": "Located from transmission line ends. Confirm with the utility."
   },
   "site": {
    "label": "Nearest substation",
    "mode": "nearest",
    "max_km": 200,
    "filter": {
     "prop": "kind",
     "ne": "Tap (line junction)"
    },
    "summary": "{name}, {kv:int} kV, {dist}",
    "fields": [
     [
      "name",
      "Name"
     ],
     [
      "kv",
      "kV",
      "int"
     ]
    ]
   }
  },
  {
   "id": "gen_queue",
   "title": "Planned generation & queue requests",
   "group": "utilities",
   "kind": "point",
   "count": 8,
   "source": {
    "agency": "U.S. EIA (Form 860M) and Bonneville Power Administration",
    "name": "EIA-860M planned units (august_generator2026.xlsx); BPA interconnection request queue",
    "url": "https://www.eia.gov/electricity/data/eia860m/",
    "cadence": "Monthly",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "7 planned generating units that EIA tracks in Montana, plus 1 active Montana requests in BPA's queue.",
   "gaps": "This is not the full interconnection queue. Most Montana projects sit in NorthWestern Energy's queue, about 80 projects and 35 GW per interconnection.fyi. NorthWestern's OASIS and LBNL's 'Queued Up' file could not be fetched automatically. Put the LBNL workbook in data/site/raw/queue_lbnl/ to add it. BPA requests whose point of interconnection isn't mapped sit at the county centre.",
   "files": {
    "geojson": "site/gen_queue.geojson"
   },
   "style": {
    "by": {
     "prop": "src",
     "type": "category",
     "default": "#7D8F9B",
     "stops": [
      [
       "EIA-860M planned unit",
       "#5B7F95",
       "Planned unit (EIA)"
      ],
      [
       "BPA interconnection queue",
       "#8D6E97",
       "BPA queue request"
      ]
     ]
    },
    "radius": 6,
    "outline": "#ffffff",
    "opacity": 0.9
   },
   "popup": {
    "title": "{name}",
    "subtitle": "{tech} · {mw:num} MW",
    "fields": [
     [
      "status",
      "Status"
     ],
     [
      "cod",
      "Planned in service"
     ],
     [
      "owner",
      "Developer / owner"
     ],
     [
      "poi",
      "Point of interconnection"
     ],
     [
      "county",
      "County"
     ],
     [
      "loc",
      "Location"
     ],
     [
      "id",
      "Record"
     ],
     [
      "src",
      "Source"
     ]
    ],
    "link": {
     "label": "EIA-860M",
     "url": "https://www.eia.gov/electricity/data/eia860m/"
    }
   },
   "site": {
    "label": "Planned generation within 25 mi",
    "mode": "count",
    "within_km": 40.2,
    "summary": "{n} within 25 mi{list}",
    "else": "None within 25 mi",
    "title": "{name} ({mw:num} MW)"
   }
  },
  {
   "id": "water_cws",
   "title": "Public water system service areas",
   "group": "utilities",
   "kind": "polygon",
   "count": 600,
   "source": {
    "agency": "U.S. EPA (Office of Water / ORD)",
    "name": "Community Water System Service Area Boundaries",
    "url": "https://services.arcgis.com/cJ9YHowT8TU7DUyn/arcgis/rest/services/Water_System_Boundaries/FeatureServer/0",
    "cadence": "Irregular",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "600 Montana community water systems. Most boundaries are EPA-modelled from parcels and system size (Modeled: 486, System Sourced: 114).",
   "gaps": "Modelled boundaries are approximate, so ask the system whether a lot can connect. Montana DEQ's own water-system and septic layers block automated access (robots.txt), so they are not included. No statewide sewer service-area map is published. City sewer usually follows the water areas shown here.",
   "files": {
    "geojson": "site/water_cws.geojson"
   },
   "style": {
    "color": "#5B7F95",
    "opacity": 0.22,
    "outline": "#46677A",
    "width": 1
   },
   "popup": {
    "title": "{name}",
    "subtitle": "{pwsid}",
    "fields": [
     [
      "pop",
      "Population served",
      "int"
     ],
     [
      "conn",
      "Service connections",
      "int"
     ],
     [
      "method",
      "Boundary"
     ],
     [
      "model",
      "Model"
     ],
     [
      "atype",
      "Area type"
     ],
     [
      "km2",
      "Area (km²)",
      "num"
     ]
    ],
    "link": {
     "label": "EPA ECHO system report",
     "url": "{url}"
    }
   },
   "site": {
    "label": "Public water system",
    "mode": "contains",
    "summary": "Inside {name} ({pop:int} people)",
    "else": "Not inside a mapped community water system",
    "fields": [
     [
      "name",
      "System"
     ],
     [
      "pwsid",
      "PWSID"
     ]
    ]
   }
  },
  {
   "id": "water_cws_pts",
   "title": "Water systems without a mapped area",
   "group": "utilities",
   "kind": "point",
   "count": 205,
   "source": {
    "agency": "U.S. EPA (SDWIS)",
    "name": "Community Water Systems without Service Area Boundaries",
    "url": "https://services.arcgis.com/cJ9YHowT8TU7DUyn/arcgis/rest/services/Community_Water_Systems_June_8_2024_Pts/FeatureServer/447",
    "cadence": "Quarterly",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "205 small community systems (subdivisions, mobile-home parks, colonies) placed at their reported location.",
   "gaps": "Point only, with no service area.",
   "files": {
    "geojson": "site/water_cws_pts.geojson"
   },
   "style": {
    "color": "#5B7F95",
    "radius": 4,
    "outline": "#ffffff",
    "opacity": 0.85
   },
   "popup": {
    "title": "{name}",
    "subtitle": "{pwsid}",
    "fields": [
     [
      "city",
      "City served"
     ],
     [
      "pop",
      "Population served",
      "int"
     ],
     [
      "conn",
      "Connections",
      "int"
     ],
     [
      "src",
      "Source water"
     ],
     [
      "owner",
      "Owner type"
     ]
    ],
    "link": {
     "label": "EPA ECHO system report",
     "url": "{url}"
    }
   },
   "site": {
    "label": "Nearest small water system",
    "mode": "nearest",
    "max_km": 8,
    "summary": "{name} · {dist}"
   }
  },
  {
   "id": "soil_dwb",
   "title": "Soils: dwellings without basements",
   "group": "ground",
   "kind": "h3",
   "minzoom": 8,
   "files": {
    "parts": "site/grid/parts.json",
    "overview": "site/grid_overview.json"
   },
   "count": 537000,
   "source": {
    "agency": "USDA NRCS",
    "name": "SSURGO via Soil Data Access (map units from gNATSGO 2020)",
    "url": "https://sdmdataaccess.sc.egov.usda.gov/",
    "cadence": "Annual (October)",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "Statewide on 537,000 H3 hexagons. NRCS 'ENG - Dwellings W/O Basements', dominant condition.",
   "gaps": "Each hexagon (~0.7 km², ~900 m across) shows the rating that covers most of its area. A lot can sit on a different soil, so the site card asks Soil Data Access for the exact point. Map-unit outlines come from the July 2020 gNATSGO raster; ratings are current. Where only the coarse STATSGO survey exists (some national forest and park land), the popup says so.",
   "style": {
    "by": {
     "prop": "dwb",
     "type": "category",
     "default": "rgba(0,0,0,0)",
     "stops": [
      [
       1,
       "#9DBB98",
       "Not limited"
      ],
      [
       2,
       "#E3C77E",
       "Somewhat limited"
      ],
      [
       3,
       "#C98A6B",
       "Very limited"
      ]
     ]
    },
    "opacity": 0.5
   },
   "popup": {
    "title": "Dwellings without basements: {dwb:class}",
    "fields": [
     [
      "sep",
      "Septic absorption fields",
      "class"
     ],
     [
      "frm",
      "Farmland class",
      "class"
     ],
     [
      "drn",
      "Drainage",
      "class"
     ],
     [
      "sg",
      "Survey",
      "class"
     ]
    ],
    "link": {
     "label": "Web Soil Survey",
     "url": "https://websoilsurvey.nrcs.usda.gov/app/"
    }
   },
   "classes": {
    "dwb": {
     "0": "Not rated",
     "1": "Not limited",
     "2": "Somewhat limited",
     "3": "Very limited"
    }
   },
   "site": {
    "label": "Soil: dwellings w/o basements",
    "mode": "contains",
    "summary": "{dwb:class}",
    "fields": [
     [
      "dwb",
      "Dwellings w/o basements",
      "class"
     ]
    ]
   }
  },
  {
   "id": "soil_septic",
   "title": "Soils: septic absorption fields",
   "group": "ground",
   "kind": "h3",
   "minzoom": 8,
   "files": {
    "parts": "site/grid/parts.json",
    "overview": "site/grid_overview.json"
   },
   "count": 537000,
   "source": {
    "agency": "USDA NRCS",
    "name": "SSURGO via Soil Data Access (map units from gNATSGO 2020)",
    "url": "https://sdmdataaccess.sc.egov.usda.gov/",
    "cadence": "Annual (October)",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "NRCS 'ENG - Septic Tank Absorption Fields', dominant condition.",
   "gaps": "Each hexagon (~0.7 km², ~900 m across) shows the rating that covers most of its area. A lot can sit on a different soil, so the site card asks Soil Data Access for the exact point. Map-unit outlines come from the July 2020 gNATSGO raster; ratings are current. Where only the coarse STATSGO survey exists (some national forest and park land), the popup says so. A septic permit still needs a site evaluation by the county sanitarian.",
   "style": {
    "by": {
     "prop": "sep",
     "type": "category",
     "default": "rgba(0,0,0,0)",
     "stops": [
      [
       1,
       "#9DBB98",
       "Not limited"
      ],
      [
       2,
       "#E3C77E",
       "Somewhat limited"
      ],
      [
       3,
       "#C98A6B",
       "Very limited"
      ]
     ]
    },
    "opacity": 0.5
   },
   "popup": {
    "title": "Septic absorption fields: {sep:class}",
    "fields": [
     [
      "dwb",
      "Dwellings w/o basements",
      "class"
     ],
     [
      "drn",
      "Drainage",
      "class"
     ],
     [
      "sg",
      "Survey",
      "class"
     ]
    ],
    "link": {
     "label": "Web Soil Survey",
     "url": "https://websoilsurvey.nrcs.usda.gov/app/"
    }
   },
   "classes": {
    "sep": {
     "0": "Not rated",
     "1": "Not limited",
     "2": "Somewhat limited",
     "3": "Very limited"
    }
   },
   "site": {
    "label": "Soil: septic absorption",
    "mode": "contains",
    "summary": "{sep:class}",
    "fields": [
     [
      "sep",
      "Septic",
      "class"
     ]
    ]
   }
  },
  {
   "id": "soil_farm",
   "title": "Soils: farmland class",
   "group": "ground",
   "kind": "h3",
   "minzoom": 8,
   "files": {
    "parts": "site/grid/parts.json",
    "overview": "site/grid_overview.json"
   },
   "count": 537000,
   "source": {
    "agency": "USDA NRCS",
    "name": "SSURGO via Soil Data Access (map units from gNATSGO 2020)",
    "url": "https://sdmdataaccess.sc.egov.usda.gov/",
    "cadence": "Annual (October)",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "NRCS farmland classification of the dominant map unit (prime, prime if irrigated, statewide or local importance).",
   "gaps": "Each hexagon (~0.7 km², ~900 m across) shows the rating that covers most of its area. A lot can sit on a different soil, so the site card asks Soil Data Access for the exact point. Map-unit outlines come from the July 2020 gNATSGO raster; ratings are current. Where only the coarse STATSGO survey exists (some national forest and park land), the popup says so.",
   "style": {
    "by": {
     "prop": "frm",
     "type": "category",
     "default": "rgba(0,0,0,0)",
     "stops": [
      [
       1,
       "#4F7F52",
       "Prime farmland"
      ],
      [
       2,
       "#86A97A",
       "Prime if irrigated / drained"
      ],
      [
       3,
       "#C3CF9A",
       "Statewide importance"
      ],
      [
       4,
       "#E2DDB2",
       "Local importance"
      ],
      [
       5,
       "rgba(0,0,0,0)",
       "Not prime"
      ]
     ]
    },
    "opacity": 0.55
   },
   "popup": {
    "title": "{frm:class}",
    "fields": [
     [
      "drn",
      "Drainage",
      "class"
     ],
     [
      "sg",
      "Survey",
      "class"
     ]
    ],
    "link": {
     "label": "Web Soil Survey",
     "url": "https://websoilsurvey.nrcs.usda.gov/app/"
    }
   },
   "classes": {
    "frm": {
     "0": "Not rated",
     "1": "Prime farmland",
     "2": "Prime farmland if irrigated (or drained, protected…)",
     "3": "Farmland of statewide importance",
     "4": "Farmland of local importance",
     "5": "Not prime farmland"
    }
   },
   "site": {
    "label": "Soil: farmland class",
    "mode": "contains",
    "summary": "{frm:class}",
    "fields": [
     [
      "frm",
      "Farmland",
      "class"
     ]
    ]
   }
  },
  {
   "id": "soil_drain",
   "title": "Soils: drainage class",
   "group": "ground",
   "kind": "h3",
   "minzoom": 8,
   "files": {
    "parts": "site/grid/parts.json",
    "overview": "site/grid_overview.json"
   },
   "count": 537000,
   "source": {
    "agency": "USDA NRCS",
    "name": "SSURGO via Soil Data Access (map units from gNATSGO 2020)",
    "url": "https://sdmdataaccess.sc.egov.usda.gov/",
    "cadence": "Annual (October)",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "NRCS drainage class (dominant condition, muaggatt.drclassdcd).",
   "gaps": "Each hexagon (~0.7 km², ~900 m across) shows the rating that covers most of its area. A lot can sit on a different soil, so the site card asks Soil Data Access for the exact point. Map-unit outlines come from the July 2020 gNATSGO raster; ratings are current. Where only the coarse STATSGO survey exists (some national forest and park land), the popup says so.",
   "style": {
    "by": {
     "prop": "drn",
     "type": "category",
     "default": "rgba(0,0,0,0)",
     "stops": [
      [
       1,
       "#E6D5B0",
       "Excessively"
      ],
      [
       2,
       "#E1D9BC",
       "Somewhat excessively"
      ],
      [
       3,
       "rgba(0,0,0,0)",
       "Well drained"
      ],
      [
       4,
       "#B9CBC4",
       "Moderately well"
      ],
      [
       5,
       "#8FB0B5",
       "Somewhat poorly"
      ],
      [
       6,
       "#5F8D9C",
       "Poorly"
      ],
      [
       7,
       "#3E6779",
       "Very poorly"
      ]
     ]
    },
    "opacity": 0.55
   },
   "popup": {
    "title": "{drn:class}",
    "fields": [
     [
      "sep",
      "Septic absorption fields",
      "class"
     ],
     [
      "sg",
      "Survey",
      "class"
     ]
    ]
   },
   "classes": {
    "drn": {
     "0": "Not rated",
     "1": "Excessively drained",
     "2": "Somewhat excessively drained",
     "3": "Well drained",
     "4": "Moderately well drained",
     "5": "Somewhat poorly drained",
     "6": "Poorly drained",
     "7": "Very poorly drained"
    },
    "sg": {
     "0": "SSURGO (detailed)",
     "1": "STATSGO2 only (coarse, 1:250k)"
    }
   },
   "site": {
    "label": "Soil: drainage",
    "mode": "contains",
    "summary": "{drn:class}",
    "fields": [
     [
      "drn",
      "Drainage",
      "class"
     ]
    ]
   }
  },
  {
   "id": "slope",
   "title": "Slope",
   "group": "ground",
   "kind": "h3",
   "minzoom": 8,
   "files": {
    "parts": "site/grid/parts.json",
    "overview": "site/grid_overview.json"
   },
   "count": 537000,
   "source": {
    "agency": "U.S. Geological Survey",
    "name": "3D Elevation Program, 1 arc-second DEM (AWS open data)",
    "url": "https://www.usgs.gov/3d-elevation-program",
    "cadence": "Continuous",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "Slope computed from the ~30 m DEM, then averaged over each H3 hexagon. Also shows the share of the hexagon steeper than 15 % and 25 %.",
   "gaps": "Averaged over ~0.7 km², so a buildable bench on a steep hillside, or a cut bank on flat ground, will not show. For a building pad, use the 1 m lidar where it exists (USGS 3DEP).",
   "style": {
    "by": {
     "prop": "sl",
     "type": "step",
     "default": "rgba(0,0,0,0)",
     "stops": [
      [
       0,
       "rgba(0,0,0,0)",
       "0–5 % (flat)"
      ],
      [
       5,
       "#E7DFC9",
       "5–15 %"
      ],
      [
       15,
       "#C9AE8A",
       "15–25 % (steep)"
      ],
      [
       25,
       "#9C7A5B",
       "25 %+ (very steep)"
      ]
     ]
    },
    "opacity": 0.55
   },
   "popup": {
    "title": "Average slope {sl:int} %",
    "fields": [
     [
      "s15",
      "Steeper than 15 %",
      "pct"
     ],
     [
      "s25",
      "Steeper than 25 %",
      "pct"
     ]
    ]
   },
   "site": {
    "label": "Slope (hexagon average)",
    "mode": "contains",
    "summary": "{sl:int} % avg, {s15:int} % of area > 15 %",
    "fields": [
     [
      "sl",
      "Avg slope %",
      "int"
     ],
     [
      "s15",
      "% > 15 %",
      "int"
     ]
    ]
   }
  },
  {
   "id": "wildfire",
   "title": "Wildfire risk to homes",
   "group": "hazards",
   "kind": "h3",
   "default_on": false,
   "minzoom": 8,
   "files": {
    "parts": "site/grid/parts.json",
    "overview": "site/grid_overview.json"
   },
   "count": 537000,
   "source": {
    "agency": "USDA Forest Service",
    "name": "Wildfire Risk to Communities (2024): Risk to Potential Structures, Burn Probability",
    "url": "https://wildfirerisk.org/",
    "cadence": "Every few years",
    "retrieved": "2026-10-06",
    "license": "Public domain"
   },
   "coverage": "Risk to Potential Structures (RPS) and annual burn probability, averaged over each hexagon. Classes are Montana percentiles of hexagons with any risk, at the 40th, 70th, 90th and 95th (the WRC's own break points).",
   "gaps": "A modelled landscape value for a hypothetical home, not a property assessment. Values were sampled at ~90 m from the 30 m rasters.",
   "style": {
    "by": {
     "prop": "rpc",
     "type": "category",
     "default": "rgba(0,0,0,0)",
     "stops": [
      [
       1,
       "#EFE6CF",
       "Low (< 0.06)"
      ],
      [
       2,
       "#E6CC98",
       "Moderate"
      ],
      [
       3,
       "#D9A06B",
       "High"
      ],
      [
       4,
       "#C27148",
       "Very high"
      ],
      [
       5,
       "#9E4A33",
       "Highest 5 %"
      ]
     ]
    },
    "opacity": 0.55
   },
   "popup": {
    "title": "Wildfire risk to homes: {rpc:class}",
    "fields": [
     [
      "rps",
      "Risk to Potential Structures",
      "num"
     ],
     [
      "bp",
      "Annual burn probability (per 1,000)",
      "num"
     ]
    ],
    "link": {
     "label": "Wildfire Risk to Communities",
     "url": "https://wildfirerisk.org/explore/overview/30/"
    }
   },
   "classes": {
    "rpc": {
     "0": "Minimal (non-burnable or no modelled fire)",
     "1": "Low",
     "2": "Moderate",
     "3": "High",
     "4": "Very high",
     "5": "Highest 5 % in Montana"
    }
   },
   "site": {
    "label": "Wildfire risk to homes",
    "mode": "contains",
    "summary": "{rpc:class} · annual burn probability {bp:num} in 1,000",
    "fields": [
     [
      "rpc",
      "Risk class",
      "class"
     ],
     [
      "rps",
      "RPS",
      "num"
     ],
     [
      "bp",
      "Burn prob. per 1,000",
      "num"
     ]
    ]
   }
  }
 ],
 "stats": {
  "aadt": {
   "count": 8560,
   "year": 2025,
   "sites": 7458,
   "retrieved": "2026-10-06",
   "bytes": 5342150
  },
  "substations": {
   "count": 388,
   "kinds": {
    "Substation": 188,
    "Tap (line junction)": 153,
    "Unnamed substation": 47
   }
  },
  "queue": {
   "count": 8,
   "eia": 7,
   "bpa": 1,
   "lbnl": 0,
   "eia_file": "august_generator2026.xlsx",
   "eia_retrieved": "2026-10-06",
   "bpa_retrieved": "2026-10-06"
  },
  "water": {
   "count": 600,
   "points": 205,
   "methods": {
    "Modeled": 486,
    "System Sourced": 114
   },
   "retrieved": "2026-10-06",
   "pts_retrieved": "2026-10-06"
  },
  "grid": {
   "cells": 537000,
   "parts": 56,
   "bytes": 27054574,
   "rps_breaks": [
    0.06,
    0.179,
    0.427,
    0.593
   ],
   "statsgo_cells": 18648,
   "retrieved": "2026-10-06",
   "ratings_retrieved": "2026-10-06",
   "broadband": false,
   "bb_asof": null,
   "bb_retrieved": null,
   "classes": {
    "dwb": {
     "3.0": 319257,
     "2.0": 139763,
     "1.0": 57552
    },
    "sep": {
     "3.0": 474596,
     "2.0": 33566,
     "1.0": 8431
    },
    "frm": {
     "5.0": 426648,
     "3.0": 51949,
     "2.0": 32154,
     "4.0": 9149
    },
    "drn": {
     "3.0": 480936,
     "2.0": 18738,
     "1.0": 6976,
     "4.0": 3401,
     "5.0": 2913,
     "6.0": 2221,
     "7.0": 1079
    }
   }
  }
 }
}