Methodology
AI exposure and job displacement are different objects.
A software developer and a data entry clerk can both score high on AI exposure, but one gets augmented while the other faces substitution. We deliberately separate the global structural effect from the local labour-market effect so the model stays comparable across countries.
Global contract
AI Work Index separates the global structural effect of AI on work from the local labor-market effect of that work in each country. Country headline risk only publishes when local evidence is sufficiently strong; otherwise the page stays on the structural baseline. The shared spine is ISCO-08; country layers add wages, demand resilience, worker profile, transition capacity, regulatory overlays, and confidence where evidence exists. Observed adoption and skills/task context remain part of the structural validation layer.
Shared formula
structural_pressure = exposure × (1 - bottleneck)
Country headline
headline_risk = structural_pressure × (1 - country_demand_resilience)
Validation & Limits
What this model does: Measures structural AI displacement pressure using observable inputs. It tells you which occupations face the most technical overlap with AI capabilities and which have the strongest human bottlenecks and demand buffers. Observed usage, O*NET skill context, and cross-country research help calibrate the structural layer.
What it does not do: Predict actual job losses, forecast hiring trends, or make a legal/compliance opinion. The core score still captures structural displacement pressure, not realised reinstatement. Policy, licensing, and public-sector constraints are published as a separate context overlay, not silently folded into the score.
How To Read This
This site has two layers. The global structural layer is the comparable research spine: exposure, bottleneck, and displacement pressure. The country layer adds wages, labour demand, worker profile, transition capacity, regulatory overlays, and local confidence so headline risk remains defensible in each market.
Interpretive fields are heuristic and should be read as context, not as direct occupation-level measurement. They help explain the score, but they do not replace the core formula.
Publication gates
Mapping threshold
Publish country headline risk only when mapping coverage is at least 80% and fallback share is no more than 20%.
Evidence threshold
Local headline risk needs at least medium confidence and an official local demand source. Otherwise the surface stays provisional.
Design Principles
One canonical spine
Every country maps its local occupation system to ISCO-08 so the structural layer stays comparable.
Separate global from local
Exposure and bottleneck remain global. Demand resilience, wages, and policy context are local.
Use an evidence hierarchy
Official local sources drive public country headlines. Proxies and synthetic fields can support calibration, but must be labeled.
Publish uncertainty
Coverage, mapping fidelity, temporal stability, and source agreement are first-class outputs, not hidden implementation details.
Treat regulation as context
Licensing, compliance, and public-sector constraints are shown as an overlay, not silently baked into the structural score.
Country Readiness
United States
readyBLS OEWS · BLS ORS · BLS CPS demographics · BLS Skills Data · BLS OOH · BLS employment projections · O*NET
Strong structural compatibility and deep public labor data across wages, requirements, skills, demographics, and narrative context.
United Kingdom
researchONS SOC 2020 · ONS labour demand volumes · vacancy series
Good public occupation structure and useful demand signals.
Canada
researchStatsCan NOC · Job Bank outlook methodology · vacancy series
Public data is usable but more fragmented than the US.
Singapore
liveMOM wages · MOM labour force tables · SOL / Jobs in Demand
First fully scored country.
Singapore AI Work Index was the first country scored and remains the deepest dataset. The United States layer is ready, backed by BLS wages, requirements, demographics, skills, and narrative sources. Other countries remain research-only until mapping coverage, validation, and local demand evidence are published.
TL;DR
Headline risk = displacement pressure × (1 − demand resilience), where displacement pressure = AI exposure × (1 − human bottleneck). In V7, exposure carries a task-concentration buffer (Hampole et al. find concentrated exposure offsets labour-demand losses) and demand resilience includes a persistence proxy. No LLM assigns scores in the pipeline.
V7 Two-Axis Structural Score
Layer 1: Exposure
How much does this job overlap with current AI capabilities? The live V7 exposure layer uses a deterministic audited 4-source ensemble.
Layer 2: Human Bottleneck
How much does this job require judgment, presence, and responsibility that resists automation? From Pizzinelli theta, computed from O*NET Work Context data.
Axis 2: Demand Resilience
How strongly does the current country demand counteract structural AI pressure for this occupation? Built from base resilience plus direct demand-signal bonuses.
Exposure and bottleneck first form displacement pressure. Demand resilience then acts as an independent counterforce. Around that core score we add confidence, labour evidence, synthetic-role estimates, offset potential, and scenario tooling rather than hiding everything inside one opaque number.
Separate country context modules now show industry footprint and worker-profile composition from official labour-force tables and wage tables. The industry footprint card now also shows sector wage anchors where the occupation is covered. The labour monitor carries both published vacancy rates and published vacancy counts at cluster level. These context blocks are displayed as evidence around the score, not folded into hidden multipliers, and are published in separate country context bundles alongside the main score dataset.
| Layer | Measures | Source |
|---|---|---|
| Exposure | AI capability overlap with job abilities | Reliability-weighted blend of matched percentile-ranked exposure sources |
| Human Bottleneck | Judgment, presence, responsibility that resists automation | Pizzinelli theta from O*NET (2023), percentile-ranked |
| Demand Resilience | Base resilience plus occupation-level demand bonuses | Country employment/wage trends (e.g. MOM for Singapore) + scarcity + SOL / JiD |
| Headline Risk | Published as risk bands (Very Low to Very High) with confidence | Composite formula |
The Formula
headline_risk = displacement_pressure × (1 - demand_resilience)
Where:
displacement_pressure = exposure_v7 × (1 - bottleneck)exposure_v7 = exposure × (1 - 0.20 × task_signal)— the V7 task-concentration buffer (Hampole et al. 2025)task_signal = task_exposure_concentration × task_effective_coveragedemand_resilience = min(1.0, base_resilience × 0.45 + demand_signal_bonus + 0.10 × demand_persistence)demand_persistence = 0.4 × momentum_rank + 0.3 × vacancy_rank + 0.2 × scarcity_rank + 0.1 × demand_bonus_rankbase_resilience = 0.6 × market_momentum + 0.4 × occupation_scarcity
Demand resilience is its own axis, not a compressed multiplier. Weak demand provides less buffer; strong verified demand can offset much more of the structural pressure than the old buffering rule allowed.
Honest framing of this axis: displacement pressure is the evidence-grounded axis (exposure ensemble × bottleneck); demand resilience is best read as a counterweight adjustment built from backward-looking labour-demand signals, not an independently validated co-equal prediction. The sensitivity analysis identifies its weights (base_weight in particular) as the model's most level-sensitive constants, and the IMF convergence check flags the exposure tail as a candidate recalibration target — recalibration is deferred to the next major version rather than tuned ad hoc.
Layer 1: Exposure
Exposure Ensemble
V7 treats exposure as an ensemble layer, not a single index. AIOE is the baseline source; Anthropic observed usage, Eloundou GPT exposure, and the ILO occupational exposure index are added when crosswalk coverage exists. In the live release, weighted task evidence can then upgrade that ensemble for occupations that clear the coverage gate.
exposure_ensemble = weighted_mean(percentile-ranked matched exposure inputs)
Each source is percentile-ranked to a 0–1 scale and then blended using deterministic source weights based on recency, construct fit, coverage quality, and validation support. Occupations with fewer matched sources are kept, but should be read with lower evidential coverage.
What it does NOT measure: whether exposure leads to augmentation or replacement.
Layer 2: Human Bottleneck (Theta)
Pizzinelli Theta (Complementarity)
From Pizzinelli et al. (2023, IMF). Computed from 12 O*NET variables across 6 dimensions. Higher theta = stronger human bottleneck = harder to substitute.
- Communication: Face-to-Face Discussions
4.C.1.a.2.l, Public Speaking4.C.1.a.2.c - Responsibility: Outcomes/Results
4.C.1.c.2, Health/Safety of Others4.C.1.c.1 - Physical Conditions: Outdoors
4.C.2.a.1.c, Physical Proximity4.C.2.a.3 - Criticality: Consequence of Errors
4.C.3.a.1, Decision Freedom4.C.3.a.4, Decision Frequency4.C.3.a.2.b - Routine (inverted): Degree of Automation
4.C.3.b.2(inverted), Structured vs. Unstructured Work4.C.3.b.8 - Skills: O*NET Job Zone (1-5, scaled to 0-1)
θ = mean(6 dimension means, each normalized to 0-1)
bottleneck = percentile_rank(θ) across all matched occupations
Scale: 0 (lowest percentile — most automatable) to 1 (highest percentile — strongest human bottleneck)
No double-counting: We use AIOE and theta as separate, independent
layers. We do NOT use C-AIOE (which is aioe × f(theta)) as an input
to net_risk, because multiplying by (1 - theta) would double-count complementarity.
C-AIOE is computed and displayed as a reference score for IMF comparability only.
Axis 2: Demand Resilience
Market data is a counterforce, not an override. Employment and wages are lagging and confounded, so the base resilience layer stays conservative. Verified demand signals then add explicit occupation-level cushioning on top of that base instead of being compressed into the old single dampener.
Separately, we build a Singapore industry-footprint layer from the official industry × occupation cross-tab plus industry vacancy series. When it exists, that footprint now informs the employment side of market momentum directly; the same footprint is also shown on occupation and synthetic-role pages as transparent supporting context.
Market Momentum (group prior + industry footprint)
market_momentum = mean(blend(pctile(group_empl_cagr), pctile(occupation_industry_growth)), pctile(group_wage_cagr))
The baseline prior is still MOM group employment CAGR (2015-2025) plus group wage CAGR (2015-2023). When an occupation has a published industry footprint, we replace most of the employment-side group prior with an occupation-specific industry growth signal built from the industries where that occupation actually appears.
Occupation Scarcity (occupation-level)
occupation_scarcity = mean(pctile(log(q75/q25)), pctile(wage_median / group_median))
Two wage-structure signals: (1) log wage spread (winsorized at 1st/99th percentile) as a scarcity proxy, and (2) within-group wage position (above group median = relative specialization). Both percentile-ranked across all 562 occupations.
Base Resilience and Demand Resilience
base_resilience = 0.6 × market_momentum + 0.4 × occupation_scarcity
demand_resilience = min(1.0, base_resilience × 0.45 + demand_signal_bonus + 0.10 × demand_persistence)
Momentum gets 60% weight and scarcity 40%. Within momentum, group-level wage growth is retained as the common anchor while the employment side uses an occupation-specific industry-footprint blend when available, falling back to the group prior otherwise. V7 then converts base resilience into demand resilience by retaining 45% of the base signal, adding verified occupation-level demand bonuses, and a demand-persistence proxy.
Singapore Demand Signals (occupation-level bonuses)
Two MOM data sources provide occupation-level demand flags that boost market resilience:
- Shortage Occupation List (SOL) 2026: EP/COMPASS shortage list (released Nov 2025, effective Jan 2026). 36 occupations across semiconductors, healthcare, ICT, green economy, maritime, agritech, financial services. Matched to 62 SSOC codes. Demand resilience bonus: +0.15 exact, +0.08 prefix.
- Jobs in Demand 2025: Broader resident demand list (released Dec 30, 2025). Covers PMET and non-PMET roles: software developers, nurses, waiters, drivers, security officers, auditors. Matched to 29 SSOC codes. Demand resilience bonus: +0.12 exact, +0.06 prefix.
Where both signals match (e.g., software developer appears on both SOL and Jobs in Demand), bonuses stack and are capped only at the final 1.0 demand-resilience ceiling. SOL is EP/COMPASS-focused (PMET bias); Jobs in Demand offsets this by covering non-PMET roles.
Labour Monitor (cluster-level evidence layer)
We ingest official MOM/SingStat raw feeds from data.gov.sg and compute a unified labour monitor for three broad occupation clusters. Where the published raw series is annual or incomplete, we attach the latest MOM quarterly enrichment snapshot instead of pretending the raw feed is finer than it is:
- PMET — Professionals, Managers, Executives & Technicians
- Clerical, Sales & Service Workers
- Production & Transport Operators, Cleaners & Labourers
Three signals are computed per cluster (where data is available):
- Vacancy rate trend: 4-quarter-over-4-quarter average trend. Signal: >+5% = heating up (+1), <-5% = cooling down (-1), else stable (0).
- Net hiring pressure: recruitment rate minus resignation rate (when available). Signal: net >+0.1pp = positive (+1), <-0.1pp = negative (-1), else neutral (0).
- Retrenchment trend: count and 4Q-over-4Q trend (when available). Falling retrenchment = positive (+1), rising = negative (-1).
The three signals are summed into an overall label:
total = vacancy_signal + hiring_signal + retrenchment_signal
2-3 = "strong" | 1 = "moderate" | 0 = "weak" | <0 = "deteriorating"
This is cluster-level data, not occupation-level. It provides context about the broad labour market conditions for each occupation's cluster, displayed as a labour market card on occupation pages. It is not a direct scoring input — we show it to ground the analysis in current labour-market reality without overfitting a sparse cluster-level series into the per-occupation formula.
Data displayed per cluster: vacancy rate with year-over-year trend and multi-year sparkline (2021–2025), recruitment vs resignation rates, retrenchment incidence per 1,000 employees, and re-entry rates (proportion of retrenched workers finding employment within 6 and 12 months).
Data sources: vacancy rates and counts, recruitment/resignation rates, retrenchment by occupation group, and re-entry into employment statistics from data.gov.sg/MOM, with MOM labour-monitor enrichment attached for the live monitor artifact vintage (Q4 2025 full) where the public raw series stays annual or sparse. Updated when a fresher official release is available.
Anthropic Economic Index (exposure calibration)
Observed AI usage rates from Claude conversations (HuggingFace dataset, Jan 2026 report). Calibrates the theoretical AIOE exposure by up to ±30% based on the gap between theoretical and observed AI usage per occupation.
Applied to 507 of 562 occupations via SOC code crosswalk. Key finding: some occupations (data entry, customer service) show higher observed usage than AIOE predicts, while others (teachers, software developers) show lower observed usage.
Used as calibration, not replacement. Anthropic measures Claude usage specifically, not universal AI adoption.
Risk Bands
Net risk is published as bands, not pseudo-precise decimals:
| Band | Range | Meaning |
|---|---|---|
| Very Low | 0.00 – 0.05 | Negligible displacement pressure |
| Low | 0.05 – 0.15 | Limited pressure; AI likely augments |
| Moderate | 0.15 – 0.30 | Mixed; bottlenecks or market provide buffer |
| High | 0.30 – 0.50 | Significant pressure; weaker bottlenecks and/or declining market |
| Very High | 0.50+ | Strong pressure across multiple signals |
Augmentation & Impact Type
A single displacement risk number misses half the story. We compute augmentation potential from the same core ingredients, with a different formula:
displacement_pressure = exposure_v7 × (1 - bottleneck)
augmentation = exposure_v7 × bottleneck × base_resilience
Augmentation is highest when AI capability overlaps with strong human bottlenecks AND the local market has demand for the occupation. High exposure alone does not guarantee augmentation — the occupation must also have irreplaceable human elements (high bottleneck) that make AI a complement rather than a substitute.
Crossing displacement with augmentation gives a 2×2 impact type:
| Low Augmentation | High Augmentation | |
|---|---|---|
| High Displacement | At Risk — AI substitutes, weak bottleneck | Mixed — conflicting signals, high uncertainty |
| Low Displacement | Stable — AI has limited overlap | Augmented — AI amplifies, human essential |
Impact type is classified from headline risk and augmentation thresholds: net_risk ≥ 0.25 = "high displacement", augmentation ≥ 0.12 = "high augmentation". Official demand signals affect impact type indirectly through demand resilience and therefore the structural scores; they are not applied again as a separate classification override.
Confidence Scores
Every score carries a visible confidence indicator:
confidence = weighted_sum(crosswalk, market, freshness, coverage, agreement, sensitivity) − penalties
| Factor | How it is assigned | Typical range |
|---|---|---|
| Crosswalk quality | Direct = 1.0, sub-major fallback = 0.6, major fallback = 0.3, then reduced further by crosswalk dispersion where mapped SOC scores disagree. | 0.3 - 1.0 |
| Market data granularity | Baseline = occupation wage structure + group employment/wage trends. Exact official demand evidence adds more occupation-specific Singapore signal than prefix-inferred or absent demand evidence. | 0.65 - 0.85 |
| Source freshness | Weighted from the matched exposure sources' recency scores inside the reliability-weighted ensemble. | 0.55 - 0.98 |
| Source coverage | Rewards occupations with broader matched exposure coverage across AIOE, Anthropic, Eloundou, and ILO. | 0.10 - 1.00 |
| Signal agreement | Penalizes occupations whose matched exposure sources materially disagree or where only one source is available. | 0.25 - 0.95 |
| Sensitivity | Derived from the Monte Carlo stability label: stable > watch > sensitive. | 0.40 - 0.85 |
Published as: High (≥0.7) / Medium (0.45–0.7) / Low (<0.45).
In the current implementation, High confidence is reserved for direct, clean, multi-source cases only. Contested occupations, sparse one-source matches, and fallback mappings are capped below High even when their raw score crosses the threshold.
Classification
Building on the IMF framework, occupations are classified into four impact types based on the 2×2 matrix of displacement risk and augmentation potential:
At Risk
High displacement, low augmentation (e.g., data entry, bookkeepers)
Augmented
Low displacement, high augmentation (e.g., software developers, surgeons)
Stable
Low displacement, low augmentation (e.g., electricians, childcare workers)
Mixed
High displacement, high augmentation — conflicting signals, outcome depends on adoption path
TL;DR
2 of 3 cluster-level directional checks pass against Q4 2025 MOM data — with only four binary checks this is statistically indistinguishable from chance in either direction (a coin flip passes ≥2 of 4 about 69% of the time), so we treat it as underpowered by construction and accumulate checks across quarters rather than claiming validation from it. BLS cross-country check shows a weak but significant negative correlation (rho = -0.1385, p < 0.01) — a small effect, consistent with field-wide findings that realized employment effects are not yet detectable at the occupation-stock level. This is a structural pressure score, not a job-loss prediction.
Validation
We backtest structural risk scores against actual labour market outcomes at the cluster level (Q4 2025 data). This tests whether higher-risk clusters show worse outcomes than lower-risk ones.
Cluster-Level Directional Checks
Only 3 labour clusters are available, so statistical
power is limited. This validates broad direction, not precision. Cluster-level data masks
within-cluster variation. Full raw results in data/backtests/q4-2025-validation.json.
Cross-Country Convergent Check (BLS Projections)
We mapped 530 of 562 Singapore SSOC occupations to US BLS 2024–2034 employment projections via the ISCO-08 → SOC crosswalk. Spearman rank correlation between our structural risk scores and BLS projected employment change: ρ = -0.1385 (p < 0.01, n = 530). Higher risk scores are associated with weaker projected employment growth.
The slope specification — the same projected-growth regression design Anthropic (Massenkoff & McCrory, March 2026) used against these BLS projections — gives -1.01pp lower projected employment growth per +0.10 net_risk (p < 0.001). Anthropic's observed-exposure measure found −0.6pp per +10pp task coverage. The measures differ, so this is a design-and-direction convergence, not a magnitude match — but both find that higher measured pressure predicts weaker projected growth.
| Risk band | n | Avg BLS change |
|---|---|---|
| Very Low | 128 | +3.2% |
| Low | 163 | +3.1% |
| Moderate | 141 | +2.9% |
| High | 63 | +2.6% |
| Very High | 35 | -4.8% |
The highest-risk band is the only one with projected negative employment growth. Caveat:
BLS projections include non-AI factors (demographics, trade, policy). The modest
correlation (ρ = −0.14) is expected — our model measures AI-specific
structural pressure, not total employment change. Treat this as weak convergent
evidence, not strong external validation. Full results in data/backtests/bls-crosswalk-validation.json.
IMF Singapore Convergence (macro benchmark)
Framing first: the IMF's Singapore estimates (SIP/2024/040, Khan) are absolute economy-wide shares — 77% of workers highly exposed, split roughly evenly between high and low complementarity. Our exposure is percentile-ranked within 562 Singapore occupations, so it cannot reproduce absolute shares by construction. What is comparable is the employment-weighted complementarity split among the most-exposed occupations.
At the top-half exposure cut, exposed employment splits 28% high-complementarity to 31.1% low-complementarity (ratio 0.9) — broadly consistent with the IMF's roughly even split. At the stricter top-quartile cut the ratio falls to 0.47: our most-exposed employment skews low-complementarity, i.e. the model is more pessimistic than the IMF at the exposure tail. We disclose this divergence as a candidate recalibration signal rather than hiding it.
Convergent-directional Singapore macro benchmark only — not occupation-level
validation. The MOM AI-adoption survey (April 2026) is adoption/context evidence, and
the BLS slope above is the occupation-level external check. Full results in data/backtests/imf-convergence.json.
Temporal Robustness Check (Singapore labour history)
Using the fixed cluster risk ordering, we also test whether higher-risk clusters show weaker vacancy movement over multiple observed periods. Vacancy rate YoY alignment is 1.00 across 2 periods; vacancy count YoY alignment is 1.00 across 3 periods. Annual hiring-net alignment is much weaker at 0.30 across 10 years.
This strengthens the claim that the score tracks long-run pressure better than short-run
hiring appetite. Full raw results in data/backtests/multi-period-validation.json.
Calibration Diagnostics (mapping quality and confidence)
We also check whether the broadest, most trusted score population behaves as expected in the external cross-check. Direct SSOC mappings cover 90.4% of the matched BLS sample and retain a significant negative relationship (ρ = -0.162, p < 0.01). The combined high/medium-confidence population covers 97.4% of matched occupations and shows the same negative alignment (ρ = -0.136, p < 0.01).
Fallback mappings remain directionally negative but are much smaller (n = 51, ρ = 0.065). The low-confidence tier is intentionally tiny (n = 14) and should be treated as noisy rather than over-interpreted.
This is a calibration check for mapping quality and confidence labels, not separate
Singapore outcome truth. Full results in data/backtests/calibration-diagnostics.json.
Confidence Ratings (evidence quality and agreement)
Each occupation now carries an IPCC-style confidence sidecar derived from existing score metadata: crosswalk quality, exposure-source coverage, source freshness, signal agreement, sensitivity, and whether the uncertainty interval crosses a risk-band boundary. The current distribution is 248 high, 142 medium, and 172 low confidence across 562 occupations.
The leading limiting factor is Market Data Granularity (464 occupations). Policy-capped occupations cannot be labeled high confidence, even when the numeric confidence score is near the high threshold.
Confidence is an evidence-quality label, not a score input and not a probability that
the risk estimate is correct. Full results in data/confidence-ratings.json.
Scenario Families (non-scoring outlook overlays)
The forecast engine now publishes 3 named scenario families — conservative, base, and fast adoption — as a sidecar rather than quiet UI state. In the base case, average near-term risk is 7%; under fast adoption it rises to 13%.
Scenario families stress the score under adoption, cost-cutting, macro, and
sector-readiness assumptions. They do not change net_risk or risk_band. Full results in data/scenario-families.json.
Adoption / Diffusion Context (Singapore, non-scoring)
MOM’s 2026 firm survey reports 28.5% of in-scope firms have started AI adoption. Among adopting firms, 6.2% reported reduced headcount while 18.9% reported role redesign. The leading published sector is Information and communications (74.1% adoption).
This is firm-level adoption context, not an occupation-level multiplier. Full results in data/adoption-diffusion.json.
Age Structure (attrition absorber, non-scoring)
Age structure is now published as an attrition-channel sidecar. It identifies 194 occupations where the broad worker-profile age mix suggests a high retirement/non-replacement buffer. The average age-50-plus share across covered occupation rows is 41%. 3 occupations have unknown age coverage because their broad group is absent from the source table.
This explains one way pressure can resolve without layoffs; it is broad-group context
and does not change headline risk. Full results in data/age-structure.json.
Sensitivity Analysis (hand-set constants)
The formula contains 16 hand-set constants (the Hampole buffer λ, demand weights, SOL/JiD bonuses, ensemble reliability weights). We perturb each one to ±25% / ±50% and run 1000 seeded Monte-Carlo draws perturbing all of them jointly by ±25%. The occupation ranking is highly robust: median rank correlation with the baseline ordering is ρ = 0.9993 (worst single-constant case ρ = 0.9975), and the median top-20 overlap is 90%.
The honest nuance: band assignments are more sensitive than rankings because
bands depend on absolute score levels. The most sensitive constant is base_weight — at ±50% it flips up to 102 of 562 band labels while leaving the ranking nearly unchanged.
Constants with lower worst-case stability are recalibration priorities, not hidden assumptions.
Every run first proves the recompute reproduces the published scores (max deviation 0.0001 across all 562 occupations). Rank stability is internal robustness evidence only
— it says nothing about whether the input data measure true displacement pressure. Full
results in data/backtests/sensitivity-analysis.json.
Forecast Horizons (sidecar, not promoted)
We have frozen the May 2026 cluster-level risk ranking (data/snapshots/occupations-v7-2026-05.json, git-timestamped) and published the test protocol before any outcome data exists:
realized changes in official vacancy and retrenchment outcomes at t+1Q, t+2Q, and t+4Q,
scored against a random-walk naive benchmark, with directional calls pooled across
quarters and outcomes into an exact binomial sign test. 0 post-baseline quarters are
available today — the labour monitor ends before the frozen baseline — so no horizon result exists
yet and none is claimed. Status: pending_sufficient_quarters.
This harness activates as MOM publishes new quarters and is promoted only after at least
4 post-baseline quarters. It is a sidecar: never folded into headline scores and never
shown as occupation-level evidence. Protocol and current state in data/backtests/forecast-horizon-validation.json.
Occupation-Family Convergent Check
To get beyond the 3 broad labour clusters without pretending we have occupation-level Singapore outcome data, we also aggregate occupations into 29 2-digit SSOC families and compare average family risk with average BLS projected employment change. The result is still directionally negative (ρ = -0.249), but weaker than the main vacancy-side checks and not significant at p < 0.01.
This is a more granular convergent cross-check, not Singapore realised labour truth.
Full raw results in data/backtests/occupation-family-validation.json.
Honest framing: Structural risk scores capture long-run pressure, not short-run employment fluctuations. A single exposure measure poorly predicts actual unemployment (Frank et al., 2025, PNAS Nexus). Research is "still in the first inning" (Brookings/PIIE, 2026) with no consensus on measurement.
Ensemble Exposure Measures
Frank et al. (2025) found that individual AI exposure scores are poor predictors of actual unemployment, but an ensemble of multiple measures improves fit over single scores. That motivates our multi-source exposure layer, but does not by itself prove any particular weighting scheme. We therefore use a deterministic reliability-weighted blend across multiple lenses:
| Measure | Source | Coverage |
|---|---|---|
| Felten AIOE | Academic index (Felten et al., 2021) — task-ability overlap with 10 AI applications | Primary exposure score. Covers all 562 occupations via SOC crosswalk. |
| Anthropic Observed Usage | Anthropic Economic Index (2026) — actual LLM usage patterns by occupation | 90.2% of occupations calibrated. Used to adjust AIOE where theory diverges from practice. |
| GPTs-are-GPTs | Eloundou et al. (Science, 2024) — LLM task-level exposure via human + GPT-4 assessment | Integrated in the live ensemble with reliability weighting when matched via SOC crosswalk. |
| ILO AI Exposure | ILO WP140 (2025) — task-level AI automation potential scored across ISCO occupations | Integrated in the live ensemble with reliability weighting when matched via ISCO crosswalk. |
Where multiple measures are available, we report whether they agree ("consensus high", "consensus low") or diverge. Divergence flags occupations where theory-based and observed measures disagree — often the most interesting cases for investigation.
Worked Examples
Both occupations score high on AI exposure. But their outcomes differ dramatically because of the bottleneck and market layers:
Software Developer
- Exposure: 0.86
- Bottleneck: pctile(theta) = 0.05
- Displacement pressure: 0.81
- Base resilience: 0.59
- Demand resilience: 0.60
- Headline risk: 0.32 (High)
- Impact type: At Risk
Data Entry Clerk
- Exposure: 0.87
- Bottleneck: pctile(theta) = 0.02
- Displacement pressure: 0.84
- Base resilience: 0.36
- Demand resilience: 0.18
- Headline risk: 0.69 (Very High)
- Impact type: At Risk
This is why a single "AI exposure score" is misleading. The software developer has higher exposure than many "at risk" occupations, yet strong demand resilience offsets much more of that structural pressure. The V7 score captures this distinction directly, with additional task-concentration and demand-persistence signals.
TL;DR
Singapore SSOC codes map to US O*NET scores via ISCO-08 crosswalk. A seeded Monte Carlo stability routine generates deterministic optimistic/pessimistic risk bounds. Seniority modifiers adjust outlook for entry/mid/senior levels. Synthetic roles are weighted blends of official occupations.
Crosswalk: National Codes to ISCO-08
AIOE and theta scores originate from US O*NET data. We map Singapore's SSOC occupations to these scores via:
- SSOC 2020 maps to ISCO-08 unit groups via SingStat concordance
- ISCO-08 maps to US SOC 2010 via BLS crosswalk
- When one ISCO maps to multiple SOC codes, we average the scores
- Fallback 1: 2-digit ISCO sub-major group average (crosswalk quality starts at 0.6)
- Fallback 2: 1-digit major group average (crosswalk quality starts at 0.3)
Current coverage: 90.4% direct match (508/562), 9.4% sub-major fallback (53), 0.2% major fallback (1).
What This Version Shows
V7 implements the live structural score with a deterministic 4-source exposure stack, human bottleneck (theta percentile), displacement pressure, demand resilience, and augmentation. Net risk remains the published structural headline. Uncertainty intervals, explicit demand-signal fields, task-primitives placeholders, and scenario tooling remain published around the score. 88 estimated modern roles (AI engineer, product manager, prompt engineer, startup operator, creator, gig-worker variants, etc.) are scored as weighted occupation priors plus workflow-aware context adjustments, with dispersion analysis for high-variance compositions.
Seniority adjustment (V3.2+): the Outlook section now supports experience-level modifiers (Entry-level / Mid-career / Senior). Adjustments scale with each occupation's variant sensitivity — roles with high institutional knowledge (e.g., software engineering) vary more by seniority than roles with low context-dependence (e.g., truck driver). Grounded in: Stanford "Canaries in the Coal Mine" (2025) showing a 13% relative employment decline for ages 22-25 in most-exposed occupations, and Anthropic Economic Index (2026) showing a 14% lower rate of entering highly AI-exposed occupations for 22-25 year olds.
Labour monitor is built from official vacancy, recruitment/resignation, retrenchment, and re-entry feeds, then supplemented by MOM quarterly enrichment where the published raw series is annual or incomplete. It remains a cluster-level evidence layer, not a hidden scoring multiplier.
Singapore context bundle now publishes industry footprint, worker profile, sector wage anchors, geography context, macro labour context, national AI-adoption context, and official transition infrastructure as separate artifacts around the structural score.
Transition support is a hybrid layer: deterministic transition-capacity scoring plus official Singapore programme and training-system anchors (Jobs Transformation Maps, SkillsFuture / WSG programmes, WSQ activity). It is published separately from the structural score and should be read as decision support, not observed mobility data.
Transition capacity is scored as a weighted composite of six sub-components: archetype similarity (0.20), skill overlap via SSOC prefix matching (0.20), demand strength of the target occupation (0.20), wage preservation (0.15), risk improvement (0.15), and credential gap proxy (0.10). Scores range from 0 to 1 and are labelled easy (≥0.7), moderate (≥0.5), stretch (≥0.3), or difficult (<0.3). When empirical transition data is available it is blended at 15% weight; otherwise the score is fully model-derived.
Not yet implemented: Occupation-level employment data (MOM OED, not publicly released; requested from agencies), company-size modifiers (startup vs enterprise context), and job postings pipeline for real-time demand signals.
Synthetic Role Methodology
Modern job titles (AI Engineer, Product Manager, Prompt Engineer) don't map to a single official SSOC occupation. We estimate scores by blending 2-4 official occupations with weights reflecting the typical task composition of each modern role, then applying a bounded workflow-context adjustment so the result is not treated as a flat occupation average.
Composition
Each synthetic role defines component SSOC occupations and weights (e.g., Startup CTO = 40% Software Manager + 30% Solution Architect + 30% Software Developer). Scores are built from weighted structural primitives. Workflow context then adjusts the role's net-risk estimate and uncertainty range, but the published exposure, bottleneck, market resilience, and augmentation remain formula-consistent with the structural model. All component SSOC codes are validated against the occupations dataset.
Dispersion
When component occupations have very different risk scores, the weighted average may not represent any single reality. For roles with high dispersion (stddev > 0.08), we show the full risk range. That range is widened further when the workflow overlay says the role is highly context-sensitive, so founder, gig, and hybrid GTM roles do not get a false sense of precision.
Confidence
Confidence is role-native, not hardcoded. It depends on component coverage, component agreement, primary-match distance, and workflow variant sensitivity. Founder, gig, and independent-role families are capped below High confidence even when the component blend is tight. Use component occupation pages for the strongest underlying evidence.
Experience Level Adjustment
The Outlook section supports experience-level modifiers that adjust displacement pressure based on research showing AI affects different seniority levels unequally.
| Level | Exposure Adj. | Bottleneck Adj. | Research Basis |
|---|---|---|---|
| Entry-level | +14pp × sensitivity | −12pp × sensitivity | More routine tasks, less institutional knowledge. Anthropic (2026): 14% lower rate of entering highly AI-exposed occupations for ages 22-25. Stanford DEL (2025): 13% relative employment decline for ages 22-25 in most-exposed occupations. Note the tension: Brynjolfsson et al. (2023) find the largest AI productivity gains among junior workers — the penalty reflects employment access, not productivity. |
| Mid-career | 0 | 0 | Baseline — current scores reflect mid-career task composition. |
| Senior / Lead | −10pp × sensitivity | +12pp × sensitivity | More judgment/strategy work, higher institutional knowledge. Noy & Zhang (2023): AI narrows experience gap. Dell'Acqua (2023): seniors better at knowing AI's capability boundary. |
"Sensitivity" refers to the occupation's variant_sensitivity score (0–1), derived from institutional knowledge, relationship intensity, regulatory weight, and coordination requirements. High-sensitivity roles (e.g., software engineering: 0.55) vary more by seniority than low-sensitivity roles (e.g., truck driver: 0.15). These outlook adjustments are applied as latent percentile shifts rather than raw linear additions, so extreme tail occupations are compressed instead of being moved unrealistically.
Implementation Constants
Key constants and thresholds used in the scoring pipeline. All values are deterministic and reproducible.
| Parameter | Value | Details |
|---|---|---|
| Anthropic calibration cap | ±30% | exposure + 0.3 × (observed - exposure) |
| SOL exact bonus | +15% | Exact match to Shortage Occupation List adds 15% to market resilience |
| SOL prefix bonus | +8% | Prefix-inferred match to SOL adds 8% to market resilience |
| Jobs in Demand exact bonus | +10% | Exact match to Jobs in Demand adds 10% to market resilience |
| Jobs in Demand prefix bonus | +5% | Prefix-inferred match to Jobs in Demand adds 5% to market resilience |
| Augmented threshold | net_risk < 0.25 AND augmentation ≥ 0.12 | Low displacement with meaningful augmentation potential |
| At Risk threshold | net_risk ≥ 0.25 AND augmentation < 0.12 | High displacement pressure with weak augmentation buffer |
| Stable threshold | net_risk < 0.25 AND augmentation < 0.12 | Low displacement, low augmentation — AI has limited overlap |
| Mixed | net_risk ≥ 0.25 AND augmentation ≥ 0.12 | High displacement AND high augmentation — conflicting signals |
| Stability stress test | ±5 percentile points | Each of the three core layers is perturbed by ±5 percentile points to test band stability |
| Confidence: high | ≥ 0.7 | Confidence score ≥ 0.7 published as "High" |
| Confidence: medium | 0.45 – 0.7 | Confidence score between 0.45 and 0.7 published as "Medium" |
| Confidence: low | < 0.45 | Confidence score below 0.45 published as "Low" |
| Demand resilience weighting | 0.45 | demand_resilience = min(1.0, base_resilience × 0.45 +
demand_signal_bonus) |
Known Limitations
- Exposure ≠ adoption ≠ displacement — This is the central limitation. The exposure layer measures potential task overlap with AI capability, not realised adoption (which is gated by cost, integration, regulation, verification, and diffusion lag) and not actual job loss. There is no adoption/diffusion-intensity variable in the model; observed Claude usage (Anthropic) calibrates exposure but is not a substitute for sector-level adoption data. The best Singapore-native adoption evidence is MOM's inaugural firm survey (April 2026): 28.5% of firms have begun adopting AI, and among adopters 6.2% report reduced headcount versus 18.9% redesigning roles — we use this as context, never as a score input. Treat scores as structural pressure, not a forecast. The model captures displacement but not reinstatement (Acemoglu & Restrepo, 2019) — historically the dominant long-run channel: 60% of 2018 US employment was in job titles that did not exist in 1940 (Autor et al., 2024).
- Displacement realizes through hiring, not layoffs — The empirical AI evidence so far (Stanford “Canaries”, 2025; Anthropic, 2026) finds effects concentrated in reduced hiring of new entrants while incumbent headcount stays stable. A single score is therefore a different object for someone entering the occupation (hiring-market risk) than for an incumbent (task-redesign and wage-growth risk). The seniority modifiers approximate this, but the model does not track hiring flows.
- Wage and redesign channels are invisible to a headcount frame — Pressure can resolve as slower wage growth, variable-pay compression, or role redesign with no job loss. Singapore’s institutions push in this direction: National Wages Council flexible-wage guidance channels shocks into variable pay before layoffs, and Progressive Wage Model floors block downward wage adjustment for most lower-wage workers. The score is agnostic between “job disappears” and “wage growth flattens”.
- Foreign-workforce buffer not modelled — Non-residents are roughly 40% of total Singapore employment, and work-pass non-renewal historically absorbs downturns before resident employment falls (the 2020 contraction fell entirely on non-resident employment). Resident-facing risk is overstated in occupations with high work-pass shares — a buffer that is thickest in manual occupations where AI pressure is lowest and thinnest in resident-dominated PMET roles.
- Transition capacity ≠ retraining efficacy — Transition scores measure structural skill adjacency between occupations, not evidence that retraining works. The meta-analytic record (Card, Kluve & Weber, 2018) finds near-zero short-run gains and only modest gains 2–3 years after training programmes, and no causal evaluation of SkillsFuture/SCTP outcomes has been published.
- Exposure measurement instability — Two 2026 studies show the exposure input class carries real measurement error: LLM-annotated exposure rubrics diverge up to 3.6× across annotating models (Yin, Vu & Persico, 2026), and platform-usage-based exposure over-weights early-adopter occupations — reweighting to workforce composition attenuates estimates by 42–93% (Yin & Ogut, 2026). The 4-source ensemble dilutes but does not remove these errors.
- US-centric ability data — O*NET surveys US workers; task content for the same occupation differs measurably across countries (Lewandowski et al., 2022), so the SSOC → ISCO → SOC crosswalk inherits that bias. The closest Singapore-specific external benchmark is IMF SIP/2024/040 (Khan), which estimates ~77% of Singapore workers are highly exposed; the model is not yet formally calibrated against it.
- Hierarchical market granularity — Momentum is major-group level; wage structure adds occupation-level differentiation as a proxy.
- Estimated occupation employment —
estimated_sg_employment_thousandsis derived from published Labour Force 2024 sub-major totals, not official per-occupation headcounts. Wage-pool analysis separately uses a labeled BLS-weighted proxy rather than pretending this estimate is measured employment. - Static exposure snapshot — AIOE reflects 2021 AI capabilities.
- Career-stage blind spot — Scores the occupation as a whole; junior/senior impact likely differs (Stanford Canaries, 2025).
- Crosswalk imprecision — 9.6% of occupations use fallback scores. Confidence score reflects this.
- Wage-spread ambiguity — High wage ratio can mean specialization or seniority ladder (~16% effective weight).
- Cluster-level labour monitor — Only available for three broad clusters, not all 562 occupations.
TL;DR
34 research entries + 57 data sources. The live V7 model uses a deterministic two-axis formulation built on the audited 4-source exposure stack, with V7 task-concentration and demand-persistence additions: Felten AIOE, Pizzinelli complementarity, Anthropic observed usage and labour-market work, Eloundou GPT exposure, ILO occupational exposure, and Singapore demand evidence.
Claims We Make
Every public claim on the site is tracked with its evidence source and strength.
The core structural score covers 562 Singapore SSOC occupations.
mom_ows_2024
The canonical structural score is deterministic and does not use an LLM in the scoring loop.
aioe_2021, pizzinelli_theta_2023, anthropic_economic_index_2026
V7 uses a reliability-weighted 4-source exposure ensemble (AIOE, Anthropic, Eloundou, ILO).
aioe_2021, anthropic_economic_index_2026, eloundou_gpt_exposure_2023, ilo_genai_2025
O*NET task statements and ratings now feed the V7 task-primitive layer; O*NET technology-skill profiles remain supporting explanatory context.
onet_occupation_data, onet_task_statements, onet_task_ratings, onet_technology_skills, anthropic_task_penetration_2026
The headline score measures structural AI pressure, not a forecast of job losses.
aioe_2021, pizzinelli_theta_2023, mom_labour_monitor_2025
Offset potential is published separately as a heuristic support layer and should not be read as a direct measure of reinstatement or realised job creation.
mom_labour_monitor_2025, mom_job_vacancy_rates, mom_sol_2026, mom_jobs_in_demand_2025, skillsfuture_transition_mapping, wsg_careersfinder, onet_task_statements
estimated_sg_employment_thousands is an estimated Singapore occupation headcount, not an official detailed occupation count.
mom_lfr2025_table_d8
The wage-pool headline uses a BLS-weighted proxy employment field rather than official Singapore occupation headcounts.
mom_lfr2025_table_d8, bls_projections_2024_2034
The BLS occupation comparison is a convergent cross-check and should be interpreted directionally, not as Singapore outcome truth.
bls_projections_2024_2034
Across the available multi-period Singapore cluster data, higher-risk clusters consistently show weaker year-over-year vacancy movement than lower-risk clusters.
mom_labour_monitor_2025, mom_job_vacancy_rates, mom_job_vacancy_counts
Research Registry
The methodology now reads from the same canonical research registry as the reports, data page, and archived roadmap pages. Use /research for the full source library and repo notes.
Active core
Anthropic Economic Index: New building blocks for understanding AI use
Anthropic · Anthropic · 2026-01-15
Adds observed AI-usage evidence to the exposure stack and motivates the repo's task-primitives sidecar.
Open source →How Will AI-Driven Automation Actually Affect Jobs?
Alex Imas, Vasudha Shukla · Ghosts of Electricity (Substack) · 2026-03
Argues exposure alone cannot predict displacement: output-demand price elasticity (elastic demand can expand hiring as AI cuts costs) and job dimensionality (low-task jobs are easier to automate fully) are the missing variables.
Open source →Labor market impacts of AI: A new measure and early evidence
Maxim Massenkoff, Peter McCrory · Anthropic · 2026-03-05
Separates theoretical capability from observed exposure and emphasizes that early labour effects remain limited.
Open source →AI, Productivity, and Work Quality
Erica Dillon, et al. · NBER · 2025
Adds evidence that AI can change both output quantity and work quality, reinforcing the need for occupation-specific augmentation priors.
Open source →Artificial Intelligence and the Labor Market
Menaka Hampole, Dimitris Papanikolaou, Lawrence D.W. Schmidt, Bryan Seegmiller · NBER · 2025-02
Shows that mean exposure and concentration of exposure in a few tasks can have different labour-demand implications.
Open source →Generative AI and Jobs: A Refined Global Index of Occupational Exposure
ILO · International Labour Organization · 2025
Adds a recent global occupational exposure measure aligned to international occupation codes.
Open source →Large Language Models, Small Labor Market Effects
Anders Humlum, Emilie Vestergaard · NBER · 2025-05
Finds small early labour-market effects from chatbot adoption despite meaningful task restructuring, supporting conservative near-term risk shrinkage.
Open source →Navigating the Jagged Technological Frontier
Fabrizio Dell'Acqua, et al. · NBER · 2025
Highlights that AI gains are jagged across tasks and expertise levels rather than smooth across a whole occupation.
Open source →The Rapid Adoption of Generative AI
Alexander Bick, Adam Blandin, David J. Deming · NBER · 2024-09
Documents that workplace generative-AI adoption is fast, supporting a separate adoption layer in forecast models.
Open source →Exposure to Artificial Intelligence and Occupational Mobility: A Cross-country Analysis
IMF staff · IMF Working Paper · 2024-06-07
Suggests that mobility responses to AI pressure follow structured pathways rather than generic occupational distance rules.
Open source →Generative AI at Work
Erik Brynjolfsson, Danielle Li, Lindsey Raymond · NBER · 2023-04
Shows large heterogeneous productivity effects from AI assistance in a specific workflow, supporting separate augmentation modelling.
Open source →GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models
Tyna Eloundou, Sam Manning, Pamela Mishkin, Daniel Rock · OpenAI · 2023-03-17
Frames LLM exposure around task feasibility and time-saving potential rather than broad automation narratives.
Open source →GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models
Tyna Eloundou, Sam Manning, Pamela Mishkin, Daniel Rock · arXiv / OpenAI · 2023-03
Provides the GPT-oriented exposure source used as one leg of the live exposure ensemble.
Open source →Labor Market Exposure to AI: Cross-country Differences and Distributional Implications
Carolina Pizzinelli, et al. · IMF Working Paper · 2023-10-04
Provides the complementarity framework that the repo operationalises as the human bottleneck layer.
Open source →Occupational, industry, and geographic exposure to artificial intelligence: A novel dataset and its potential uses
Edward Felten, Manav Raj, Robert Seamans · Strategic Management Journal · 2021
Provides the published AIOE occupation exposure dataset used as a baseline source in the ensemble.
Open source →A Method to Link Advances in Artificial Intelligence to Occupational Abilities
Edward Felten, Manav Raj, Robert Seamans · AEA Papers and Proceedings · 2018
Introduces the task-ability linkage approach that underpins modern AI-exposure measurement.
Open source →Validation and next-horizon references
Impact of AI on Singapore’s Labor Market
IMF Selected Issues Paper SIP/2024/040 · 2024
The most directly relevant external benchmark for a Singapore AI-exposure product. Not yet used for formal calibration; flagged as a convergent-validity target more relevant than US BLS.
Open source →US BLS Employment Projections 2024-2034
U.S. Bureau of Labor Statistics · 2024
Lives in the repo as both a validation benchmark and a clearly labeled external proxy.
Open source →Task-Completion Time Horizons of Frontier AI Models
METR · 2026-03-03
Useful for the forecast layer, not for the core structural score.
Open source →Making AI Count: The Next Measurement Frontier
NBER · 2025-10
Best reference for the repo's longer-run shift from heuristic confidence toward richer uncertainty and task-native measurement.
Open source →State of the Science
Research on AI and the labour market is evolving rapidly. Our model is informed by — and honest about — the current consensus:
Individual AI exposure scores are poor predictors of actual unemployment
Frank et al. (2025, PNAS Nexus) found that single exposure measures "misrepresent AI's impact" — but an ensemble of multiple measures accounts for 18% more variation in actual outcomes.
Research is "still in the first inning"
Brookings/PIIE (2026) reports no consensus on how to measure AI's labour market impact. BLS employment projections show only weak correlation between AI exposure and projected job decline.
No clear aggregate displacement through 2025
Yale Budget Lab finds no aggregate displacement signal. But entry-level pressure in exposed occupations is emerging (Stanford "Canaries in the Coal Mine," 2025).
Our approach: structural pressure model, not prediction
We measure where AI has the most technical overlap with human tasks, adjusted for human bottlenecks and market signals. Directionally checked at cluster level (2/3 checks pass vs Q4 2025 data — underpowered at four binary checks) and temporally through vacancy rank-order checks, not causally at occupation level.
Reproduce Our Results
The entire scoring pipeline is open source and deterministic:
bun run scripts/score.ts
This reads raw data from data/raw/,
computes all scores, and writes data/occupations.json.
Version History
Promotes the live V7 release: a task-concentration exposure buffer and a demand-persistence proxy on top of the V6 two-axis structural model. Revised 7 Jun 2026: the task-concentration term was corrected from an exposure amplifier to a buffer, matching the cited Hampole et al. (2025) finding that concentrated exposure offsets labour-demand losses. The canonical public export, sitemap, release manifest, claims matrix, and LLM surfaces share the same V7 release contract. V6 remains preserved as the immediate previous structural baseline for auditability. Score diff vs retained V6 baseline: 53 of 562 occupations changed risk band, mean absolute net-risk change 1.3pp, largest single change 5.6pp. Release note
Promotes the live V6 two-axis structural release: deterministic 4-source exposure ensemble, human bottleneck, displacement pressure, and explicit demand resilience. The canonical public export now matches the live app dataset and release-governance artifacts. Retained as the immediate pre-V7 structural baseline for auditability. Release note
Promotes the V5 structural model: latent-source posterior exposure, task-mode blending, concentration-driven fragility, and heterogeneous augmentation. Transition-adjusted and realized-risk layers are now published alongside the live structural score instead of being collapsed into the headline number. Retained as the immediate pre-V6 live baseline for auditability.
Retained task-aware structural snapshot from the V4 lineage. The separate V4.3 shadow-governance artifact remains published with its own validation and anchor-review gates. Retained for auditability beneath the later V5, V6, and V7 releases.
Shared methodology core, bootstrap uncertainty, forecast separation, and governance hardening. Retained as the final pre-promotion baseline before the task-aware V4.3 release.
Expanded exposure into the four-source ensemble: AIOE, Anthropic, Eloundou, and ILO. Preceded the later V4.2 methodology hardening pass.
Introduced the first ensemble-style exposure blend before the final four-source V4 lineage. Tracked here for version continuity; no separate frozen public snapshot is retained.
Surfaced confidence intervals and recalibrated seniority adjustments. Tracked as a methodology milestone, not a retained standalone download.
Added Anthropic observed usage and stronger Singapore demand/context layers. Version tracked from git history; no separate retained public snapshot.
First full three-layer structural score: exposure, bottleneck, and market modifier. Historical public JSON snapshot is still retained.
Second-generation methodology before the V3 structural formula rewrite. Tracked for lineage continuity; no retained standalone public snapshot.
First public alpha of the Singapore occupation AI-impact project. Tracked for release lineage only.