Every occupation in the index, searchable by title, SOC code, category, score and dimension — alongside twenty years of employment history, wage distribution, preparation level and the exact prompt used to score it. Scores run 0–100 resistance: higher means more protected from AI displacement, so the lowest numbers are the most exposed.
The scores and rubric are entirely the work of The Cooked Index, used unmodified under PolyForm Noncommercial 1.0.0; every occupation links back to its source report. Employment, wages and wage percentiles are pulled independently from BLS OEWS national files, May 2005–2025; preparation level from the O*NET database 30.0; the deflator from BLS CPI-U. The enrichment and any claim made from it are this page’s, not theirs.
Every figure below is computed from the same 830 rows in the register — scores, BLS employment counts, median wages and the 2019–2025 employment series. Category scores are weighted by headcount, so a category’s number reflects where its workers are, not how many job titles it contains. Every table below re-sorts — click a column header, click it again to reverse.
Splitting the workforce at the median occupational wage (—) against the verdict line.
Lowest resistance scores in the register. Ties broken by workforce size.
Highest resistance scores. Note how few routes there are into this list.
All 22 categories, ranked by headcount-weighted resistance score. “Cooked share” is the percentage of that industry’s workers — not its job titles — sitting in a COOKED occupation.
The best-paid work that the rubric calls protected, next to the best-paid work it calls cooked.
Headcount-weighted average on each 0–20 dimension, COOKED workers vs SAFE workers.
How much training an occupation needs, rated 1–5 by O*NET, against how the index scores it. Weighted by workforce. 771 of 830 occupations carry a zone; the 59 without one are mostly “All Other” residual categories that O*NET does not rate.
Each occupation classified from ten OEWS snapshots between 2005 and 2025, so a job that already collapsed before generative AI is separable from one turning down now. This is the test of whether a score predicts anything or merely describes what happened.
The register carries what The Cooked Index publishes. This file adds long-run employment, wage distribution, preparation level and trajectory so the two commonest objections to the index can be tested rather than argued.
Download CSV — 830 rows Download JSON
Enrichment sources: employment history from BLS OEWS national files, May 2005 / 2010 / 2015 / 2019 / 2024; preparation level from the O*NET database 30.0 Job Zones table; real wages deflated with the BLS CPI-U annual average pulled from the BLS public API. Employment for 2019 matched the Cooked Index exactly across all 758 overlapping occupations, which is the join check. 59 occupations have no Job Zone, 47 of them “All Other” residual categories that O*NET does not rate. 172 have no 2005 record because the 2010 and 2018 SOC revisions created their codes later. Trajectory thresholds are deliberately blunt — a ±5% flat band and a −25% collapse line — because OEWS is not a true time series and finer bins would imply precision the source does not have.
What this is and isn’t. Employment and median annual wages are BLS OEWS, May 2025, national cross-industry — public domain. The AI-exposure scores are not BLS: each of the 830 occupations was scored by a language model against the fixed five-dimension rubric on the Scoring prompt tab. That makes them reproducible and auditable, not authoritative — the prompt and the full dataset are published so anyone can re-run or contradict them.
Wage statistics here use n = 825. Five occupations — Actors, Dancers, Musicians and Singers, Disc Jockeys, and Entertainers and Performers — have wages suppressed by BLS, and suppressed is not zero, so they are excluded rather than imputed. Correlations use log wage because pay is right-skewed; on a linear scale a handful of surgeons set the scale for everyone else. The wage data is also top-coded, so the highest earners are compressed against the BLS ceiling.
Nothing here is causal in either direction. These are occupation-level medians, so every distribution inside an occupation is invisible, and the register counts each occupation once whether it holds 300 workers or 4.3 million — which is why the breakdowns on this page are weighted by employment wherever weighting is possible. Employment change deserves a real warning. BLS states that OEWS is not designed as a time series and advises against comparing estimates across years: the survey panel, estimation methodology and occupational definitions all change between rounds, and the 2018 SOC revision split and merged codes partway through this window. Pandemic effects are tangled in on top of that. Every ’19–’25 figure on this page is therefore a comparison of two independent snapshots, not a measured trend — useful as rough direction, worthless as precision, and never proof that AI moved the number.
Pick an occupation and a state to see what the median wage in that job actually leaves you after tax and after local prices. Then two lists built from explicit tests, not judgement.
Cost of living is the BEA regional price parity for all items, where 100 is the national average. Adjusted pay divides median pay by that index, so it is what the money actually buys.
The model receives this system prompt plus four fields for one occupation — title, SOC code, category, and US employment count. It sees no other occupation’s score, no wage, no O*NET task list, no definition text. Reproducing a verdict means sending this prompt and those four fields to the model named above.
Inverse of task automatability. What share of core tasks are text/screen/pattern work that current AI already performs at usable quality — drafting, summarizing, classifying, form-filling, routine analysis, routine code?
Physical presence in unpredictable physical environments. Robotics lags language AI badly, so the rubric scores today’s robotics, not sci-fi.
Legal requirement for a licensed human to perform or sign off. The rationale must note that this shield is regulatory and could erode.
Do buyers specifically pay for a human relationship, presence, accountability, or care?
Does the role make consequential calls under ambiguity and own the outcomes?
| Occupation | Target | Reasoning given to the model | Scored |
|---|---|---|---|
| Data entry keyers | ~8–15 COOKED | Core tasks are solved. | — |
| Paralegals | ~30–40 border | Document work is heavily automatable; the judgment tier is thin and unlicensed. | — |
| Software developers | ~40–55 EXPOSED | Code production is automating fast; system judgment, accountability and integration persist. The occupation shrinks and splits rather than vanishing. | — |
| Registered nurses | ~75–90 SAFE | Embodied, licensed, trust-carrying, accountable. | — |
| Electricians | ~80–92 SAFE | Uncontrolled physical environments, licensure, liability. | — |
{
"slug": "<the slug you were given>",
"verdict": "SAFE" | "EXPOSED" | "COOKED",
"risk_resistance": <integer 0-100, the sum>,
"scores": {
"task_resistance": <0-20>,
"embodiment": <0-20>,
"liability_shield": <0-20>,
"trust_premium": <0-20>,
"judgment_accountability": <0-20>
},
"rationale": "<2-3 plain, specific sentences. Name actual tasks. No hedging filler, no 'it depends'.>",
"tasks_at_risk": ["<3-5 short task phrases already automatable>"],
"tasks_that_survive": ["<3-5 short task phrases that persist>"],
"moats": ["<0-3 from: embodiment, licensure, liability, trust, judgment, unionization, physical-presence>"],
"futureproof": ["<3-4 concrete moves toward the surviving tier of THIS occupation>"],
"outlook": "<one sentence, 10-year horizon, concrete>",
"confidence": "high" | "medium" | "low"
}
futureproof: “embrace lifelong learning”, “develop soft skills”, “stay adaptable”, “learn AI tools” without specifics. “Learn to supervise AI contract review and own the sign-off” is a move; “upskill” is not.