{
 "metric": "dnssec",
 "segment": "fr-medium",
 "anchor": "company",
 "label": "France medium companies",
 "population": "France medium companies",
 "states": [
  "signed",
  "broken_chain",
  "unsigned"
 ],
 "quiet_failure_states": [
  "broken_chain",
  "unsigned"
 ],
 "measurement": "**local probe** (deliberately, ADR-0009): DNSKEY at the child, then DS at the **parent**. Denominator: `any`.",
 "why_it_matters": "`broken_chain` is the quiet failure and the reason this metric exists — DNSKEY published but no DS at the parent means the zone is signed and *unverifiable*. The operator has done the work, the dashboard says DNSSEC is on, and no resolver on earth validates it. Unsigned is merely the default.",
 "limits": "Must be measured locally. The DomainAPI health endpoint exposes no DNSSEC state and resolves DS at the child, which cannot distinguish `broken_chain` from `signed`.",
 "data_tier": "dns",
 "population_predicate": "any",
 "entity_type": "domain",
 "kind": "failure",
 "latest": {
  "day": "2026-08-11",
  "n": 139,
  "qf_pct": 87.77,
  "ci": [
   81.29,
   92.22
  ],
  "dist": {
   "signed": 12.23,
   "broken_chain": 7.19,
   "unsigned": 80.58
  },
  "snapshot": "sirene-france-per600-seed20260730"
 },
 "series": [
  {
   "day": "2026-08-04",
   "n": 200,
   "qf_pct": 84,
   "ci": [
    78.29,
    88.43
   ],
   "dist": {
    "signed": 16,
    "broken_chain": 4,
    "unsigned": 80
   },
   "snapshot": "sirene-france-per600-seed20260730"
  },
  {
   "day": "2026-08-05",
   "n": 200,
   "qf_pct": 84,
   "ci": [
    78.29,
    88.43
   ],
   "dist": {
    "signed": 16,
    "broken_chain": 4,
    "unsigned": 80
   },
   "snapshot": "sirene-france-per600-seed20260730"
  },
  {
   "day": "2026-08-11",
   "n": 139,
   "qf_pct": 87.77,
   "ci": [
    81.29,
    92.22
   ],
   "dist": {
    "signed": 12.23,
    "broken_chain": 7.19,
    "unsigned": 80.58
   },
   "snapshot": "sirene-france-per600-seed20260730"
  }
 ],
 "license": "CC BY 4.0",
 "source": "https://quietfailures.com/datasets/dnssec/fr-medium"
}