{
  "model": "displaced_frac(occ, y; T) = beta(occ) * auto_share * ceiling * logistic(k * (y - T - lag))",
  "description": "Single source of truth for the scenario engine. Consumed by pipeline/05_scenario.py (preset grid) and site JS engine (/model sandbox). Parity test in 06_validate.py.",
  "parameters": {
    "T": {
      "label": "Replacement-level capability arrives",
      "min": 2027, "max": 2035, "default": 2030,
      "doc": "Year AI systems can perform exposed white-collar tasks at replacement level. The site's main slider."
    },
    "k": {
      "label": "Diffusion speed",
      "min": 0.3, "max": 2.0, "default": 0.8,
      "doc": "Logistic steepness per year. 0.8 means adoption goes 12%->88% over ~5.5 years around the midpoint, consistent with enterprise software diffusion (faster than electrification, slower than smartphones)."
    },
    "ceiling": {
      "label": "Adoption ceiling",
      "min": 0.2, "max": 1.0, "default": 0.75,
      "doc": "Maximum share of technically-automatable task value that ever gets automated (regulation, integration costs, human-preference niches)."
    },
    "auto_share": {
      "label": "Automation share of exposure",
      "min": 0.1, "max": 0.9, "default": 0.45,
      "doc": "Share of AI task usage that substitutes for the worker rather than augmenting them. Default from the Anthropic Economic Index automation/augmentation conversation split."
    },
    "lag": {
      "label": "Labor-market friction lag (years)",
      "min": 0.0, "max": 5.0, "default": 1.5,
      "doc": "Years between capability arrival and employment effect (contracts, reorgs, attrition-first policies)."
    },
    "exit_rate": {
      "label": "Annual attrition absorption",
      "min": 0.0, "max": 0.06, "default": 0.03,
      "doc": "Annual displacement FLOW (fraction of an occupation's jobs per year) that retirements/quits absorb without layoffs; only flow above this rate becomes involuntary layoffs. BLS total separations run far higher, but only non-backfilled exits count. Gross = positions eliminated; net = involuntary layoffs."
    }
  },
  "presets": {
    "aggressive": {"T": 2027, "k": 1.3, "ceiling": 0.85, "auto_share": 0.6, "lag": 1.0, "exit_rate": 0.03,
      "doc": "AI-2027-style: capability arrives essentially now, fast diffusion, automation-dominant use."},
    "median": {"T": 2030, "k": 0.8, "ceiling": 0.75, "auto_share": 0.45, "lag": 1.5, "exit_rate": 0.03,
      "doc": "Central scenario: replacement-level capability ~2030, enterprise-speed diffusion."},
    "conservative": {"T": 2034, "k": 0.5, "ceiling": 0.55, "auto_share": 0.35, "lag": 2.5, "exit_rate": 0.035,
      "doc": "OECD-style skepticism: late capability, slow diffusion, augmentation-dominant, heavy friction."}
  },
  "years": {"start": 2026, "end": 2040},
  "grounding": [
    "Curve must pass through observed reality: through 2026, aggregate exposure-employment relationship is null (Yale Budget Lab) while entry-level effects in automation-heavy occupations are real (Brynjolfsson et al. Canaries). With default parameters, modeled displacement through 2026 is <1.5% in the most-exposed occupations - consistent with both.",
    "This is a scenario, not a forecast. Every parameter is user-adjustable at /model."
  ]
}
