// File: soc-groups.ts // Path: apps/web/lib/soc-groups.ts // Project: AI Risk Index — airiskindex.io // Author: Simon-Pierre Boucher // Contact: contact@spboucher.ai // Copyright © 2026 Simon-Pierre Boucher. All rights reserved. // // Description: SOC 2018 major-group names and wage formatting helpers. /** SOC 2018 major groups — first two digits of the O*NET-SOC code. */ export const SOC_MAJOR_GROUPS: Record = { "11": "Management", "13": "Business & Financial Operations", "15": "Computer & Mathematical", "17": "Architecture & Engineering", "19": "Life, Physical & Social Science", "21": "Community & Social Service", "23": "Legal", "25": "Educational Instruction & Library", "27": "Arts, Design, Entertainment, Sports & Media", "29": "Healthcare Practitioners & Technical", "31": "Healthcare Support", "33": "Protective Service", "35": "Food Preparation & Serving", "37": "Building & Grounds Cleaning & Maintenance", "39": "Personal Care & Service", "41": "Sales & Related", "43": "Office & Administrative Support", "45": "Farming, Fishing & Forestry", "47": "Construction & Extraction", "49": "Installation, Maintenance & Repair", "51": "Production", "53": "Transportation & Material Moving", "55": "Military Specific", }; export function socGroupName(code: string): string { return SOC_MAJOR_GROUPS[code.slice(0, 2)] ?? "Other"; } export function formatWage(cents: number | null): string | null { if (cents == null) return null; return `$${Math.round(cents / 100).toLocaleString("en-US")}/yr`; }