The rule is separation of duties: the person who assesses a claim must not approve it. The Engine checks it on every claim that has both steps and a person on record.
FindingSample result
109 of 224
claims were approved by the person who assessed them.
That is 49% of the claims the rule could check. The other 76 could not be checked: a step or a person is missing from the records.
109 same person assessed and approved
115 different people
76 not checked: a step or a person is missing from the records
02 / Proof
A finding should survive inspection.
Each flagged claim identifies the assessment, the approval and their source rows. Follow that trail through the result file, then run an independent SQL recount. The guide takes you through all five steps.
The finding gives you a count of claims to inspect. Add a review-time allowance and an hourly cost to plan the work. This hypothetical exercise combines the published sample with two planning assumptions. It is not an Observatory price, a measured customer outcome or an Engine calculation.
Review budget: published count and explicit assumptions
Input or result
Value
Basis
Claims to inspect
109
Rule hits in the published synthetic sample
Review time per claim
10 minutes
Planning assumption
Reviewer cost
£40 per hour
Planning assumption, including employment costs
Planned reviewer time
109 × 10 = 1,090 minutes
18 hours 10 minutes of review capacity
Planned review budget
(1,090 ÷ 60) × £40 = £726.67
Budget derived from the count and assumptions
Use your own review-time allowance and cost rate for a real investigation. This estimates the review budget. A claim about financial losses or savings needs separate evidence.
Rejected rows are excluded from calculations and listed with their source file, row number and reason.
Three rejected rows in the sample.
The sample records each rejection explicitly. Here is what failed and where. Row IDs count data records, excluding the CSV header.
claims_ops.csvrow 2236a required field is missing
step_export.csvrow 321the timestamp cannot be read
step_export.csvrow 322the end comes before the start
In claims_ops.csv record 2236, case_id and activity are empty. In step_export.csv record 321, start_time is 2026/02/30 25:61:00.000, an invalid date and time. Record 322 has end_time2026/03/24 07:00:00.042, before its start_time of 2026/03/24 07:06:18.501.
04 / Next
Open the Reader views.
The worked example preserves the earlier Reader preview of this result. The Reader tour shows a separate development demo. Explore the current views or see how a YAML contract maps your own exports.
The published claims result is a sample, with its own Engine version. Keep that scope when checking its SQL; use the input guide when moving to a real export.