Coverage — % obligations on track
coverage_green / coverage_total (rounded to nearest integer percent)
- coverage_green = obligations with all linked controls effective and no open high/critical findings
- coverage_amber = obligations with at least one watching signal (overdue test, medium finding, etc.) but no high/critical breach
- coverage_red = obligations with at least one open high/critical finding OR no effective control mapped
- coverage_total = green + amber + red (i.e. in-scope obligations only)
- Out-of-scope obligations (in_scope = false)
- Obligations in draft, under_review, superseded or withdrawn lifecycle states
Recomputed on every snapshot read; no caching.