Built so you can cite it on Monday.
Every fact in every TradeIntelDesk article traces to a verbatim quote in a government filing or vetted trade-press source. No "sources say." No synthesis without attribution. No exceptions.
The Sunday-night problem
It's Sunday evening. You need one specific Canada-China trade fact for Monday's client memo — a GACC facility approval count, a tariff effective date, a quota window closing.
Reuters didn't cover it. Bloomberg covered the macro angle, not the operational one. Your consultant doesn't have direct registry access. The trade newsletters in your inbox don't tell you which of their sources is a Chinese government primary and which is a re-blog of a re-blog.
So you guess. Or you cite something soft and hope your GC doesn't flag it. Or you call someone Monday morning and miss the meeting.
That's the gap TradeIntelDesk was built for.
The rule that runs the system
One rule governs everything that follows:
Every published fact traces to a verbatim quote in a registered source, anchored by character offset.
If a claim isn't substring-matchable to a source we ingested, it doesn't get published. Not paraphrased into existence. Not inferred. Not "according to industry sources." If the substring isn't there, the fact isn't there.
Everything below is what it takes to enforce that rule at scale, in two languages, every 48 hours.
Where the facts come from
Every source TradeIntelDesk uses sits on a locked registry. Five categories: government primary, government secondary, trade press, market intelligence, third-party data.
New sources don't get to publish on day one. They sit in a seven-day quarantine before any article can cite them. They earn promotion by clearing a failure-rate threshold over rolling windows. Sources that drift past 40% failure get demoted. Past 60%, they're pulled.
The registry is a file under version control. Adding a source is a deliberate act with an audit trail, not a convenience.
Convenience is not a qualification.
How a fact becomes a fact
A candidate claim has to clear a commercial-substance test before it's eligible for publication. It must contain one of: a specific number tied to a commerce action within the same sentence, a named agency taking a named action, a specific date tied to a specific commerce event, or a named entity — not "the ministry," not "officials," not "people familiar."
Generic attribution fails the gate automatically. "Sources say" is not a fact in this system. It's a flag.
Every span that survives the gate is verified against the source text by exact substring match. An offset that doesn't match is rejected as fabrication. The verification is deterministic — Python, not an LLM — so it can't be talked out of its judgment.
Two formats. Never blended.
TradeIntelDesk publishes two article types and the system enforces the difference.
Wire filing. 50–100 words. Single source. What happened. Fixed sentence order. No synthesis, no forward-looking language, no prices or futures or FX commentary. The journalistic equivalent of a Reuters wire — facts on the record, nothing else.
Development article. 200–300 words. Requires at least two source groups in agreement. What it means. The full citation list is preserved through publication and visible in the footer.
A story without independent corroboration cannot become a development article. It waits in a hold queue for up to 48 hours for a second source to land. If none does, it stays a wire or it doesn't run.
If two sources don't agree, we don't pretend they do.
English and French publish together, or neither does
TradeIntelDesk articles are written in parallel — not translated. The English and French versions are independent drafts working from the same verified fact bundle, with numerics carried verbatim and a controlled glossary for trade terminology.
At the publish step, both versions are written to disk atomically. If the French version fails verification, the English version is rolled back. There is no English-only fallback path in the system.
For Québec readers, this is the answer to the obvious question: Bill 96 isn't a checkbox we tick. It's enforced at the publisher boundary by code that refuses to publish one without the other.
Two independent verification layers
Every article — every language, every format — passes through two checks before it's eligible to publish.
Layer one is deterministic Python. Format compliance, citation integrity, quote-length caps, source-group requirements. Pass or fail, no judgment.
Layer two is a Claude Sonnet model running as an adversarial editor — separate from the model that wrote the article — reviewing it against the source bundle as if trying to find a reason to kill it.
Two failures send the article to a human review queue. Nothing publishes on a single pass.
The system that wrote it doesn't get to grade it.
Built to be cited
Every published article carries read-only snapshots of every source it cites. The snapshots are SHA-256 hashed and timestamped at the moment of publication, written to disk with permissions that prevent modification, and linked from the article footer.
If an upstream source goes dark, the snapshot stays. If a government page is rewritten, the version we cited is preserved. If we get a fact wrong, we don't delete the article. We republish it with a visible retraction, a stated reason, and the original preserved alongside for legal audit. The URL never goes dead.
Verbatim quoting is capped: no more than 50 words from any single source per article, no more than 25 words in any single passage. The cap is enforced at the publisher, not just in the writer prompt — defense in depth.
Cite us. The sources will still be there when your client checks.
Why this took serious effort to build
Most trade newsletters are one writer and a feed reader.
TradeIntelDesk is a seven-agent verification pipeline, two independent verification layers, a locked source registry, an atomic bilingual publisher, a snapshot-and-retraction system, and a human-in-the-loop canary gate.
We built the wrong version first. The early architecture hallucinated citations and burned through compute on loops that produced unciteable output. We tore it down and rebuilt it around the one rule in the second section. The rebuild was the hardest engineering work on the platform. The verification architecture took longer to get right than the writing did.
We built it this way because the alternative — fast, cheap, plausible-sounding trade analysis — is exactly what's flooding the market and exactly what no analyst can cite.
A human signs every publish
Every TradeIntelDesk article lands first in a staging environment, blocked from search engines at three layers — robots.txt, HTTP header, page meta tag — and reviewed visually before it's promoted to the live site.
The system does the work. A person signs the publish.
It's Sunday night. Monday's memo needs a citation that holds.