AI basics & verificationPractical AI workflows

Why summing daily users misleads: audit ten events and a five-ID period union

Adding daily distinct-user counts usually does not give the distinct count for the whole period: an ID can return on another day. Ask AI to list daily ID sets and then form their union. This original dataset contains ten events, nine date–ID memberships and five period-distinct IDs.

A dense crowd photographed from above
Illustrative photo: Daniele Colucci · Unsplash LicenseCrowd photograph, not identifiable fictional IDs or evidence of site traffic.

The workflow at a glance

The daily sets are {A,B,C}, {B,C,D} and {C,D,E}. Their counts add to nine, while the period union {A,B,C,D,E} contains five IDs. These are fictional identifiers, not current KitNelo traffic, proven natural persons or measured Google/GA4 metrics.

Keep the original events before deduplicating

This is an editorial teaching dataset without real visitors. Each row is an event with a unique event_id. E01 and E02 share an ID and date, so both remain in the event count while A appears once in that day’s distinct set.

Assume dates already use one reporting timezone and every user_id is stable and present. With missing IDs, cross-device identity changes or different identity rules, a real result is only a count under those identifier rules. It does not automatically establish people.

Original CSV input

event_id,date,user_id
E01,2026-10-01,A
E02,2026-10-01,A
E03,2026-10-01,B
E04,2026-10-01,C
E05,2026-10-02,B
E06,2026-10-02,C
E07,2026-10-02,D
E08,2026-10-03,C
E09,2026-10-03,D
E10,2026-10-03,E
Ten complete events. Keep event_id for row reconciliation and date/user_id for the different counting grains.

Specify grain and boundaries in the AI task

Avoid asking only for “total UV.” Define the window and the meaning of an event and ID, then request members as well as counts. A small sample exposes every member; a larger workflow still needs traceable keys and reconciliation evidence.

The prompt below can be used with an AI you are entitled to use for these fictional inputs. The answer is independently checkable; we did not run an account-based model test or establish guaranteed compliance.

Reusable prompt

Use only this CSV. Dates already use the reporting timezone. Return: (1) event-row count; (2) each date’s distinct user_id set and count; (3) distinct date+user_id pair count; (4) the period-wide distinct ID set and count. Do not label the sum of daily counts as period users. Do not filter for IDs occurring exactly once. Preserve the original IDs and explain why an ID count is not proof of natural persons. Show how the source rows reconcile with each set.

event_id,date,user_id
E01,2026-10-01,A
E02,2026-10-01,A
E03,2026-10-01,B
E04,2026-10-01,C
E05,2026-10-02,B
E06,2026-10-02,C
E07,2026-10-02,D
E08,2026-10-03,C
E09,2026-10-03,D
E10,2026-10-03,E
Supply both task and source. The prompt does not replace the complete reference answer below.

Reference answer: four quantities with different meanings

Day one has four events but three IDs because A repeats. Days two and three each have three events and three IDs. The date-grain distinct memberships total 3+3+3=9. Remove date from the key and deduplicate the ID column to obtain five IDs for the period.

A union’s size is not generally the sum of its component sizes. A demonstrates within-day event repetition; B, C and D demonstrate cross-day overlap. Those are different duplicate concepts, so specify the task before removing either.

Complete reference ledger
MeasureMembers or basisCount
Event rowsE01 through E10 retained10
2026-10-01 distinct IDsA, B, C3
2026-10-02 distinct IDsB, C, D3
2026-10-03 distinct IDsC, D, E3
Date+ID pairsThree pairs on each day9
Period-distinct IDsA, B, C, D, E5

Two ways to misuse deduplication

Incorrect answers

Period UV=3+3+3=9; or keep only E and report 1

Correctly labeled results

Period-distinct IDs=5; daily membership total=9

Nine repeats returning IDs. One keeps only IDs occurring once in the entire input, incorrectly dropping A/B/C/D.

Recompute independently with sets or a worksheet

Write the three daily sets and cross out letters already seen. The remaining union is A/B/C/D/E. A program can keep one Set of user_id and a second Set keyed by date and user_id; their sizes for these inputs are five and nine.

In supported Excel versions, Microsoft’s UNIQUE reference distinguishes ordinary distinct values from exactly_once. UNIQUE(C2:C11) should list five IDs here. Setting exactly_once to TRUE instead filters for an occurrence count of exactly one; only E remains, which is a different question.

There are no blanks in this specific range, so ROWS(UNIQUE(C2:C11)) gives the intended five. Real inputs need explicit blank, range and type rules. Whether A and a identify the same person also needs a business rule rather than inconsistent software defaults. We did not execute the Excel application.

Preserve the reporting window and unknowns

A suitable statement is: “The fictional October 1–3 input has ten events, nine date–ID pairs and five period-distinct IDs. No cross-device identity reconciliation was performed, so this does not prove five natural persons.” New users, retention and real tool completion require additional definitions and events.

For a people-versus-selection mistake, use the multiple-choice counting example. For unstable IDs or name collisions, first use the stable-ID merge workflow. Actual impressions, clicks and completions each still require their own data source.

Before accepting the AI report

  • Retain ten original events and their unique event IDs.
  • Every daily member can be located in the source rows.
  • The period set contains five IDs; nine is labeled only as date–ID memberships.
  • Record missing identities, identity reconciliation and reporting-timezone uncertainty separately instead of inventing counts.

Further reading & sources

Related articles