Skip to content

What agents get wrong about attribution data

Four failure modes recur when a model summarises measurement. Each has a specific fix, and three of them are schema problems rather than prompt problems.

Three platforms, three answers, one budget to defend. Your GA4 export already holds the answer, and the first finding is free and never leaves your browser. Get your first finding free

By , Founder & CEOUpdated 3 min read

The four

FailureWhat it looks likeFix
Dropped uncertainty"Meta returned 2.4" from an estimate spanning 1.1 to 3.7Put the interval in the schema and require it in output
Ranking the unrankableAn ordered list of channels whose intervals all overlapRequire overlap checking before any ordering
Filling the floorA confident figure for a channel marked unmeasurableKeep the label in the payload, not just the notes
Stale windowSummarising an old file as though it were currentPut the window in the payload as a field

Dropped uncertainty is the common one

A model asked to write a crisp summary will write a crisp summary, and hedges are the first thing that goes. If the confidence interval is present in the data, an instruction to carry it into every channel mention resolves most of it.

The instruction has to be explicit. "Be accurate" does not produce hedging; "state the range whenever you state an estimate" does.

Ranking the unrankable

Given a list of numbers, a model will order them, because ordering is what one does with numbers. If three channels have overlapping intervals, the ordering is not supported by the data, and a confidently ranked list is a fabrication produced by a reasonable-looking operation.

Requiring the model to check overlap before ordering, and to group indistinguishable channels together, fixes it. This is also a good habit for humans.

Filling the floor

If the unmeasurable label lives in a footnote rather than in the record, the model does not see it and produces a number for a channel that has none. Keep it in the payload as a field on the channel. The reason channels get this label is in the measurability floor.

Stale window

A file whose period is only in its name will be summarised as current indefinitely. Put the window inside the payload as a first-class field and the problem disappears.

Why these matter more than they look

Because the output reads well. A fabricated ranking with confident prose is more persuasive than an honest one with hedges, and the person reading the summary has no way to tell. That is the case for putting the constraints in the data rather than trusting the reader.

The agent-facing surface is on for AI assistants, and the boundary on what agents should decide is in can an AI agent do your attribution.

Frequently asked questions

  • Why do AI summaries drop confidence intervals?
    Because a crisp sentence reads better than a qualified one, and hedges are the first thing summarisation pressure removes. An explicit instruction to state the range whenever an estimate is stated resolves most of it.
  • Why do models rank channels that cannot be ranked?
    Because ordering is the obvious operation on a list of numbers. If several channels have overlapping intervals, the ordering is not supported by the data, and the confident list is a fabrication produced by a reasonable-looking step.
  • How do I stop a model summarising a stale report?
    Put the analysis window inside the payload as a first-class field rather than leaving it in the filename. A file whose period is only in its name will be summarised as current indefinitely.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Have an audience of ecommerce operators? Earn 20% recurring commission by recommending the €99 read.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

The free finding runs in your browser. Your file never leaves it. The full read is €99, refundable within 30 days, no questions asked. Prices exclude VAT.