Skip to main content

The coverage matrix

The coverage matrix is one grid: root causes down the side, bills across the top, a mark in each cell. It is the single most useful object in this part of the movement, because it is the only one that shows what is missing.

Bill 1Bill 2Bill 3Bill 4
rc1 — no duty to produceY———
rc2 — exemption too broad—Y——
rc3 — conclusions classified—YY—
rc4 — no penalty for silenceYYYY
rc5 — agency checks itself———Y
rc6 — no independent publication———Y
rc7 — no clockY—Y—

Why it is stored as a join, not as a list on either side​

Coverage is a relationship between a problem and a bill, so it is recorded as its own row that names both. It is deliberately not an array hanging off the problem, and deliberately not an array hanging off the bill.

The reason is auditability. If each side kept its own list, the two lists would drift, and the day they disagreed there would be no way to tell which one was lying. One row, named on both ends, cannot disagree with itself.

Reading a gap​

A row with no marks across it is not a failure of the movement. It is an open piece of work with a name, and it is the most honest thing on the page. It tells a citizen exactly where a contribution would matter.