{"_id":"@ariada-org/penalty-estimator","name":"@ariada-org/penalty-estimator","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ariada-org/penalty-estimator","version":"0.1.0","description":"EAA / national-law penalty exposure estimator — per-jurisdiction administrative-fine rate-cards (SE/NO/DK/FI/DE/FR/NL/AT/CH/UK/EU). Open source under EUPL-1.2.","license":"EUPL-1.2","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@ariada-org/evidence-emitter":"0.1.0"},"devDependencies":{"@types/node":"^22.10.0","rimraf":"^6.0.1","typescript":"^5.7.2","vitest":"^4.1.0","eslint":"^9.17.0","@vitest/coverage-v8":"^2.1.8"},"engines":{"node":">=22"},"keywords":["accessibility","a11y","eaa","european-accessibility-act","penalty","fine","compliance","risk","dos-lagen","bfsg","eupl"],"homepage":"https://ariada.org/packages/penalty-estimator","repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/ariada-penalty-estimator"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"author":{"name":"Alekszandr Bricskin","email":"git@ariada.org","url":"Agonist Development AB"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","test:property":"vitest run src/__property__/","clean":"rimraf dist coverage","lint":"eslint src","test:coverage":"vitest run --coverage"},"_id":"@ariada-org/penalty-estimator@0.1.0","_integrity":"sha512-Fv6wf+0Gqx/BqYF+0vSFZariynJJ+jFEqM0FOxf2OXhxIffb9sisopbLN8N5fzth0S8NgeEaC7LPPznHJ7upIw==","_resolved":"/tmp/8fb0b37e923a12c9ae7948d73b39ed69/ariada-org-penalty-estimator-0.1.0.tgz","_from":"file:ariada-org-penalty-estimator-0.1.0.tgz","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-Fv6wf+0Gqx/BqYF+0vSFZariynJJ+jFEqM0FOxf2OXhxIffb9sisopbLN8N5fzth0S8NgeEaC7LPPznHJ7upIw==","shasum":"58105768fc0d8befc1663ff11b40062bba4f2351","tarball":"https://registry.npmjs.org/@ariada-org/penalty-estimator/-/penalty-estimator-0.1.0.tgz","fileCount":12,"unpackedSize":43981,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ariada-org%2fpenalty-estimator@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDYhRIJYnEjMHE2hLMcHsvghn9VvN1MQ8E14XQF/4VBZAIhALodrOGzxxVnvfCeaHgCAghBssxdU7M0YP+3KWXLJ03M"}]},"_npmUser":{"name":"agonist","email":"ab@agonist.ai"},"directories":{},"maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/penalty-estimator_0.1.0_1781536553898_0.6490643929142317"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T15:15:53.682Z","0.1.0":"2026-06-15T15:15:54.069Z","modified":"2026-06-15T15:15:54.557Z"},"maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"description":"EAA / national-law penalty exposure estimator — per-jurisdiction administrative-fine rate-cards (SE/NO/DK/FI/DE/FR/NL/AT/CH/UK/EU). Open source under EUPL-1.2.","homepage":"https://ariada.org/packages/penalty-estimator","keywords":["accessibility","a11y","eaa","european-accessibility-act","penalty","fine","compliance","risk","dos-lagen","bfsg","eupl"],"repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/ariada-penalty-estimator"},"author":{"name":"Alekszandr Bricskin","email":"git@ariada.org","url":"Agonist Development AB"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"license":"EUPL-1.2","readme":"# @ariada-org/penalty-estimator\n\nEAA / national-law penalty exposure estimator — per-jurisdiction administrative-fine rate-cards for accessibility violations.\n\nOpen source under [EUPL-1.2](./LICENSE).\n\n> **Not legal advice.** This is an empirical risk-modelling tool to inform remediation prioritisation. Penalty levels are statutory maxima per cited law; actual enforcement varies widely. Always consult counsel before relying on figures for budgeting.\n\n## What this package does\n\nGiven a violation list + a target jurisdiction, returns an estimated penalty-exposure range in EUR. Rate-cards model the transposition of Directive (EU) 2019/882 (European Accessibility Act) plus adjacent consumer-protection laws.\n\n## Supported jurisdictions\n\n| Code | Country        | Primary law                                                              |\n| ---- | -------------- | ------------------------------------------------------------------------ |\n| SE   | Sweden         | Lag 2018:1937 (DOS-lagen) + Marknadsföringslagen                         |\n| NO   | Norway         | Likestillings- og diskrimineringsloven §17 + tilgjengelighetsforskriften |\n| DK   | Denmark        | Lov om tilgængelighed (LBK 692/2020)                                     |\n| FI   | Finland        | Saavutettavuuslaki 306/2019                                              |\n| DE   | Germany        | Barrierefreiheitsstärkungsgesetz (BFSG, 2021) + UWG                      |\n| FR   | France         | Loi 2005-102 art. 47 + Décret 2019-768                                   |\n| NL   | Netherlands    | Tijdelijk besluit digitale toegankelijkheid overheid                     |\n| AT   | Austria        | WZG 2020 + Konsumentenschutzgesetz                                       |\n| CH   | Switzerland    | BehiG (non-EU, included for completeness)                                |\n| UK   | United Kingdom | Equality Act 2010 + EHRC enforcement                                     |\n| EU   | EU aggregate   | DSA art. 35 + UCPD 2005/29 ceiling                                       |\n\n## Install\n\n```bash\nnpm install @ariada-org/penalty-estimator\n```\n\n## Quick start\n\n```ts\nimport {\n  estimatePenalty,\n  listJurisdictions,\n} from \"@ariada-org/penalty-estimator\";\nimport type { Violation } from \"@ariada-org/evidence-emitter\";\n\nconst violations: Violation[] = [\n  /* axe-core results normalized to Violation shape */\n];\n\nconst estimate = estimatePenalty(violations, \"SE\");\n\nconsole.log(estimate.maxPenaltyEur, estimate.expectedRiskEur);\nconsole.log(estimate.lawReferences);\nconsole.log(estimate.authority);\n// estimate.explanation — per-violation breakdown lines (human-readable)\n```\n\nSector multipliers (banking, e-commerce) are applied automatically when\n`Violation.eaaAnnexI` includes `'I.3'` (e-commerce) or `'I.4'` (banking).\nOverride the empirical `enforcementFactor` (or pass `annualTurnoverEur`\nfor DSA-style turnover scaling) via the optional third argument:\n\n```ts\nconst dsa = estimatePenalty(violations, \"EU\", {\n  annualTurnoverEur: 250_000_000,\n  enforcementFactor: 0.5,\n});\n```\n\n## Standards\n\n- [Directive (EU) 2019/882 (EAA)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882)\n- [Directive 2005/29 (UCPD)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32005L0029)\n\n## License\n\n[EUPL-1.2](./LICENSE). See [NOTICE](./NOTICE) for the patent peace pledge.\n\n## Part of the Ariada OSS platform\n\nThis package is one component of the open-core Ariada accessibility-compliance platform. See [ariada.org](https://ariada.org) for the full pipeline.\n","readmeFilename":"README.md","_rev":"1-7e7986c609531f3ec2c33d9d333c8a2c"}