{
  "matrixVersion": 1,
  "dataStatus": "synthetic",
  "title": "City Signals prototype score",
  "description": "An illustrative index of housing, commute, climate fit, air, and income. Preferences change the climate fit and measure weights. It is not a universal measure of city quality.",
  "method": "clamped_linear_weighted_average",
  "missingScore": 50,
  "preferences": {
    "defaultClimate": "balanced",
    "defaultPriority": "balanced",
    "climateProfiles": {
      "balanced": { "label": "Mild weather", "targets": { "winterMeanF": 45, "summerMeanF": 76, "daysAtOrAbove90F": 35 }, "tolerances": { "winterMeanF": 28, "summerMeanF": 23, "daysAtOrAbove90F": 90 }, "weights": { "winterMeanF": 0.25, "summerMeanF": 0.45, "daysAtOrAbove90F": 0.30 } },
      "cooler": { "label": "Cooler summers", "targets": { "winterMeanF": 35, "summerMeanF": 68, "daysAtOrAbove90F": 10 }, "tolerances": { "winterMeanF": 30, "summerMeanF": 26, "daysAtOrAbove90F": 90 }, "weights": { "winterMeanF": 0.15, "summerMeanF": 0.55, "daysAtOrAbove90F": 0.30 } },
      "warmer": { "label": "Warmer weather", "targets": { "winterMeanF": 56, "summerMeanF": 82, "daysAtOrAbove90F": 65 }, "tolerances": { "winterMeanF": 30, "summerMeanF": 27, "daysAtOrAbove90F": 115 }, "weights": { "winterMeanF": 0.40, "summerMeanF": 0.40, "daysAtOrAbove90F": 0.20 } },
      "seasonal": { "label": "Four seasons", "targets": { "winterMeanF": 32, "summerMeanF": 76, "daysAtOrAbove90F": 25, "seasonalRangeF": 44 }, "tolerances": { "winterMeanF": 32, "summerMeanF": 25, "daysAtOrAbove90F": 95, "seasonalRangeF": 33 }, "weights": { "winterMeanF": 0.20, "summerMeanF": 0.20, "daysAtOrAbove90F": 0.15, "seasonalRangeF": 0.45 } }
    },
    "priorities": {
      "balanced": { "label": "Balanced", "multipliers": {} },
      "affordability": { "label": "Lower housing costs", "multipliers": { "rent": 2, "burden": 1.6 } },
      "income": { "label": "Higher income", "multipliers": { "income": 2.2 } },
      "commute": { "label": "Shorter commute", "multipliers": { "commute": 2.2 } },
      "air": { "label": "Cleaner air", "multipliers": { "air": 2.2 } },
      "climate": { "label": "Climate fit", "multipliers": { "heat": 2.2 } }
    }
  },
  "metrics": [
    {
      "id": "rent",
      "label": "Median gross rent",
      "shortLabel": "Rent",
      "category": "Housing",
      "source": "Census-style fixture",
      "path": "census.latest.medianGrossRentUsd",
      "period": "2020–2024",
      "weight": 20,
      "direction": "lower",
      "range": [1000, 2600],
      "format": "currency"
    },
    {
      "id": "income",
      "label": "Median household income",
      "shortLabel": "Income",
      "category": "Housing",
      "source": "Census-style fixture",
      "path": "census.latest.medianHouseholdIncomeUsd",
      "period": "2020–2024",
      "weight": 20,
      "direction": "higher",
      "range": [60000, 140000],
      "format": "currency"
    },
    {
      "id": "burden",
      "label": "Rent-burdened households",
      "shortLabel": "Rent burden",
      "category": "Housing",
      "source": "Census-style fixture",
      "path": "census.latest.rentBurdenedHouseholdsPct",
      "period": "2020–2024",
      "weight": 15,
      "direction": "lower",
      "range": [40, 55],
      "format": "percent"
    },
    {
      "id": "commute",
      "label": "Mean commute",
      "shortLabel": "Commute",
      "category": "Mobility",
      "source": "Census-style fixture",
      "path": "census.latest.meanCommuteMinutes",
      "period": "2020–2024",
      "weight": 15,
      "direction": "lower",
      "range": [20, 45],
      "format": "minutes"
    },
    {
      "id": "heat",
      "label": "Climate fit",
      "shortLabel": "Hot days",
      "category": "Climate",
      "source": "Weather fixture",
      "path": "weather.daysAtOrAbove90F",
      "period": "2025",
      "weight": 15,
      "direction": "lower",
      "scoringMode": "climateFit",
      "range": [0, 180],
      "format": "days"
    },
    {
      "id": "air",
      "label": "30-day mean PM2.5",
      "shortLabel": "PM2.5",
      "category": "Air",
      "source": "Air-quality fixture",
      "path": "airQuality.last30Days.meanPm25UgM3",
      "availableWhen": { "path": "airQuality.status", "equals": "available" },
      "period": "Recent 30 days",
      "weight": 15,
      "direction": "lower",
      "range": [5, 15],
      "format": "pm25"
    }
  ]
}
