Compliance Risk Score — Methodology
Version 1.0 — Deterministic checks executed at build time. No LLM computation. No approximations. Every factor is a boolean pass/fail/n/a check against a specific official data file.
Formula
score = round( (factors_passed / factors_total_excluding_na) × 10 ) - Factors with status n/a are excluded from the denominator.
- If all factors are n/a, the block is not rendered and no JSON file is created.
- Maximum score: 10. Minimum: 0.
Score ranges
| Range | Meaning |
|---|---|
| 8–10 | Strong data coverage. Multiple official sources confirm this code. |
| 5–7 | Partial coverage. Some factors could not be verified. |
| 0–4 | Limited data. Few or no supplementary sources available. |
The 7 factors
-
1. Verified official source
Code found in the official classifier file of the current revision. Evidence: filename + release date.
Source:
data/jsic-hierarchy.json -
2. International crosswalk
Confirmed mapping to an international classifier (ISIC Rev.4, NACE Rev.2, CPC Ver.2, ISCO-08 — whichever applies). If no crosswalk table exists in the data, this factor is n/a.
Source:
data/jsic-rev14-data.json→ crosswalks -
3. Previous-edition migration
A mapping exists from the previous revision of the same national classifier. Shows continuity and traceability across editions.
Source:
data/jsic-rev14-data.json→ migration -
4. Complete hierarchy
All parent levels (section, major group, group, industry) exist and are linked. A code with missing parents is flagged as incomplete.
Source:
data/jsic-hierarchy.jsonstructure -
5. Size/threshold documented
Official size standards, turnover thresholds, or tax brackets are documented for this code. Country-specific. If no threshold data exists, this factor is n/a.
Source:
data/jsic-rev14-data.json→ size_thresholds -
6. Trade/export mapping
A correspondence exists to a trade or customs nomenclature (HS, CN, Schedule B). Enables cross-referencing with import/export data.
Source:
data/jsic-rev14-data.json→ hs -
7. Legacy crosswalk
A mapping exists to the older national system that this classifier replaced. For Japan, this would be earlier JSIC revisions or other legacy coding systems.
Source:
data/jsic-rev14-data.json→ legacy
Rules
- No approximations. Every factor is pass, fail, or n/a.
- Evidence is a factual reference from the source file, not a paraphrase.
- Source URLs point to specific documents or tables, not department homepages.
- If no official methodology document exists, we describe our method honestly here.
Implementation
The build script is scripts/build-risk-score.cjs. It reads local JSON data files and produces src/data/risk-score/<code>.json for each leaf industry code. The RiskScoreBlock.astro component reads these files at build time and renders the block.
To regenerate all scores: node scripts/build-risk-score-all.cjs