Aglet

Verify a Count Reconciliation and Its Boundaries

Count verification checks membership before arithmetic. Use a fixed fixture and a bounded real-shaped cohort to test filters, time endpoints, distinctness, joins, and grouping. Compare identifiers and intermediate counts so an apparently correct total cannot hide quiet omissions or substitutions.

Check whether the outcome improved

  1. Test population membership

    Create cases just inside and outside each filter, status, tenant, and time boundary. Assert inclusion for each side's stated contract. Include a record that appears twice, one that changes status, and one that crosses a refresh boundary to make membership rules visible.

  2. Assert identity and grouping

    Run duplicate, one-to-many, and merged-entity fixtures through both counting paths. Compare row count, distinct entity count, event count, and group count explicitly. Review identifiers for every changed bucket, since arithmetic can agree while grouping semantics remain inconsistent.

  3. Reconcile bounded outputs

    Execute both paths against the same cohort and compare intermediate and final results, query parameters, and observation time. Require an explanation for every set difference or documented exception. Retain outputs with the revision and note untested sources or time policies.

What to carry forward

Accept reconciliation when both sides count the documented population, boundary cases behave as intended, identity and grouping are explicit, and every changed identifier or total is explained. Keep verification open for moving inputs, untested consumers, or definitions that still require an owner decision.

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