Event analysis

Eight repeat pairs. Three were confirmed waste.

Every pair below is a call your agent made more than once on the same execution path.

Pairs evaluated

8

3 confirmed waste · 3 likely legitimate · 2 unclassified

Confirmed waste

3

$0.0280 in this sample ยท ~$52.50/mo projected

Trace coverage

64%

16 of 25 events carried a price

Dollar figures below are also projected at 1,000 calls/day (30-day month), scaling this sample's own cost-per-call rate in each bucket. A hypothetical, not a measurement of your real traffic.

16 of 25 events carried a price (64%). $0.1060 of tracked spend is what this analysis actually covers. All amounts are USD, as reported by each event's own cost_usd; this report never converts or estimates a currency.

9 event(s) had no cost_usd and are excluded from every dollar figure above and below. Percentages are computed on the priced subset, not the total.

Cost basis: $0.1060 (100%) reported directly by the source.

Fix these first

Ranked by real cost_usd, never a projection. The highest-value repeats to kill first.

Where the spend went

Cost by verdict, across the 64% of events (16 of 25) that carried a price. Select a row to open its detail.

Confirmed waste 3 $52.50/mo$0.0280 sample → Likely legitimate 3 $6.56/mo$0.0035 sample → Unclassified 2 $41.25/mo$0.0220 sample → Near duplicate 0 $0.0000 → Cross-task redundancy 0 $0.0000 → Recurring pattern 0 $0.0000 →

The verdicts

▸

Confirmed waste

3 pair(s) · $0.0280 in this sample · ~$52.50/mo projected

Your agent repeated itself, learned nothing new, and still failed: these are the places it was stuck, not working.

The call repeated, the result didn't change, nothing wrote to state in between, and the task still failed. All four have to be true. Drop any one and this is a guess, not a finding.

Action Cache the result or guard the retry. This spend bought nothing.

By model
By modelCountCostTokens inTokens out
gpt-5.63$0.02803,240230
By workflow
By workflowCountCostTokens inTokens out
research_agent2$0.008024030
summarizer1$0.02003,000200
▸ Sample cases to spot-check by hand (3)
  • task=session-001 step=2 (tool_call/web_search): result identical; no intervening write; task terminated in failure
  • task=session-001 step=4 (tool_call/web_search): result identical; no intervening write; task terminated in failure
  • task=session-006 step=1 (llm_call/gpt-5.6): result identical; no intervening write; task terminated in failure
▸

Likely legitimate

3 pair(s) · $0.0035 in this sample · ~$6.56/mo projected

A specific reason it's not waste: the result changed (polling worked), a write intervened (verification), or the task succeeded and neither the result nor the write status already confirms waste on its own.

Action Leave these alone. Cache them and you'll break polling and verification.

By model
By modelCountCostTokens inTokens out
gpt-5.62$0.00157015
claude-sonnet-51$0.00208040
By workflow
By workflowCountCostTokens inTokens out
coding_agent1$0.00208040
trading_agent1$0.00105010
healthcheck1$0.0005205
▸ Sample cases to spot-check by hand (3)
  • task=session-002 step=3 (tool_call/read_file): result changed; write intervened at step 2
  • task=session-003 step=2 (tool_call/get_stock_price): result changed
  • task=session-004 step=2 (tool_call/ping_endpoint): result changed
▸

Unclassified

2 pair(s) · $0.0220 in this sample · ~$41.25/mo projected

Everything else. A required signal (the result, the write status, or the outcome) was missing from the trace, or the call already looks wasteful on its own and the task's overall success can't settle whether it actually mattered. No verdict here, and that's on purpose.

Action Emit result hashes and task outcome, then re-run to get a verdict.

By model
By modelCountCostTokens inTokens out
claude-sonnet-51$0.0020608
gpt-5.61$0.02003,000200
By workflow
By workflowCountCostTokens inTokens out
legacy_pipeline1$0.0020608
summarizer1$0.02003,000200
▸ Sample cases to spot-check by hand (2)
  • task=session-005 step=1 (tool_call/legacy_lookup): no legitimate-use signal fired, but result not observable for one or both calls; task terminal outcome not recorded
  • task=session-007 step=1 (llm_call/gpt-5.6): no legitimate-use signal fired, but result not observable for one or both calls
▸

Near duplicate

0 pair(s) · $0.0000

Arguments are similar but not identical to an earlier call on the same execution path (a SimHash fingerprint comparison, not exact content_hash equality). Surfaced for manual review, not a waste or legitimate verdict. See docs/hashing.md for what a similarity fingerprint can and can't support.

Action Nothing to do. When these appear, read them by hand.

▸

Cross-task redundancy

0 pair(s) · $0.0000

Same or near-identical call as an earlier one in a different task, and the two tasks are confirmed related (a source-reported delegation link, never inferred from timing or content). Surfaced for review, not a waste verdict: what changed between the two calls isn't checked here yet.

Action Read these by hand. A confirmed link exists between the two tasks, but not yet enough signal here to call it waste or legitimate.

▸

Recurring pattern

0 pair(s) · $0.0000

Same or near-identical call recurring across tasks with no confirmed relationship to each other. Not a waste or legitimate verdict, and not evidence the two tasks are related, most likely a common or generic operation, not redundant work.

Action Nothing to do by default. If this recurs a lot, it may be worth caching or memoizing globally, but it isn't evidence of wasted spend on its own.

Unclassified pairs are reported with a count and no verdict, deliberately: a confident wrong classification here is worse than an honest unknown.

Events with no cost

The blind spot in every figure above.

Events total

25

Priced

16

No cost_usd

9

9 event(s) carried no price, so no dollar figure in this report includes them. A repeat among them is invisible, not free.

Action Set cost_usd on every span. Coverage under 80% makes totals indicative, not auditable.

▸ Sample unpriced events to spot-check by hand (9)
  • task=session-001 step=1 (tool_result/web_search): no cost_usd recorded
  • task=session-001 step=3 (tool_result/web_search): no cost_usd recorded
  • task=session-001 step=5 (tool_result/web_search): no cost_usd recorded
  • task=session-002 step=1 (tool_result/read_file): no cost_usd recorded
  • task=session-002 step=4 (tool_result/read_file): no cost_usd recorded
  • task=session-003 step=1 (tool_result/get_stock_price): no cost_usd recorded
  • task=session-003 step=3 (tool_result/get_stock_price): no cost_usd recorded
  • task=session-004 step=1 (tool_result/ping_endpoint): no cost_usd recorded
  • task=session-004 step=3 (tool_result/ping_endpoint): no cost_usd recorded