Skip to content

Field notes

What a verified decision looks like.

These are decision records, not case studies. Client names and data are redacted unless we have written consent. Each record shows the same five gates.

The structure is deliberate: the decision, what the agents did, where the expert intervened, what was verified or killed, and what changed. We publish the negative results. A record that only shows the win is a marketing document.

Macro and rates

The engine we refused to build

The decision
A proposed macro factor-attribution engine promised a full driver decomposition. The question was whether to build it as specified.
What the agents did
A bounded research pass mapped the proposal component by component, gathered the published evidence on common-factor shares, and checked every claim against its source.
Where the expert intervened
The expert refused the engine as stated. The decomposition is set-identified, several inputs had no storable source, and the proposed methods sat outside the programme's evidence. One claim survived: a common global factor drives long-end co-movement. It was registered as a falsifiable block with a threshold and a range.
What was verified or killed
Published estimates of the common-factor share run from about 20% on a broad risky-asset panel to more than 80% of advanced-economy term premia. The block registers a threshold and a range, not a single number. Predictions were registered before any outcome, and predictions that could not be scored were voided. The loop has not closed.
What changed
The programme built one testable block instead of a monolith. The record names what was refused and why, so the next reader does not re-propose it.
A finding is not a law. It is a hypothesis with an expiry.

Market infrastructure

120x from a better question

The decision
How to make a market-data path fast enough to trust, without guessing which change helped.
What the agents did
A measured optimization programme: a shared-memory ring, a write-ahead log, a C++ and Rust parity path, and an optimization ledger. The compiler's emitted IR was the oracle, not the eyeball.
Where the expert intervened
The expert rejected a blocked prefix-sum rewrite that measured 5.2x slower. Two measurement bugs were caught first: a benchmark whose output was dead code reported 33.0 ns for a 7.3 ns kernel, and a timer with 42 ns resolution could not see a 10 ns difference. The fix was a batched timer and a black-boxed output.
What was verified or killed
A constant-time last-record check replaced a full scan and took a 4,096-record check from 1,979 ns to 16.4 ns, about 120x. The 5.2x regression stayed in the ledger as a rejected change.
What changed
The ledger rule: a performance claim carries the command that produced it. Rejected changes are as important as kept ones.
The number that matters is the one with a command behind it.

Commodity flows

What a flow can and cannot tell you

The decision
Whether a physical-flow link to price survives contact with point-in-time data.
What the agents did
Evidence passes on policy transmission, storage, logistics, and basis, with two worked examples: the policy rate to the crude curve, and the milk-fat-to-protein split in dairy.
Where the expert intervened
The expert kept the claims narrow, wrote the falsifiers, and registered predictions before outcomes. The work is a method in progress, not a track record.
What was verified or killed
The programme can state what it would take to kill each link. It has not run the live test, and it says so.
What changed
Two commodity blocks with falsifiers and a repeatable framing for the next flow.
The honest count of what was tried is part of the result.

Want the underlying method, not the summary? Read how the work runs.

Start here

Bring one decision.

A 2 to 4 week sprint on a live decision. You get the decision record, the verification trail, and the method your team can run next.