Data Downloads
562 occupations · 88 roles · 43 data sources · MIT licensed
Structural scores and Singapore context are separate downloads. Each artifact has an evidence tier: official SG, derived from official SG, external proxy, or synthetic.
Structural release
V4.1
score dataset generated 2026-03-20
Live monitor
Q4 2025 full
current labour context used on live pages
Latest official release
Q4 2025
MOM Labour Market Report Q4 2025 published 2026-03-20
Quarterly briefing
2026 Q1
occupations-v4-2026-03.json
Release history
Downloads
562 occupations, flattened fields + provenance. Best for spreadsheets.
sg-ai-occupations-v4.csvFull V4.1 scores with nested fields and per-field basis metadata.
sg-ai-occupations-v4.jsonFull scoring pipeline and raw data. Open source, MIT licensed.
github.com/kirso/aiworkindexContext-only bundle published separately from structural scores.
Full context pack
All context in one file
Labour monitor
Vacancy, hiring, retrenchment
Worker profile
Age, education, nationality
Geography
Planning area concentration
Macro context
Unemployment, GDP, tightness
AI in Singapore
Adoption, NAIIP, workforce
O*NET task + tools
Supporting task and technology context
Transition support
Pathways, SkillsFuture, JTM / WSQ anchors
Offset potential
Demand persistence, redesign room, switching friction
Versioned Snapshots
Historical scoring snapshots for tracking changes over time.
Quarterly snapshots will be archived here as new scoring runs are published. Use snapshots to track band movers and score drift over time.
Methodology Version
Version: V4.1 (4-source exposure ensemble inside a 3-layer structural score, with separate offset/support layers)
Data vintage: 2024 wages, 2024/2025 demand signals
Occupations: 562 SSOC-coded occupations
Separate context bundle: Labour monitor, worker profile, industry context, sector wage anchors, geography context, macro labour context, national AI context, offset potential, and transition support
Sources: MOM Singapore (wages, Labour Force Section D, industry context, demand signals, SOI), IMDA Singapore Digital Economy Report 2025, IMDA NAIIP 2026, O*NET, Felten AIOE, Pizzinelli/IMF, Anthropic observed usage, Eloundou GPT exposure, ILO occupational exposure, SOL 2026, Jobs in Demand 2025
Release Metadata
Manifest version: V4.1
Manifest generated: 20 Mar 2026, 9:10 pm
Score dataset vintage: 2026-03-20
| Artifact | Generated | Size | SHA-256 |
|---|---|---|---|
V4 structural score CSV sg-ai-occupations-v4.csv | 20 Mar 2026, 9:10 pm | 252.5 KB | 9e0284832c4c41859875894a7dbb07dfdc28a2525ba22743f4c6ada5678e0ba1 |
V4 structural score JSON sg-ai-occupations-v4.json | 20 Mar 2026, 9:10 pm | 2.66 MB | 03f625f881b5e9b6d58d3a1e1d2396d92aec7e6051fa5a35a09b5891def88712 |
O*NET task and technology enrichment onet-enrichment.json | 20 Mar 2026, 9:10 pm | 1.33 MB | 71520e8aaf3374c4d9eed00fc4fc4d9a6e1b7f3188a777ab238237bff0ea775d |
Singapore context pack sg-context-pack-2025.json | 20 Mar 2026, 9:10 pm | 599.2 KB | 162d118e60999acd137cc9e2b23f97b219aba51ee5311092683bd4f73977a9f6 |
Singapore labour monitor sg-labour-monitor-2025.json | 20 Mar 2026, 9:10 pm | 11.8 KB | ef7db69736057366ef2ca678d5b7ea2bda1b4e856764b83e18870c97245ac295 |
Singapore worker profile sg-worker-profile-2024.json | 20 Mar 2026, 9:10 pm | 113.8 KB | 723a9704e3b87db1f5779406eb0915ad41f7987717058ec8808c5ecef1fa4f36 |
Singapore geography context sg-geography-context-2020.json | 20 Mar 2026, 9:10 pm | 12.1 KB | 73cfa4cfb39765f79fff0ec51bc0dcca65698720e329caab9a5b3c2636610014 |
Singapore macro labour context sg-macro-context-2025.json | 20 Mar 2026, 9:10 pm | 20.4 KB | 16bfc9386143963012c9793f5ede96e6a65fb3f58e3821957e7e764a8558220c |
AI in Singapore context sg-ai-in-singapore-2025.json | 20 Mar 2026, 9:10 pm | 3.7 KB | 5c4b474fa2a38150353f9603aa18a257286a7a024531285e5103362eeaa90ff5 |
Transition infrastructure layer sg-transition-infrastructure-2025.json | 20 Mar 2026, 9:10 pm | 5.3 KB | 3651477e19c9a8c3fac608706fcc2bcd853e2ab3e3fea6ad7bb1eceadc52b124 |
Transition support layer sg-transition-support-v4.json | 20 Mar 2026, 9:10 pm | 3.91 MB | 304c7480d4ddf4fa9c617fe3355bd506cb9ac1b20eb3737e503fe363e0055fef |
Offset potential layer sg-offset-potential-v4.json | 20 Mar 2026, 9:10 pm | 524.6 KB | c951975fe838ae9bc2e66970f5332231f7dba702bebf6fcbb1e12793f40a379d |
Public claims matrix claims-matrix-v4.json | 20 Mar 2026, 9:10 pm | 11.3 KB | f3a615446229d0579cebe688d4d6ada80a10d4cb85d30c7cd430dec27e9d0947 |
Public site status site-status.json | 20 Mar 2026, 9:10 pm | 2.5 KB | ec21248f6de81ec5f18ccd001bec568298e2354546cff7822f82c8a8b567a9b6 |
Public release history releases.json | 20 Mar 2026, 9:10 pm | 1.3 KB | a0709fd8892ad49841c4ab16c1e0a0bcbe6fcf0ec5956c7f0fcc909f24943c7d |
Current cluster validation backtests/current-validation.json | 20 Mar 2026, 9:10 pm | 9.5 KB | ba80df06648ac0356f9c81852cb42f1e4c9925cb731ef4fbaa01fd0323213d6a |
BLS crosswalk validation backtests/bls-crosswalk-validation.json | 20 Mar 2026, 9:10 pm | 2.7 KB | 44de7bfb9fca7d8b207e974772306e61a28a7d527edf80c151c1aa686dd4f8fa |
Multi-period temporal validation backtests/multi-period-validation.json | 20 Mar 2026, 9:10 pm | 5.5 KB | a1f4571275d3e8c09cfd81603a8c2cdd070e4b07d83ecb859cb5451dd215a0aa |
Calibration diagnostics backtests/calibration-diagnostics.json | 20 Mar 2026, 9:10 pm | 5.6 KB | eb79a98fd2315cac341a613e7aa7a78b430cabbcc7e3a09cd00c7c6be12cdd21 |
Occupation-family validation backtests/occupation-family-validation.json | 20 Mar 2026, 9:10 pm | 5.6 KB | 6df0bb9153e120fbc5e68069a62040018310205852799a6040e4b7e280873d93 |
Checksums are published so downloaded artifacts can be verified against the current release.
Major public claims are also published in a versioned claims matrix with evidence-strength labels and source keys.
Raw Data Health
Audit generated: 20 Mar 2026, 9:10 pm
Summary: 24 valid, 0 placeholder/error, 0 missing, 4 reference-only
| Raw Input | Status | Used For | Notes |
|---|---|---|---|
Postings source registry postings/source-registry.json | Valid | postings pipeline, ATS employer-source ingestion | Valid JSON payload. |
Employer pressure seed registry employer-signals-seed.json | Valid | employer pressure pipeline | Valid JSON payload. |
Singapore occupations base feed sg_occupations_complete_2024.json | Valid | score pipeline, occupation master list | Valid JSON payload. |
Employment by occupation group employment_by_occupation.csv | Valid | score pipeline, market momentum | Header starts with: DataSeries,2025,2024,2023,2022,2021,2020,2019,2018,2017,2016,2015,2014,2013,2012,2011,2010,2009,2008,2007,2005,2004,2003 |
Median income by occupation group median_income_by_occupation.csv | Valid | score pipeline, market momentum | Header starts with: DataSeries,2023,2022,2021,2020,2019,2018,2017,2016,2015,2014,2013,2012,2011,2010,2009,2008,2007,2004,2003,2002,2001 |
Vacancy rates by occupation group vacancy_rates_by_occupation_group.csv | Valid | labour monitor | Header starts with: quarter,industry1,industry2,occupation1,job_vacancy_rate |
Job vacancies by industry and occupation job_vacancies_by_industry_and_occupation_quarterly.csv | Valid | industry context, labour monitor | Header starts with: DataSeries,20253Q,20252Q,20251Q,20244Q,20243Q,20242Q,20241Q,20234Q,20233Q,20232Q,20231Q,20224Q,20223Q,20222Q,20221Q,2021 |
Recruitment and resignation rates recruitment_resignation_rates.json | Valid | labour monitor hiring signal | Valid JSON payload. |
Recruitment and resignation CSV recruitment_resignation_rates.csv | Reference only | labour monitor troubleshooting | Optional reference/backstop file is not present locally. |
Retrenchment by occupation group retrenchment_by_occupation_group.json | Valid | labour monitor retrenchment signal | Valid JSON payload. |
Retrenchment by occupation group CSV retrenchment_by_occupation_group.csv | Reference only | labour monitor troubleshooting | Optional reference/backstop file is not present locally. |
Labour Force 2024 Section D LFR2024_SectionD.xlsx | Valid | worker profile, employment basis | Workbook sheets: Contents, D1, D2, D3, D4 |
Industry x occupation employment industry_x_occupation.csv | Valid | industry context, industry momentum | Header starts with: DataSeries,2025,2024,2023,2022,2021,2020,2019,2018,2017,2016,2015,2014,2013,2012,2011,2010,2009,2008,2007,2006,2005,2004 |
Wages by industry wages_by_industry.xlsx | Valid | sector wage anchors | Workbook sheets: Contents, T4, T4.1, T4.2, T4.3 |
Wages by sex wages_by_sex.xlsx | Valid | worker profile | Workbook sheets: Contents, T1, T1.1, T1.2 |
Planning area of residence by occupation planning_area_residence_by_occupation.json | Valid | geography context | Valid JSON payload. |
Travel time to work by occupation travel_time_to_work_by_occupation.json | Valid | geography context | Valid JSON payload. |
Quarterly unemployment rate unemployment_rate_quarterly.json | Valid | macro context | Valid JSON payload. |
Job vacancy to unemployed ratio job_vacancy_to_unemployed_ratio.json | Valid | macro context | Valid JSON payload. |
WSQ trainees by statement attainment wsq_trainees_by_statement_attainment.json | Valid | transition infrastructure | Valid JSON payload. |
Jobs Transformation Maps overview jtm_overview.html | Valid | transition infrastructure | Present locally. |
Occupation list workbook occupations_list.xlsx | Reference only | reference | Reference/backstop file present locally, not currently used in the live pipeline. |
Felten AIOE appendix AIOE_DataAppendix.xlsx | Valid | exposure ensemble | Workbook sheets: Index, Appendix A, Appendix B, Appendix C, Appendix D |
Anthropic job exposure anthropic_job_exposure.csv | Valid | exposure ensemble | Header starts with: occ_code,title,observed_exposure |
Eloundou occupation exposure eloundou_gpts_occ_level.csv | Valid | exposure ensemble | Header starts with: O*NET-SOC Code,Title,dv_rating_alpha,dv_rating_beta,dv_rating_gamma,human_rating_alpha,human_rating_beta,human_rating_ga |
ILO refined exposure index ilo_genai_scores_isco08_2025.xlsx | Valid | exposure ensemble | Workbook sheets: Sheet1 |
BLS occupation projections bls_projections_2024_2034.xlsx | Valid | proxy employment, convergent check | Workbook sheets: Index, Table 1.1, Table 1.2, Table 1.3, Table 1.4 |
BLS CPS employment bls_cps_employment_2025.xlsx | Reference only | reference | Reference/backstop file present locally, not currently used in the live pipeline. |
This audit distinguishes real local raw inputs from missing files and failed download artifacts.
Evidence Tiers
| Tier | Meaning |
|---|---|
| Official SG | Direct Singapore government data published at the level shown on the site. |
| Derived from official SG | Rule-based or aggregated fields anchored to official Singapore data or published policy scope. |
| External proxy | Non-Singapore research or external data used as an exposure input, proxy, or cross-check. |
| Synthetic | Estimated role constructs or illustrative outputs that do not map one-to-one to official occupations. |
The employment estimate and wage-pool proxy are intentionally separated. The first is an Est. Singapore allocation from official sub-major totals; the second is a BLS-weighted proxy used only for wage-pool views. Separate live worker-profile context comes from Labour Force 2024 Section D and wages-by-sex tables.
Current labour evidence is also published separately in the Singapore context pack so the structural score and the monitor can be audited independently.
Source Registry
Live sources are tracked separately from the structural score. Some sources are already active in the live monitor pipeline; others remain reference or backlog sources and are not yet part of the published monitor.
| Source | Tier | Status | Used For |
|---|---|---|---|
MOM Occupational Wage Survey 2024 2024 | Official SG | Live | median wages, wage quartiles |
MOM / SingStat Detailed SSOC Employment Counts not publicly released | Official SG | Requested | official detailed occupation employment |
MOM Labour Force 2024 Table D8 2024 | Official SG | Live | sub-major employment totals, estimated occupation employment basis |
MOM Employment by Occupation Group 2024 | Official SG | Live | major-group market momentum |
MOM Industry × Occupation 2024 | Official SG | Live | industry momentum spread, Singapore context support, industry footprint |
MOM Labour Force 2024 Section D 2024 | Official SG | Live | worker profile context, detailed gender anchors, estimated employment basis |
SingStat Planning Area of Residence by Occupation 2020 | Official SG | Live | geography context, planning-area concentration |
SingStat Travel Time to Work by Occupation 2020 | Official SG | Live | geography context, commute burden context |
MOM Jobs in Demand 2025 2025 | Official SG | Live | demand signal, market resilience bonus |
MOM Shortage Occupation List 2026 2026 | Official SG | Live | demand signal, market resilience bonus |
MOM Labour Market Reports / monitor series 2025 | Official SG | Live | labour monitor, quarterly context, cluster vacancy rates |
Job Vacancies by Industry and Occupation 2024 | Official SG | Live | industry context vacancy overlay, cluster vacancy counts |
MOM Job Vacancy Rates by Occupation Group 2025 | Official SG | Live | labour monitor, vacancy validation |
MOM Job Vacancy Counts 2025 | Official SG | Live | labour monitor, vacancy validation |
MOM Recruitment and Resignation Rates 2025 | Official SG | Live | labour monitor hiring signal |
MOM / SingStat Retrenchment by Occupation Group 2026 | Official SG | Live | labour monitor retrenchment signal |
SingStat Unemployment Rate, Quarterly, Seasonally Adjusted 2025 | Official SG | Live | macro context, unemployment context |
MOM Job Vacancy to Unemployed Person Ratio 2024 | Official SG | Live | macro context, labour tightness context |
Workforce Singapore Jobs Transformation Maps 2026 | Official SG | Live | transition infrastructure, transition-support context |
SkillsFuture WSQ Trainees by Statement Attainment 2024 | Official SG | Live | transition infrastructure |
SkillsFuture Career Transition Programme 2026 | Official SG | Live | transition infrastructure, transition-support context |
Workforce Singapore Career Conversion Programmes 2026 | Official SG | Live | transition infrastructure, transition-support context |
Workforce Singapore CareersFinder 2025 | Official SG | Live | transition infrastructure, transition-support context |
Wages by Industry 2024 | Official SG | Live | sector wage anchors, industry context support |
Wages by Sex 2024 | Official SG | Live | worker-profile wage context |
IMDA Singapore Digital Economy Report 2025 2025 | Official SG | Live | AI in Singapore context, reports, national AI adoption framing |
IMDA Singapore Digital Economy Report 2025 2025 | Official SG | Live | AI in Singapore context, reports, national AI adoption framing |
IMDA National AI Impact Programme 2026 | Official SG | Live | AI in Singapore context, national programme framing |
MOM Singapore Opportunity Index 2025 | Official SG | Live | AI in Singapore context, employer-quality context, career mobility framing |
Felten AIOE 2021 | External proxy | Live | exposure ensemble |
Pizzinelli et al. theta 2023 | External proxy | Live | human bottleneck |
Anthropic Economic Index 2026-01 | External proxy | Live | exposure ensemble, observed usage gap |
Eloundou GPT Exposure 2023 | External proxy | Live | exposure ensemble |
ILO Generative AI Exposure Index 2025 | External proxy | Live | exposure ensemble |
O*NET Occupation Data 2024 | External proxy | Live | task and technology enrichment context |
O*NET Task Statements 2024 | External proxy | Live | task and technology enrichment context |
O*NET Technology Skills 2024 | External proxy | Live | task and technology enrichment context |
O*NET Job Zones 2024 | External proxy | Live | education label proxy |
US BLS Occupational Projections 2024-2034 2024-2034 | External proxy | Live | employment proxy, convergent cross-check |
Progressive Wage Model mapping 2026 | Derived from official SG | Live | Singapore context |
Singapore licensing mapping 2026 | Derived from official SG | Live | Singapore context |
Foreign-worker dependency mapping 2026 | Derived from official SG | Live | Singapore context |
SkillsFuture transition mapping 2026 | Derived from official SG | Live | Singapore context |
Data Dictionary
Key fields in the dataset. See the methodology page for derivation details.
| Field | Type | Description |
|---|---|---|
| ssoc | string | Singapore Standard Occupational Classification code (5-digit detail code). |
| title | string | Occupation title from MOM classification. |
| major_group | string | Major occupational group key (for example professionals or managers). |
| gross_wage_median | number | Median gross monthly wage in SGD from MOM 2024. |
| gross_wage_25th | number | 25th percentile gross monthly wage in SGD. |
| gross_wage_75th | number | 75th percentile gross monthly wage in SGD. |
| employment_thousands | number | Legacy compatibility alias for estimated_sg_employment_thousands. Derived from published Labour Force 2024 sub-major totals. Not an official occupation headcount. |
| estimated_sg_employment_thousands | number | Est. Singapore employment for this occupation, derived from published Labour Force 2024 sub-major totals. Not an official occupation headcount. |
| employment_basis | enum | Basis label for estimated_sg_employment_thousands. Current live basis: Est. SG sub-major allocation. |
| bls_proxy_employment | number | BLS-weighted proxy employment used for wage-pool analysis. This is not an official Singapore occupation headcount. |
| data_basis.employment_estimate | object | Tier/source metadata for the Singapore employment estimate. |
| data_basis.wage_pool_proxy | object | Tier/source metadata for the wage-pool proxy field. |
| labour_monitor_key | enum|null | Cluster key linking this occupation to the separately published Singapore labour monitor dataset. |
| exposure | number | Exposure ensemble score (0-1). Reliability-weighted blend of matched percentile-ranked exposure sources in V4.1. |
| bottleneck | number | Human bottleneck strength (0-1). Higher means stronger human advantage from judgment, accountability, or interpersonal work. |
| net_risk | number | Net displacement risk (0-1). Formula: exposure × (1 - bottleneck) × market_modifier. |
| risk_band | enum | Categorical risk: very_low (<5%), low (<15%), moderate (<30%), high (<50%), very_high (≥50%). |
| augmentation | number | Augmentation potential (0-1). How much AI can enhance rather than replace this role. |
| impact_type | enum | ai_leveraged | at_risk | stable | mixed, based on displacement and augmentation thresholds. |
| market.market_momentum | number | Broad labour-market momentum signal (0-1). |
| market.occupation_scarcity | number | Labour shortage signal (0-1), derived from SOL and Jobs in Demand lists. |
| market.market_resilience | number | Combined market buffer (0-1). Higher means stronger demand protection. |
| group_employment_thousands | number | Official employment total for the broad Singapore occupation group (in thousands). |
| evidence.anthropic_calibrated | boolean | Whether Anthropic observed-usage data is available for this occupation. |
| evidence.anthropic_gap | number|null | Observed-usage percentile minus theoretical exposure percentile. |
| evidence.sol_match | string|false | Shortage Occupation List match: exact, prefix, or false. |
| evidence.jobs_in_demand_match | string|false | Jobs in Demand match: exact, prefix, or false. |
| evidence.exposure_blend_strategy | enum | Current exposure blend method. V4.1 uses a deterministic reliability-weighted ensemble. |
| evidence.exposure_agreement | enum | Agreement across matched exposure sources: consensus_high, consensus_low, aligned_mid, divergent, or insufficient_data. |
| evidence.exposure_source_weights | object | Normalized per-source weights used inside the exposure ensemble after conditioning on which sources matched this occupation. |
| evidence.signal_conflict | boolean | Whether the occupation has materially conflicting evidence, such as high structural pressure but strong current demand signals. |
| confidence.score | number | Overall estimate confidence (0-1), combining crosswalk quality, market data, and source freshness. |
| confidence.exposure_source_count | number | How many exposure sources were available for this occupation in the V4.1 ensemble. |
| confidence.source_coverage | number | Coverage component of confidence (0-1), based on the number of matched exposure sources. |
| confidence.signal_agreement | number | Agreement component of confidence (0-1), derived from agreement across available exposure sources. |
| confidence.sensitivity | number | Sensitivity component of confidence (0-1), derived from the stability stress test. |
| confidence.level | enum | high | medium | low confidence. |
| education_label | string | Displayed education proxy. Derived from O*NET Job Zones via the SOC crosswalk. |
| sg_context | object | Singapore context flags (PWM, licensing, foreign-worker dependency, SkillsFuture support). |
| stability.label | enum | stable | watch | sensitive — how much the risk band moves under the Monte Carlo stability check. |