TL;DR — I wanted to understand where the U.S.-Iran war is headed, so I had the AI agents at my disposal cross-check each other to obtain verifiable bilateral financial data. Assessment: this is a war of attrition running on two clocks. Iran’s insolvency clock is moving faster, but the U.S. is also being chased by elections, oil prices, and interceptor inventory. The method (three-layer workflow + verification prompt generator) and all sources are in the article.
I spent this morning using Grok to track international news. With each exchange, a new row of sources appeared alongside the response: 30 sources, 42 sources, 55 sources. But when I asked it to consolidate twenty-plus rounds of conversation into a report, the sources section was reduced to a single line:
Sources: Public news reports, official statements, historical case references
Zero links. Zero article titles. Zero dates. The hundreds of sources visible moments before had not survived into the final report.
I was tracking this U.S.-Iran conflict not only to test AI. What I actually wanted to know was: where is this war going? To reach a judgment, the intelligence in hand has to be verifiable.
The first half of this article breaks down how three agents can divide the work — and where errors are most likely to occur. The second half uses the verified financial data to offer my assessment of where the war is heading. This piece is part of the AI and Human Order series.
Three Layers: Who Does What
The conclusion first. Multi-agent verification is not about throwing the same question at several models and averaging their answers. What actually works is separating three fundamentally different kinds of work:
| Layer | Task | Required capability | What the test showed |
|---|---|---|---|
| Retrieval | Surface the facts — broadly, freshly, from multiple sources | Live web search, sustained follow-up | Data was mostly accurate |
| Synthesis | Collapse the conversation into structured output | Long-form organization | All three models made errors at this layer |
| Verification | Confirm each claim can be traced to an original source | Strong reasoning + actually opening links | Caught three hard errors |
The key point: synthesis and verification must be handled by separate roles. The verification agent cannot read the prior layer’s reasoning, or it will continue down the same narrative line. The three layers don’t have to be three different brands. You can open three separate, independent conversations inside the same AI: the first finds information, the second synthesizes it, the third looks only at the finished output and verifies it item by item. What matters is not how many models you use but that the three roles stay separate.
Layer One: Retrieval — More Reliable Than I Expected
The point of this test was not to prove Grok unreliable. For instance, Grok reported that the Singapore-flagged container ship Ever Lovely was struck by a drone on June 25 off Oman, with bridge damage but no casualties. That is verifiable in gCaptain’s full report.
The striking figure — “Iran’s economic losses reached $144 billion, close to 40% of pre-war GDP” — was not invented by the model either. It comes from an FDD estimate. After dozens of rounds of follow-up, ship names, casualty counts, and price data mostly traced back to specific sources. At least in this test, the retrieval layer performed better than I had anticipated.
The key operating principle for this layer: choose a model with live search capability — Grok or Perplexity — and keep pressing. A single query usually returns only a surface-level event summary. Ask about the other side’s position, whether a number holds up, whether an alternative explanation exists, and the material opens up.
Layer Two: Synthesis — Where AI Makes the Most Mistakes
The problems appeared when I asked Grok to consolidate twenty-plus rounds of conversation into a report. I’ll call this step “compression.” The report’s timeline began here:
June 17: U.S. and Iran sign a temporary ceasefire MOU
The war actually began on February 28, the strait closed on March 4. A brief ceasefire came in April, the blockade escalated again, and the MOU wasn’t signed until June 17. Grok’s report started from June 17; the preceding four months were compressed into background. This stripped context from the numbers. The $144 billion is a cumulative estimate from February 28 onward, but without the months of combat and blockade before the MOU, readers have no way to understand how that loss was built up. The report also omitted the MOU’s core terms: the strait would remain toll-free for 60 days, with management rights to be renegotiated — and the real dispute is buried in that vague language.
More important than what was omitted is how the original hedging disappeared in compression. During our conversation I asked Grok who broke the ceasefire first, and it said:
Simply put, Iran fired first — this is the consensus of most U.S. and Western reporting.
That sentence marked a position and marked the range of sources behind it. I followed up asking for Iran’s account, and Grok faithfully provided the IRGC version. Then I asked it to write the report. Section five read:
Conclusion: Iran fired first and is responsible for breaking the ceasefire agreement.
“This is the consensus of most U.S. and Western reporting” vanished; “responsible for breaking” entered. The matter is actually disputed: on July 8, Iran’s foreign ministry accused the U.S. of breaking the agreement. We tend to understand AI hallucination as the model fabricating information from nothing. What happened here was different: the conditions disappeared. A sentence that carried a position, a scope, and a hedge was compressed into a confident conclusion. The underlying fact was real, but synthesis stripped the original qualifications. This class of error is harder to catch than fabrication: a fabricated claim usually has no source and raises immediate suspicion; once hedging disappears, the event itself is still verifiable, and readers may wave it through.
I then handed Grok’s report to Perplexity to re-synthesize. It restored considerable structural substance: a complete timeline, the 60-day toll-free passage clause, Bruegel’s analysis of who actually bears the transit fee burden, the UNCLOS legal dispute, and IEA estimates of alternative pipeline capacity. Critically, all of this came with traceable links. Perplexity also flagged that Grok’s toll revenue estimate was off by nearly a factor of five.
Finally I gave both documents to Claude and asked it to draft an article. It made three errors. The draft identified two errors in Perplexity’s work; verification showed both accusations were wrong. The first wasn’t a bad number — it was a missing date. Perplexity wrote “Brent has risen more than 45%, adding roughly $35–40 per barrel”; Claude argued it had confused a prior peak with the current price. Going back to the source showed these were Bruegel’s figures as of April 8; the real problem was that Perplexity had not preserved the data date. The draft then said the “August 21 deadline” in Perplexity’s account was unsourced — but that date is traceable. OFAC issued General License X on June 22, authorizing Iranian oil sales for 60 days through August 21. Perplexity had simply run together two 60-day periods with different start dates, both real.
The third error was more direct. The draft labeled oil on July 7 as “approximately $73”; the source says July 8, $76.48. Neither the $73 figure nor the date was correct.
| Layer | Error | Nature |
|---|---|---|
| Grok | ”Consensus of most Western reporting” → “Conclusion” | Stripped posture and hedging |
| Perplexity | Bruegel’s April figures presented as July reality; OFAC’s Aug. 21 grafted onto the MOU’s clock | Dropped timestamps |
| Claude | Declared a verifiable date “unsourced”; supplied a price point with no source | Drew conclusions without checking |
Three models, three failure modes, all pointing to the same weak joint: synthesis. When a model compresses multiple rounds of conversation and multiple sources into a smooth report, data dates, source posture, applicable scope, and hedging language are the first things to go. In source material they often appear only as brief parentheticals — critical for assessing credibility, and the first to be sacrificed when the model is optimizing for concision and flow.
The key operating principle for this layer: every time you hand material to the next agent, make sure three things travel with it: sources, timestamps, and hedging language. If any one is missing, the next layer will struggle to trace back to the original, even if it tries.
This experience also changed how I think about Perplexity. I had previously assumed it could be skipped in a multi-agent workflow. This test showed its value: even when synthesis went wrong, it preserved sources so I could trace back. By contrast, Grok’s report cited “daily losses of $430 million” without any traceable source — I still cannot confirm where that figure came from.
Layer Three: Verification. Four Instructions
Reading the draft the first time, I caught nothing. The structure was clean, the tone confident, the prose too smooth. I almost published it. But my name is on the article, and I am the one who answers for the errors.
What eventually caught them was a fourth agent. It had not read any of the prior conversation or reasoning — it received only the finished output, playing the role of an independent verifier. The biggest difference between it and the other models was simple: it actually opened the links. I gave it four instructions. The one that did the real work was the third.
First: the verification layer must be independent. The verification agent can only receive the finished output — not the prior reasoning. Otherwise it will follow the same line of thinking and end up endorsing the draft. If your tools support sub-agents, open a separate, independent one. If you only have a chat interface, open a fresh window, paste in only the output, and leave the reasoning behind.
Second: report problems, don’t rewrite. If you check and revise simultaneously, you can’t tell how many things were wrong or exactly where. Produce a complete list of issues first; let a human decide what to change.
Third: actually open the sources — don’t rely on memory. The date and price errors were caught because the verification agent physically opened the Bruegel PDF and the OFAC notice and compared the original text line by line. Relying on the model’s existing knowledge or search summaries would very likely have let these problems through.
Fourth: tell it explicitly, “finding problems matters more than giving me a pass.” Otherwise, the model tends to interpret its task as helping you finish the article rather than finding as many problems as possible.
Cross-Verification Prompt Generator
Select your scenario, copy the prompt, paste it into your preferred AI. Fill in the blank with whatever you want to verify.
The backbone of this prompt comes from the test documented in this article — it caught three hard errors. The "open the link and read the source" instruction is the critical one; disabling it substantially reduces effectiveness.
Once you have the report, don’t accept it wholesale. Triage by result:
confirmed: supported by a reliable source — keep it.corrected: a source clearly shows the original was wrong — fix it.unverifiable: cannot currently be confirmed — delete it, supply a source, or recast the claim more conservatively.overreach: the fact itself holds, but the inference exceeds what the evidence can support — tighten the language.
One more safeguard: the verification agent can also be wrong. Every item it flags as an error in the original still needs a human to open the source and confirm. In this case, one item in the report was the agent’s own inference, and it proactively labeled it “this is my calculation, not a verified fact.” The real danger is when an inference is written to look like something already checked. If you use Claude Code or Cowork, I’ve packaged this workflow as an installable skill — say “verify this for me” and it runs. If you’re using a standard chat interface, copying the prompt above produces nearly the same result.
The Situation Only Gets Clear After Verification
After completing retrieval, synthesis, and verification, the conflict’s timeline and price movements finally came into focus. The price line in the chart below is EIA’s official daily series; only verified, source-traceable event markers are included. Click any marker to see details and provenance.
The most severe market disruption ran from March through April: passage through the strait was severely curtailed, and Brent climbed from roughly $72 to $126. When the June 15 agreement was announced, prices fell as much as 5.7% in a single day. The September futures contract settled at $84.95 on July 15, reflecting the market’s read that conflict had resumed but the strait had not returned to full closure. Several dates ahead are worth watching. The MOU’s toll-free passage period expires August 16. The OFAC waiver was originally set to run through August 21, but was rescinded on July 7 with a wind-down period ending July 17. The strait has been closed again since July 11, and the U.S. has resumed its blockade. On July 14, Trump abandoned the previous day’s proposal for a 20% transit fee.
This chart is not the product of any single model in a single pass. The price line draws on EIA’s official spot series; the event anchors are the version that survived retrieval, synthesis, and verification. Its most important property has not changed: every event traces to a specific source, and the price layer is now itself a source.
So Where Is This War Headed?
Based on the verifiable financial data now in hand, this is an economic war of attrition — and a race between two clocks. Iran’s clock is moving faster, but America’s is also counting down.
The three-layer process above was not about comparing AI models. It was about obtaining numbers that can actually support a judgment.
Iran’s ledger. Before the war, Iran exported slightly over 2.1 million barrels per day; exports fell to nearly zero in May. FDD estimates daily losses during the blockade at roughly $435 million, with cumulative losses since the war began approaching $144 billion — close to 40% of pre-war GDP, and the authors are explicit that this is a floor, not a ceiling. Official year-on-year inflation has reached 88.6%, with meat prices near 178%. The rial has lost roughly 53% over the past year. CIA assessments, as reported by The Washington Post and relayed by Iran International, put Iran’s survivability at “at least 3 to 4 months”; economists within the establishment say the damage accelerates sharply once a blockade extends beyond two to three months.
During the 26-day ceasefire, Iran rushed to sell over 80 million barrels of oil, bringing in more than $6 billion — briefly winding the clock back a little. But after July 17, even that legal window closed.
America’s ledger. Official figures show roughly $30 billion spent through June; CSIS estimates $34–42 billion, with $26.1 billion in munitions the single largest category. The absolute figure is large; the exchange rate is worse: one interceptor missile costs dozens of times what a drone does. As a share of GDP, U.S. direct military spending is roughly 0.15%; Iran’s overall economic losses are approaching 40% of pre-war GDP. The two measures aren’t perfectly comparable, but the gap in staying power is visible. The core question is not who is spending less — it’s who can afford to keep spending.
Iran’s military spending is a black box; the figures below are estimates, not verified facts. No think tank has published a dollar figure for Iranian munitions consumption, so this section represents my own calculations. Known quantities: Iran has fired approximately 1,500–2,300 ballistic missiles (INSS, NBC/IDF, and JINSA counts differ) and roughly 4,400–5,400 suicide drones (including proxy launches; counts vary by source). Applying published unit cost ranges, combat consumption runs to roughly $1–5 billion — about one-tenth of U.S. direct military spending. This is the logic of cheap attrition warfare: force the other side to expend costly interceptors at a fraction of the cost.
Iran carries a second, larger bill: destroyed military assets. FDD estimates replacement value at roughly $46 billion, about half of FDD’s total physical replacement estimate ($91 billion) — equivalent to 4 to 6 years of Iran’s annual defense budget (SIPRI puts this at roughly $7.4 billion per year). Adding munitions and destroyed assets together, the military bills may end up in a similar order of magnitude on both sides, but the nature of the losses is completely different: the U.S. is burning through cash flows that can be replenished through budgets and production capacity; Iran is losing capital stock that cannot be rebuilt quickly.
The U.S. has three clocks of its own, though.
First: interceptor inventory. Seven weeks of operations consumed nearly half its Patriot stock and at least half its THAAD; no new THAAD deliveries are scheduled for 2026, with resupply pushed to 2027.
Second: midterm elections. 58% of the public opposes the war. Gasoline has gone from $2.98 to $4.48 per gallon (as of mid-May) — the war bill is landing directly in voters’ mailboxes.
Third: oil price headroom. Strategic petroleum reserves have fallen to their lowest level since 1983, leaving fewer policy tools to dampen prices.
U.S. behavior tracks all three clocks: three ceasefire attempts in four months, and the transit fee proposal floated on July 13 was abandoned within 24 hours.
My assessment, then: The United States has substantially greater capacity to absorb costs, making a blockade-based war of attrition viable for Washington. The longer it continues, the worse the position for Iran. But time is not entirely on America’s side. This is a race between Iran’s insolvency clock and America’s election, oil-price, and interceptor clocks. Whichever clock strikes first is likely where the war turns.
This judgment has a boundary: it rests on verifiable public data available in mid-July, and several key figures remain unavailable today. Iran’s remaining usable foreign exchange reserves, U.S. incremental spending since fighting resumed on July 8, and Iran’s July inflation figures — none of these has a reliable number. Any one of them, once known, could require revising the assessment. That is precisely why the method in the first half of this article exists: a judgment is not the end of the process. The judgment is anchored to data; when the data changes, it changes too.
Three Questions Worth Asking
Beyond tools and process, the questions I kept asking throughout the conversation are what most improved the quality of the verification. None require a paid subscription. I asked “what does Iran say?” before Grok supplied the IRGC account. I asked “does the casualty count make sense?” before it checked crew manifest and point of impact. I asked “could this be staged?” before it actually tested the alternative hypothesis.
Distilled to their simplest form, those are three questions: What does the other side say? Does this number hold up? Could it be something other than what it appears to be?
Models don’t always raise these on their own. If you don’t push, the model will generally keep following the narrative formed in the previous round. These three questions are the substance of the retrieval layer’s “sustained follow-up.”
In an earlier piece, Knowledge Management Doesn’t Run on Discipline — It Runs on Pipelines, I wrote that any process sustained entirely by human willpower eventually collapses. I was writing about note-taking. Applying that idea to fact-checking now, I find the conclusion was only half right. A pipeline can move data, preserve sources, even dispatch an agent to open every link. But deciding whether to start it still requires a human.
This morning I almost didn’t.
When Anyone Can Quickly Analyze an International Crisis, What’s the Next Question?
The tools are genuinely here. Running through all three layers in a single morning, I produced a volume and breadth of analysis that would have taken a journalist of ten years ago a database, several think tanks, and multiple interviews to match as a first draft. The threshold for accessing information has fallen dramatically.
But the entry barrier remains the same: are you willing to ask the follow-up question — where does this number come from?
Stacking more AI agents doesn’t answer that automatically. If every layer simply rewrites the previous layer’s conclusions, errors get organized into something smoother and more structured — something that looks like a finished report ready to send. The last line of Grok’s report read: “This report is for reference only and does not constitute investment or decision-making advice.” It has learned to write the disclaimer. It just hasn’t learned to bring the sources along.
The verification tool above is the safeguard I built for myself today. I’ll run every important article through it from now on. You’re welcome to use it directly.
Frequently Asked Questions
Q: How do you divide labor in a multi-agent verification workflow?
Three layers. The retrieval layer needs breadth and recency — use a model with live web search and keep pressing one question rather than accepting the first answer. The synthesis layer collapses the conversation into structure; this is where errors most often occur, and sources, timestamps, and hedging language must all travel with the handoff. The verification layer must be handled by an independent agent that has not read the prior reasoning — it receives only the finished output, with instructions to report only, not revise, and to actually open every link and read the source.
Q: Do I need subscriptions to three different AIs?
No. The three layers don’t have to be three different brands. You can open three separate, independent conversations inside the same AI: the first finds information, the second synthesizes it, the third looks only at the finished output and verifies it item by item. What matters is not how many models you use — it’s that the three roles stay separate.
Q: Which numbers in Grok’s report were actually accurate?
Ship names, dates, and casualty figures were mostly correct: the Ever Lovely was struck by a drone on June 25, the Mombasa and Al Bahiyah were hit by cruise missiles on July 13, with 1 dead and 8 injured (6 Indian nationals, 2 Ukrainian, 4 in serious condition) — all verifiable. The $144 billion figure is not fabricated either; it comes from an FDD estimate. But FDD’s range was $50–300 billion, with $144 billion as the most likely value. The report presented it as a definitive number.
Q: Can this be done without a paid subscription?
Yes — the main cost is patience. A single model can run this workflow; you just have to play the verification layer yourself. Open a brand-new conversation window, paste in the finished output without your reasoning, and run through the four instructions. The two actions that actually make a difference are: pushing back with the other side’s account, and opening the source yourself to check.
Brent Crude × US-Iran Conflict Timeline
February 27, 2026 to July 16, 2026. Brent spot prices, with data through July 13, 2026 (EIA, roughly a one-week publication lag). Click any node for event details and sources.
The price line is the EIA daily Brent spot series, with its cutoff date noted above. The diamond anchors are hand-curated events, each with its original source attached. Prices shown on the anchors come from the spot series and will differ from the futures or intraday prices cited in the event text: both are correct, they are simply different series.
Daily Vessel Transits Through the Strait of Hormuz
February 20, 2026 to July 12, 2026. Data through July 12, 2026 (IMF PortWatch satellite AIS counts, roughly a 4-to-7-day publication lag). Drag the timeline or press play.
Coastlines and shipping lanes are hand-drawn approximations, not a precise nautical chart. The number of ship dots is proportional to that day's transit count (IMF PortWatch); they are not live vessel positions. Gold marks tankers, ink marks other merchant ships; diamond markers show the approximate locations of vessel attacks, each lighting up when the timeline reaches that day. Pre-war (February 20 to 27), an average of 106 vessels passed through per day (a different counting method from the roughly 138/day JMIC figure cited in the article).
💬 Comments
Loading...