spb/airiskindex Public
The most methodologically rigorous, fully transparent AI job-exposure index.
TypeScript 88%
Python 6.1%
SQL 2.7%
CSS 1.2%
JavaScript 0.9%
Shell 0.8%
1// File: weights.ts2// Path: packages/scoring/src/weights.ts3// Project: AI Risk Index — airiskindex.io4// Author: Simon-Pierre Boucher5// Contact: contact@spboucher.ai6// Copyright © 2026 Simon-Pierre Boucher. All rights reserved.7//8// Description: Composite dimension weights and orientation — single source of truth for the methodology.910/**11 * Composite dimension weights — the single source of truth (CLAUDE.md §1:12 * never hardcode weights anywhere else). METHODOLOGY.md §4.13 */14export const DIMENSIONS = [15 "automatability",16 "feasibility",17 "cost_ratio",18 "barriers",19 "adoption_velocity",20] as const;2122export type DimensionKey = (typeof DIMENSIONS)[number];2324export const WEIGHTS: Record<DimensionKey, number> = {25 automatability: 0.35,26 feasibility: 0.2,27 cost_ratio: 0.15,28 barriers: 0.2,29 adoption_velocity: 0.1,30};3132/**33 * Dimensions where a higher rating means LESS substitution pressure34 * (stronger barriers protect the task) — METHODOLOGY.md §4 "orientation".35 */36export const INVERTED_DIMENSIONS: ReadonlySet<DimensionKey> = new Set(["barriers"]);3738/** Dimensions composing the exposure sub-score — METHODOLOGY.md §5. */39export const EXPOSURE_DIMENSIONS: readonly DimensionKey[] = ["automatability", "feasibility"];40