{
 "version": 1,
 "built": "2026-10-06T02:43:15Z",
 "groups": [
  {
   "id": "market_people",
   "title": "People & income",
   "note": "Census ACS 5-year and population estimates"
  },
  {
   "id": "market_housing",
   "title": "Housing market",
   "note": "Rents, values, permits, HUD Fair Market Rents"
  },
  {
   "id": "market_jobs",
   "title": "Jobs & wages",
   "note": "County employment and wages"
  }
 ],
 "layers": [
  {
   "id": "acs_tract_rent",
   "title": "Median gross rent (tracts)",
   "group": "market_housing",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 319,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "American Community Survey 5-year estimates, 2020–2024",
    "url": "https://www.census.gov/programs-surveys/acs/data/summary-file.html",
    "cadence": "Annual (December)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 319 Montana census tracts (2020 boundaries), ACS 2020-2024 5-year estimates.",
   "gaps": "ACS figures are survey estimates with margins of error; rural tracts with small samples can be off by 20%+. 0 tracts have no population (water/park tracts). Medians the Census Bureau suppresses for too few cases are blank.",
   "files": {
    "geojson": "market/tracts.geojson"
   },
   "style": {
    "by": {
     "prop": "med_gross_rent",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#F1ECE2",
       "< $800"
      ],
      [
       800,
       "#E3CDB7",
       "$800–$1,000"
      ],
      [
       1000,
       "#D2AE8E",
       "$1,000–$1,200"
      ],
      [
       1200,
       "#C09370",
       "$1,200–$1,400"
      ],
      [
       1400,
       "#B07A55",
       "$1,400–$1,700"
      ],
      [
       1700,
       "#8A5A3A",
       "$1,700+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "Tract {tract}",
    "subtitle": "{county} County",
    "fields": [
     [
      "pop",
      "Population",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "vacancy_pct",
      "Vacant units",
      "pct"
     ],
     [
      "med_age",
      "Median age",
      "num"
     ],
     [
      "mean_commute_min",
      "Mean commute",
      "num",
      " min"
     ],
     [
      "wfh_pct",
      "Work from home",
      "pct"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=1400000US{geoid}"
    },
    "note": "ACS 2020-2024 5-year estimates."
   },
   "site": {
    "label": "Median gross rent",
    "mode": "contains",
    "summary": "{med_gross_rent:usd}/mo (tract {tract}, ACS 2020-2024)",
    "fields": [
     [
      "med_gross_rent",
      "Median gross rent",
      "usd"
     ],
     [
      "geoid",
      "Census tract",
      "text"
     ]
    ]
   }
  },
  {
   "id": "acs_tract_income",
   "title": "Median household income (tracts)",
   "group": "market_people",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 319,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "American Community Survey 5-year estimates, 2020–2024",
    "url": "https://www.census.gov/programs-surveys/acs/data/summary-file.html",
    "cadence": "Annual (December)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 319 Montana census tracts (2020 boundaries), ACS 2020-2024 5-year estimates.",
   "gaps": "ACS figures are survey estimates with margins of error; rural tracts with small samples can be off by 20%+. 0 tracts have no population (water/park tracts). Medians the Census Bureau suppresses for too few cases are blank.",
   "files": {
    "geojson": "market/tracts.geojson"
   },
   "style": {
    "by": {
     "prop": "med_hh_income",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#EDEAE0",
       "< $50k"
      ],
      [
       50000,
       "#C9D3BF",
       "$50k–$65k"
      ],
      [
       65000,
       "#A2BA9A",
       "$65k–$80k"
      ],
      [
       80000,
       "#789F7A",
       "$80k–$95k"
      ],
      [
       95000,
       "#5E8C6A",
       "$95k–$115k"
      ],
      [
       115000,
       "#3F6B4D",
       "$115k+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "Tract {tract}",
    "subtitle": "{county} County",
    "fields": [
     [
      "pop",
      "Population",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "vacancy_pct",
      "Vacant units",
      "pct"
     ],
     [
      "med_age",
      "Median age",
      "num"
     ],
     [
      "mean_commute_min",
      "Mean commute",
      "num",
      " min"
     ],
     [
      "wfh_pct",
      "Work from home",
      "pct"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=1400000US{geoid}"
    },
    "note": "ACS 2020-2024 5-year estimates."
   },
   "site": {
    "label": "Median household income",
    "mode": "contains",
    "summary": "{med_hh_income:usd} (tract {tract}, ACS 2020-2024)",
    "fields": [
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "geoid",
      "Census tract",
      "text"
     ]
    ]
   }
  },
  {
   "id": "acs_tract_home_value",
   "title": "Median home value (tracts)",
   "group": "market_housing",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 319,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "American Community Survey 5-year estimates, 2020–2024",
    "url": "https://www.census.gov/programs-surveys/acs/data/summary-file.html",
    "cadence": "Annual (December)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 319 Montana census tracts (2020 boundaries), ACS 2020-2024 5-year estimates.",
   "gaps": "ACS figures are survey estimates with margins of error; rural tracts with small samples can be off by 20%+. 0 tracts have no population (water/park tracts). Medians the Census Bureau suppresses for too few cases are blank.",
   "files": {
    "geojson": "market/tracts.geojson"
   },
   "style": {
    "by": {
     "prop": "med_home_value",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#ECEBE4",
       "< $200k"
      ],
      [
       200000,
       "#C7D2D9",
       "$200k–$300k"
      ],
      [
       300000,
       "#9FB5C4",
       "$300k–$400k"
      ],
      [
       400000,
       "#7897AD",
       "$400k–$550k"
      ],
      [
       550000,
       "#5B7F95",
       "$550k–$750k"
      ],
      [
       750000,
       "#3E5F75",
       "$750k+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "Tract {tract}",
    "subtitle": "{county} County",
    "fields": [
     [
      "pop",
      "Population",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "vacancy_pct",
      "Vacant units",
      "pct"
     ],
     [
      "med_age",
      "Median age",
      "num"
     ],
     [
      "mean_commute_min",
      "Mean commute",
      "num",
      " min"
     ],
     [
      "wfh_pct",
      "Work from home",
      "pct"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=1400000US{geoid}"
    },
    "note": "ACS 2020-2024 5-year estimates."
   },
   "site": {
    "label": "Median home value",
    "mode": "contains",
    "summary": "{med_home_value:usd} (tract {tract}, ACS 2020-2024)",
    "fields": [
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "geoid",
      "Census tract",
      "text"
     ]
    ]
   }
  },
  {
   "id": "acs_tract_renters",
   "title": "Renter-occupied share (tracts)",
   "group": "market_housing",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 319,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "American Community Survey 5-year estimates, 2020–2024",
    "url": "https://www.census.gov/programs-surveys/acs/data/summary-file.html",
    "cadence": "Annual (December)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 319 Montana census tracts (2020 boundaries), ACS 2020-2024 5-year estimates.",
   "gaps": "ACS figures are survey estimates with margins of error; rural tracts with small samples can be off by 20%+. 0 tracts have no population (water/park tracts). Medians the Census Bureau suppresses for too few cases are blank.",
   "files": {
    "geojson": "market/tracts.geojson"
   },
   "style": {
    "by": {
     "prop": "renter_pct",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#ECEBE4",
       "< 15%"
      ],
      [
       15,
       "#C7D2D9",
       "15%–25%"
      ],
      [
       25,
       "#9FB5C4",
       "25%–35%"
      ],
      [
       35,
       "#7897AD",
       "35%–50%"
      ],
      [
       50,
       "#5B7F95",
       "50%–65%"
      ],
      [
       65,
       "#3E5F75",
       "65%+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "Tract {tract}",
    "subtitle": "{county} County",
    "fields": [
     [
      "pop",
      "Population",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "vacancy_pct",
      "Vacant units",
      "pct"
     ],
     [
      "med_age",
      "Median age",
      "num"
     ],
     [
      "mean_commute_min",
      "Mean commute",
      "num",
      " min"
     ],
     [
      "wfh_pct",
      "Work from home",
      "pct"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=1400000US{geoid}"
    },
    "note": "ACS 2020-2024 5-year estimates."
   },
   "site": {
    "label": "Renter-occupied homes",
    "mode": "contains",
    "summary": "{renter_pct:pct} (tract {tract}, ACS 2020-2024)",
    "fields": [
     [
      "renter_pct",
      "Renter-occupied homes",
      "pct"
     ],
     [
      "geoid",
      "Census tract",
      "text"
     ]
    ]
   }
  },
  {
   "id": "acs_tract_vacancy",
   "title": "Vacant housing share (tracts)",
   "group": "market_housing",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 319,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "American Community Survey 5-year estimates, 2020–2024",
    "url": "https://www.census.gov/programs-surveys/acs/data/summary-file.html",
    "cadence": "Annual (December)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 319 Montana census tracts (2020 boundaries), ACS 2020-2024 5-year estimates.",
   "gaps": "ACS figures are survey estimates with margins of error; rural tracts with small samples can be off by 20%+. 0 tracts have no population (water/park tracts). Medians the Census Bureau suppresses for too few cases are blank.",
   "files": {
    "geojson": "market/tracts.geojson"
   },
   "style": {
    "by": {
     "prop": "vacancy_pct",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#F1ECE2",
       "< 5%"
      ],
      [
       5,
       "#E3CDB7",
       "5%–10%"
      ],
      [
       10,
       "#D2AE8E",
       "10%–15%"
      ],
      [
       15,
       "#C09370",
       "15%–25%"
      ],
      [
       25,
       "#B07A55",
       "25%–40%"
      ],
      [
       40,
       "#8A5A3A",
       "40%+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "Tract {tract}",
    "subtitle": "{county} County",
    "fields": [
     [
      "pop",
      "Population",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "vacancy_pct",
      "Vacant units",
      "pct"
     ],
     [
      "med_age",
      "Median age",
      "num"
     ],
     [
      "mean_commute_min",
      "Mean commute",
      "num",
      " min"
     ],
     [
      "wfh_pct",
      "Work from home",
      "pct"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=1400000US{geoid}"
    },
    "note": "ACS 2020-2024 5-year estimates."
   },
   "site": {
    "label": "Vacant housing units (incl. seasonal)",
    "mode": "contains",
    "summary": "{vacancy_pct:pct} (tract {tract}, ACS 2020-2024)",
    "fields": [
     [
      "vacancy_pct",
      "Vacant housing units (incl. seasonal)",
      "pct"
     ],
     [
      "geoid",
      "Census tract",
      "text"
     ]
    ]
   }
  },
  {
   "id": "pep_county_growth",
   "title": "Population change, 5 years (counties)",
   "group": "market_people",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 56,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "Population Estimates Program, Vintage 2025 county totals",
    "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/counties/totals/co-est2025-alldata.csv",
    "cadence": "Annual (March)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 56 counties, Population Estimates Program, Vintage 2025 county totals: July 1 2020 to July 1 of the latest vintage year.",
   "gaps": "Estimates, not counts; revised every vintage. County-level only (no tracts or towns here).",
   "files": {
    "geojson": "market/counties.geojson"
   },
   "style": {
    "by": {
     "prop": "pop_chg_5yr_pct",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#B07A55",
       "< -2%"
      ],
      [
       -2,
       "#D2AE8E",
       "-2%–0%"
      ],
      [
       0,
       "#E9E3D5",
       "0%–2%"
      ],
      [
       2,
       "#A2BA9A",
       "2%–5%"
      ],
      [
       5,
       "#5E8C6A",
       "5%–10%"
      ],
      [
       10,
       "#3F6B4D",
       "10%+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "{county} County",
    "subtitle": "Market snapshot",
    "fields": [
     [
      "pop",
      "Population (PEP)",
      "int"
     ],
     [
      "pop_chg_5yr_pct",
      "Population change, 5 yr",
      "pct"
     ],
     [
      "net_dom_mig",
      "Net domestic migration, latest yr",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "permits_last_year",
      "Permitted units, last year",
      "int"
     ],
     [
      "permits_5yr",
      "Permitted units, 5 yr",
      "int"
     ],
     [
      "permits_ytd",
      "Permitted units, this year to date",
      "int"
     ],
     [
      "fmr_2br",
      "HUD Fair Market Rent, 2 BR",
      "usd",
      "/mo"
     ],
     [
      "jobs",
      "Jobs",
      "int"
     ],
     [
      "jobs_source",
      "Jobs source"
     ],
     [
      "jobs_year",
      "Jobs year",
      "year"
     ],
     [
      "avg_weekly_wage",
      "Average weekly wage",
      "usd"
     ],
     [
      "jobs_5yr_chg_pct",
      "Job change, 5 yr",
      "pct"
     ],
     [
      "top_industry",
      "Largest private sector"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=0500000US{fips}"
    },
    "note": "Sources: Census ACS / PEP / BPS / CBP (or BLS QCEW), HUD FMR."
   },
   "site": {
    "label": "County population change, 5 yr",
    "mode": "contains",
    "summary": "{county} County: {pop_chg_5yr_pct:pct} since 2020 ({pop:int} people in {pop_year})",
    "fields": [
     [
      "pop_chg_5yr_pct",
      "County population change, 5 yr",
      "pct"
     ],
     [
      "pop",
      "County population",
      "int"
     ],
     [
      "net_dom_mig",
      "Net domestic migration, latest yr",
      "int"
     ]
    ]
   }
  },
  {
   "id": "bps_county_permits",
   "title": "Housing units permitted, last 5 years per 1,000 residents (counties)",
   "group": "market_housing",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 56,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "Building Permits Survey, county annual and monthly files",
    "url": "https://www.census.gov/construction/bps/",
    "cadence": "Monthly (~3 weeks after month end); annual revision in May",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 56 counties, annual 2016–2025 plus monthly through 2026-08.",
   "gaps": "Counts permits, not completions. Places that issue no building permits (much of rural Montana) report nothing even when homes are built; Census imputes only for permit-issuing places that miss a report.",
   "files": {
    "geojson": "market/counties.geojson"
   },
   "style": {
    "by": {
     "prop": "permits_5yr_per_1k",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#EDEAE0",
       "< 5"
      ],
      [
       5,
       "#C9D3BF",
       "5–15"
      ],
      [
       15,
       "#A2BA9A",
       "15–30"
      ],
      [
       30,
       "#789F7A",
       "30–50"
      ],
      [
       50,
       "#5E8C6A",
       "50–80"
      ],
      [
       80,
       "#3F6B4D",
       "80+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "{county} County",
    "subtitle": "Market snapshot",
    "fields": [
     [
      "pop",
      "Population (PEP)",
      "int"
     ],
     [
      "pop_chg_5yr_pct",
      "Population change, 5 yr",
      "pct"
     ],
     [
      "net_dom_mig",
      "Net domestic migration, latest yr",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "permits_last_year",
      "Permitted units, last year",
      "int"
     ],
     [
      "permits_5yr",
      "Permitted units, 5 yr",
      "int"
     ],
     [
      "permits_ytd",
      "Permitted units, this year to date",
      "int"
     ],
     [
      "fmr_2br",
      "HUD Fair Market Rent, 2 BR",
      "usd",
      "/mo"
     ],
     [
      "jobs",
      "Jobs",
      "int"
     ],
     [
      "jobs_source",
      "Jobs source"
     ],
     [
      "jobs_year",
      "Jobs year",
      "year"
     ],
     [
      "avg_weekly_wage",
      "Average weekly wage",
      "usd"
     ],
     [
      "jobs_5yr_chg_pct",
      "Job change, 5 yr",
      "pct"
     ],
     [
      "top_industry",
      "Largest private sector"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=0500000US{fips}"
    },
    "note": "Sources: Census ACS / PEP / BPS / CBP (or BLS QCEW), HUD FMR."
   },
   "site": {
    "label": "Units permitted, 5 yr per 1,000 residents",
    "mode": "contains",
    "summary": "{county} County: {permits_5yr:int} units permitted in 5 yr, {permits_last_year:int} last year, {permits_ytd:int} this year to date",
    "fields": [
     [
      "permits_5yr_per_1k",
      "Units permitted, 5 yr per 1,000 residents",
      "num"
     ],
     [
      "permits_5yr",
      "Units permitted, 5 yr",
      "int"
     ],
     [
      "permits_last_year",
      "Units permitted, last year",
      "int"
     ],
     [
      "permits_ytd",
      "Units permitted, this year to date",
      "int"
     ]
    ]
   }
  },
  {
   "id": "hud_fmr_2br",
   "title": "HUD Fair Market Rent, 2 bedroom (counties)",
   "group": "market_housing",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 56,
   "source": {
    "agency": "U.S. Department of Housing and Urban Development (PD&R)",
    "name": "Fair Market Rents, FY2026 (effective Oct 1 2025), HUD eGIS feature service",
    "url": "https://hudgis-hud.opendata.arcgis.com/datasets/fair-market-rents",
    "cadence": "Annual (published Aug/Sep, effective Oct 1)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 56 counties (each sits in exactly one FMR area). Values for 0–4 bedrooms are in the popup and county table.",
   "gaps": "FY2027 FMRs (effective Oct 1 2026) are published on huduser.gov, which serves an AWS WAF bot challenge to scripts; the HUD eGIS service still carries FY2026 (checked against the FY2026 schedule: Bozeman MSA 2BR $2,154). FMRs are the 40th-percentile gross rent for recent movers, set for voucher payment standards. They are not a market median.",
   "files": {
    "geojson": "market/counties.geojson"
   },
   "style": {
    "by": {
     "prop": "fmr_2br",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#F1ECE2",
       "< $1,000"
      ],
      [
       1000,
       "#E3CDB7",
       "$1,000–$1,100"
      ],
      [
       1100,
       "#D2AE8E",
       "$1,100–$1,250"
      ],
      [
       1250,
       "#C09370",
       "$1,250–$1,500"
      ],
      [
       1500,
       "#B07A55",
       "$1,500–$1,900"
      ],
      [
       1900,
       "#8A5A3A",
       "$1,900+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "{county} County",
    "subtitle": "Market snapshot",
    "fields": [
     [
      "pop",
      "Population (PEP)",
      "int"
     ],
     [
      "pop_chg_5yr_pct",
      "Population change, 5 yr",
      "pct"
     ],
     [
      "net_dom_mig",
      "Net domestic migration, latest yr",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "permits_last_year",
      "Permitted units, last year",
      "int"
     ],
     [
      "permits_5yr",
      "Permitted units, 5 yr",
      "int"
     ],
     [
      "permits_ytd",
      "Permitted units, this year to date",
      "int"
     ],
     [
      "fmr_2br",
      "HUD Fair Market Rent, 2 BR",
      "usd",
      "/mo"
     ],
     [
      "jobs",
      "Jobs",
      "int"
     ],
     [
      "jobs_source",
      "Jobs source"
     ],
     [
      "jobs_year",
      "Jobs year",
      "year"
     ],
     [
      "avg_weekly_wage",
      "Average weekly wage",
      "usd"
     ],
     [
      "jobs_5yr_chg_pct",
      "Job change, 5 yr",
      "pct"
     ],
     [
      "top_industry",
      "Largest private sector"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=0500000US{fips}"
    },
    "note": "Sources: Census ACS / PEP / BPS / CBP (or BLS QCEW), HUD FMR."
   },
   "site": {
    "label": "HUD Fair Market Rent, 2 BR",
    "mode": "contains",
    "summary": "{fmr_area}: 2 BR ${fmr_2br:int}/mo (0 BR ${fmr_0br:int}, 1 BR ${fmr_1br:int}, 3 BR ${fmr_3br:int}, 4 BR ${fmr_4br:int})",
    "fields": [
     [
      "fmr_2br",
      "HUD Fair Market Rent, 2 BR",
      "usd"
     ],
     [
      "fmr_area",
      "FMR area",
      "text"
     ],
     [
      "fmr_0br",
      "FMR studio",
      "usd"
     ],
     [
      "fmr_1br",
      "FMR 1 BR",
      "usd"
     ],
     [
      "fmr_3br",
      "FMR 3 BR",
      "usd"
     ],
     [
      "fmr_4br",
      "FMR 4 BR",
      "usd"
     ]
    ]
   }
  },
  {
   "id": "jobs_county_wage",
   "title": "Average weekly wage (counties)",
   "group": "market_jobs",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 56,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "County Business Patterns 2023 (fallback for BLS QCEW)",
    "url": "https://www2.census.gov/programs-surveys/cbp/datasets/2023/cbp23co.zip",
    "cadence": "Annual (about 2 years after the reference year)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 56 counties, County Business Patterns 2023 (fallback for BLS QCEW); the 5-year change compares with the annual average five years earlier.",
   "gaps": "Private, non-farm employees in the pay period including March 12, 2023; average weekly wage = annual payroll / employees / 52. Excludes government, farm workers and the self-employed, so it runs below QCEW. Used because data.bls.gov and api.bls.gov publish robots.txt 'Disallow: /' (QCEW can be dropped in by hand; see src/market/build.py). Census adds noise to small cells; withheld sectors are skipped.",
   "files": {
    "geojson": "market/counties.geojson"
   },
   "style": {
    "by": {
     "prop": "avg_weekly_wage",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#EDEAE0",
       "< $900"
      ],
      [
       900,
       "#C9D3BF",
       "$900–$1,000"
      ],
      [
       1000,
       "#A2BA9A",
       "$1,000–$1,100"
      ],
      [
       1100,
       "#789F7A",
       "$1,100–$1,200"
      ],
      [
       1200,
       "#5E8C6A",
       "$1,200–$1,350"
      ],
      [
       1350,
       "#3F6B4D",
       "$1,350+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "{county} County",
    "subtitle": "Market snapshot",
    "fields": [
     [
      "pop",
      "Population (PEP)",
      "int"
     ],
     [
      "pop_chg_5yr_pct",
      "Population change, 5 yr",
      "pct"
     ],
     [
      "net_dom_mig",
      "Net domestic migration, latest yr",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "permits_last_year",
      "Permitted units, last year",
      "int"
     ],
     [
      "permits_5yr",
      "Permitted units, 5 yr",
      "int"
     ],
     [
      "permits_ytd",
      "Permitted units, this year to date",
      "int"
     ],
     [
      "fmr_2br",
      "HUD Fair Market Rent, 2 BR",
      "usd",
      "/mo"
     ],
     [
      "jobs",
      "Jobs",
      "int"
     ],
     [
      "jobs_source",
      "Jobs source"
     ],
     [
      "jobs_year",
      "Jobs year",
      "year"
     ],
     [
      "avg_weekly_wage",
      "Average weekly wage",
      "usd"
     ],
     [
      "jobs_5yr_chg_pct",
      "Job change, 5 yr",
      "pct"
     ],
     [
      "top_industry",
      "Largest private sector"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=0500000US{fips}"
    },
    "note": "Sources: Census ACS / PEP / BPS / CBP (or BLS QCEW), HUD FMR."
   },
   "site": {
    "label": "County average weekly wage",
    "mode": "contains",
    "summary": "{county} County: {jobs:int} jobs, avg ${avg_weekly_wage:int}/wk; largest private sector {top_industry}",
    "fields": [
     [
      "avg_weekly_wage",
      "County average weekly wage",
      "usd"
     ],
     [
      "jobs",
      "Jobs",
      "int"
     ],
     [
      "jobs_5yr_chg_pct",
      "Job change, 5 yr",
      "pct"
     ],
     [
      "top_industry",
      "Largest private sector",
      "text"
     ]
    ]
   }
  },
  {
   "id": "jobs_county_change",
   "title": "Job growth, 5 years (counties)",
   "group": "market_jobs",
   "kind": "polygon",
   "default_on": false,
   "minzoom": 0,
   "count": 56,
   "source": {
    "agency": "U.S. Census Bureau",
    "name": "County Business Patterns 2023 (fallback for BLS QCEW)",
    "url": "https://www2.census.gov/programs-surveys/cbp/datasets/2023/cbp23co.zip",
    "cadence": "Annual (about 2 years after the reference year)",
    "retrieved": "2026-10-05",
    "license": "Public domain (U.S. federal government work)"
   },
   "coverage": "All 56 counties, County Business Patterns 2023 (fallback for BLS QCEW): latest year vs five years earlier.",
   "gaps": "Private, non-farm employees in the pay period including March 12, 2023; average weekly wage = annual payroll / employees / 52. Excludes government, farm workers and the self-employed, so it runs below QCEW. Used because data.bls.gov and api.bls.gov publish robots.txt 'Disallow: /' (QCEW can be dropped in by hand; see src/market/build.py). Census adds noise to small cells; withheld sectors are skipped.",
   "files": {
    "geojson": "market/counties.geojson"
   },
   "style": {
    "by": {
     "prop": "jobs_5yr_chg_pct",
     "type": "step",
     "default": "#D9D3C3",
     "stops": [
      [
       -1000000000000.0,
       "#B07A55",
       "< -2%"
      ],
      [
       -2,
       "#D2AE8E",
       "-2%–0%"
      ],
      [
       0,
       "#E9E3D5",
       "0%–5%"
      ],
      [
       5,
       "#A2BA9A",
       "5%–10%"
      ],
      [
       10,
       "#5E8C6A",
       "10%–15%"
      ],
      [
       15,
       "#3F6B4D",
       "15%+"
      ]
     ]
    },
    "opacity": 0.62,
    "outline": "#ffffff",
    "width": 0.6
   },
   "popup": {
    "title": "{county} County",
    "subtitle": "Market snapshot",
    "fields": [
     [
      "pop",
      "Population (PEP)",
      "int"
     ],
     [
      "pop_chg_5yr_pct",
      "Population change, 5 yr",
      "pct"
     ],
     [
      "net_dom_mig",
      "Net domestic migration, latest yr",
      "int"
     ],
     [
      "med_hh_income",
      "Median household income",
      "usd"
     ],
     [
      "med_gross_rent",
      "Median gross rent",
      "usd",
      "/mo"
     ],
     [
      "med_home_value",
      "Median home value",
      "usd"
     ],
     [
      "renter_pct",
      "Renter-occupied",
      "pct"
     ],
     [
      "permits_last_year",
      "Permitted units, last year",
      "int"
     ],
     [
      "permits_5yr",
      "Permitted units, 5 yr",
      "int"
     ],
     [
      "permits_ytd",
      "Permitted units, this year to date",
      "int"
     ],
     [
      "fmr_2br",
      "HUD Fair Market Rent, 2 BR",
      "usd",
      "/mo"
     ],
     [
      "jobs",
      "Jobs",
      "int"
     ],
     [
      "jobs_source",
      "Jobs source"
     ],
     [
      "jobs_year",
      "Jobs year",
      "year"
     ],
     [
      "avg_weekly_wage",
      "Average weekly wage",
      "usd"
     ],
     [
      "jobs_5yr_chg_pct",
      "Job change, 5 yr",
      "pct"
     ],
     [
      "top_industry",
      "Largest private sector"
     ]
    ],
    "link": {
     "label": "Census profile",
     "url": "https://data.census.gov/profile?g=0500000US{fips}"
    },
    "note": "Sources: Census ACS / PEP / BPS / CBP (or BLS QCEW), HUD FMR."
   },
   "site": {
    "label": "County job change, 5 yr",
    "mode": "contains",
    "summary": "{county} County: jobs {jobs_5yr_chg_pct:pct} over 5 yr ({jobs:int} in {jobs_year}, {jobs_source})",
    "fields": [
     [
      "jobs_5yr_chg_pct",
      "County job change, 5 yr",
      "pct"
     ]
    ]
   }
  }
 ],
 "tables": {
  "counties": {
   "file": "market/counties.json",
   "rows": 57,
   "about": "One record per county plus statewide: ACS, PEP, permits, FMR, jobs; each block's source is in .sources"
  }
 }
}