Keep the lesson for the next incident
Document the denominator rule
State whether the denominator includes every selected record, only eligible records, or another reviewed set. Link each excluded reason to that rule and name the component that owns the selection snapshot. Do not let the screen infer eligibility from whichever rows it currently displays.
Keep an outcome fixture
Retain sanitized examples for completed, failed, excluded, and active items, plus a late projection update. Record expected counts and terminal wording beside them. Re-run the fixture when aggregation, event ordering, filtering, or progress storage changes.
Add a recurrence signal
Watch for a projection timestamp older than the newest item event and for terminal batches whose counts do not reconcile. Review the batch shape, not just the total volume, when either signal returns. Assign an owner to revise the contract if a new outcome state appears.
What to carry forward
The durable lesson is a reviewed denominator, explicit item outcome taxonomy, and a freshness check tied to event time. Preserve the fixture and recurrence signals with the batch contract. Reopen the design when a new exclusion reason, terminal state, or projection path changes what progress is meant to represent.
Technical background: Celery documentation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow