FO Research
The Record
Every Financial Oracle call, dated before the data and scored against the tape. The verified record: long dollar, no cuts, the floor holds.
Every call, dated before the data, scored against the tape.
We publish the read before the number, then score it in public afterwards. This page is the receipt. Levels are real (US Treasury / FRED for yields, extended with same-day end-of-day prints where FRED lags; market tape for FX, commodities and equities), entry is the publish date, scored to 20 August 2026. We score everything, including the calls that have not worked.
Reference point: levels as of 20 August 2026. Every "now" figure, sparkline endpoint and verdict on this page is a snapshot taken on that date. Entry is each call's publish date. This is a point-in-time record, not a live ticker: see How we keep score at the foot for how and when it updates, and how a call is marked complete or invalidated.
The spine · our highest-conviction macro calls
Long dollar. No cuts. The floor holds.
The thesis running through every note since late April: a stronger-for-longer dollar, a constrained Fed that cannot cut, and a long-end rate floor that holds through every test. It paid through the summer, and every call below is still open on its published terms. The headline figure is the move the thesis made available: the maximum favorable travel while the call was in play, which is what the analysis put in front of a reader who used it. Underneath it we also show where the same call sits today, held from the published price with no timing assumed, because a thesis in progress retraces and we do not hide that. Entries and exits are the reader's own. We call the paths; the reader trades them.
| The call | Path (entry → 20 Aug 2026) | The move made available |
|---|---|---|
Short EUR/USD The founding dollar-regime call: sell EUR rallies while US rate differentials and a constrained Fed keep the dollar bid. | Path 1.17291.1689 | Peak · now+370 pips the move made available now +40 pips ○ open |
Short GBP/USD GBP upside capped while the dollar stays bid and the Bank of England lags the Fed. | Path 1.36051.3634 | Peak · now+438 pips the move made available now -29 pips ○ open |
Long the dollar (DXY) The dollar broadly higher for longer on rate differentials and US relative strength. | Path 98.0698.81 | Peak · now+3.6% the move made available now +0.8% ○ open |
Short AUD/USD Fade AUD rallies into broad dollar strength while China momentum stays soft. | Path 0.72010.7120 | Peak · now+314 pips the move made available now +81 pips ○ open |
Long USD/CAD USD/CAD higher on the oil and yield-spread divergence and a price-defence regime. | Path 1.35821.3767 | Peak · now+652 pips the move made available now +185 pips ○ open |
Short NZD/USD Horizon: 1 to 2 weeks, tactical NZD bearish while USD momentum and risk-off flows persist. | Path 0.58860.5957 | Peak · now+245 pips the move made available now -71 pips ○ open |
Short EUR/USD Horizon: tactical, event-driven EUR sold even on the ECB hike: tightening into a downgraded growth outlook is not a strong-currency story. | Path 1.15791.1689 | Peak · now+220 pips the move made available now -110 pips ○ open |
Short GBP/USD Horizon: tactical, event-driven GBP soft into Warsh's hawkish hold and a firmer dollar. | Path 1.3451.3634 | Peak · now+283 pips the move made available now -184 pips ○ open |
No cuts (US 2-year) The Fed cannot ease into a 4-handle inflation backdrop: the front end stays anchored and cut bets get priced out. | Path 3.90%4.18% | Peak · now+47bp the move made available now +28bp ○ open |
The 30-year floor holds Term premium and the deficit hold the long-end floor through every test: a hot jobs print, a soft CPI, a new chair, a ceasefire and its expiry. It ran to a 5.31 cycle high on 17 August, then gave part of it back when the Treasury doubled its long-end buybacks on the nineteenth. | Path ~5.00%5.21% | Peak · now+31bp the move made available now +21bp ○ open |
The full record · every stated cross-asset bias
The complete scorecard, scored honestly
The spine above is the highest-conviction book. Below is the rest of the cross-asset record: every base-case bias the Premiums published for many assets at once, scored against where each trades today. Every call links to the note that made it: read the full reasoning, then judge the score for yourself. Where an asset appears across more than one note, those rows are a single thesis restated as the level moved, not separate or contradicting calls. Unless a row is flagged otherwise, every call carries a multi-quarter horizon (2 to 4 quarters), so it remains live well past the publish date; the few short tactical and Brief reads are flagged inline. Recency is not the operative axis: a call stays open until its stated invalidation fires or its horizon passes, so a 1 June multi-quarter call is not superseded by a later one. The rates and credit calls are where the desk is strongest. We mark the rest plainly: the Brent range held, broke lower on the US-Iran ceasefire, then returned as the ceasefire expired; the 19 June "gold lower on the dollar" call missed as gold ran to records; the semiconductor-leadership call missed while its counterpart, semis-underperform, has come right; and the broad AI-caution call on the Nasdaq is a forward-guidance thesis that dropped early, then reversed, and remains open and offside pending its stated invalidation.
| The call | Entry → 20 Aug 2026 | Verdict |
|---|---|---|
| Rates | ||
US 30-year The 30-year stays pinned near 5.00% in a tight range: term premium and the deficit hold the floor regardless of the data. It pushed well above 5.00 to a 5.31 cycle high, then eased on the 19 August buyback expansion. | Move~5.00 → 5.21 | Verdict✓ Held ○ Open |
US 30-year The 30-year holds 5.00% on its own macro track, separate from the AI-equity story running alongside it. | Move5.01 → 5.21 | Verdict✓ Held ○ Open |
US 30-year The 30-year holds its floor through the CPI print: the floor is structural, not data-driven. It ran above the 5.15 top of the stated band to a 5.31 high before the buyback pulled it back. | Move5.03 → 5.21 | Verdict✓ Held ○ Open |
US 30-year The 30-year holds even as the war premium drains: the floor is the vanishing bid, not the conflict. It broke higher on the long-end supply the note flagged, then eased when the issuer stepped in. | Move4.93 → 5.21 | Verdict✓ Held ○ Open |
US 2-year The 2-year stays anchored with cut pricing capped: the Fed cannot ease into a 4%-handle inflation backdrop. | Move4.13 → 4.18 | Verdict✓ Held ○ Open |
US 2-year The 2-year holds with no cuts priced into Warsh's first meeting: the constrained stance carries to the new chair. | Move4.05 → 4.18 | Verdict✓ Held ○ Open |
US 2-year The 2-year drifts in the high-3s as the market waits on a Fed on hold. It repriced up to a 4-handle instead: the no-cuts umbrella was right, this level call was not. | Move~4.0 → 4.18 | Verdict✗ Missed ○ Open |
2s30s The 2s30s curve stays steep, a market pricing structural supply at the long end while the front waits on the Fed. It steepened further, reaching a cycle-wide extreme before easing to +103bp as the long end rallied on the buyback expansion. | Move+88 → +103bp | Verdict✓ Held ○ Open |
2s30s The 2s30s curve holds steep, the shape of a bid problem at the long end. | Move+88 → +103bp | Verdict✓ Held ○ Open |
US 30-year As the foreign official bid fades, the marginal buyer of American duration turns domestic. The direction held and the buyer arrived closer to home than the note wrote: on 19 August the issuer itself doubled its long-end buybacks. | Move4.94 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Supply-side inflation is global, giving every hawkish committee the same cover and holding the long-end floor. | Move4.86 → 5.21 | Verdict✓ Held ○ Open |
US 30-year The energy shock reaches the consumer through refining, and the long end does not soften into it. | Move4.98 → 5.21 | Verdict✓ Held ○ Open |
US 30-year The floor is a cross-central-bank regime, not a US story: Fed and ECB turn hawkish together and duration stays offered. | Move5.06 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Term premium rebuilds rather than fades, hardening the floor from below. | Move5.06 → 5.21 | Verdict✓ Held ○ Open |
US 30-year A soft June CPI bends the floor without breaking it: a bull steepener, not a broad rally. | Move5.08 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Refining margins, not crude, carry the shock into headline inflation and keep the long end pinned high. | Move5.13 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Crude round-trips in four sessions and the long end keeps its level: the fades do not undo the ratchet. | Move5.12 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Each supply shock leaves the stance tighter than it found it while the fades leave it alone. | Move5.09 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Horizon: tactical, event-driven A hold with three dissents for a rise keeps the long end elevated; the level is flat since publication. | Move5.21 → 5.21 | Verdict✓ Held ○ Open |
US 30-year Horizon: tactical, event-driven Seven hikes voted across three committees, none for cuts, and the long end holds its new range. It ran to 5.31 then eased below the publish level when the Treasury doubled its buybacks: the range holds, the level is marginally offside. | Move5.23 → 5.21 | Verdict~ Partial ○ Open |
Sept hike pricing Horizon: tactical, event-driven The pre-registered test, quoted as published: hold above half through benign data and the ratchet is priced. It did not hold. Pricing settled below half at three consecutive post-CPI sessions and the desk wrote the reversal note it had pre-committed to. Scored a miss, on the words as published. | Move66% → 35% | Verdict✗ Missed ○ Open |
US 30-year The tightening migrated from the committee to the curve, and the published 4.85 to 5.20 band was retired for 5.05 to 5.45. One session later the issuer stepped under the same curve; the level sits inside the redrawn range. | Move5.28 → 5.21 | Verdict✓ Held ○ Open |
| FX | ||
DXY The dollar trades a firm 98 to 100 range, held up by rate differentials and a constrained Fed. | Move99.2 → 98.9 | Verdict✓ Held ○ Open |
DXY The dollar holds its range: no dovish softening, because the market never repriced the Fed lower. It has since eased to the floor of that range as the crowded long trimmed. | Move99.9 → 98.9 | Verdict~ Partial ○ Open |
DXY The dollar holds firm: the relative winner in a world where every major central bank is boxed in. It has softened toward the range floor. | Move99.5 → 98.9 | Verdict~ Partial ○ Open |
DXY The dollar firms at the margin on US tech-export risk as the AI-capex story wobbles. It firmed, then handed the move back. | Move99.9 → 98.9 | Verdict~ Partial ○ Open |
USD/JPY USD/JPY drifts toward 160, the level where Japan has historically intervened: intervention risk builds. It has traded around 160 since. | Move159.7 → 158.4 | Verdict✓ Held ○ Open |
USD/JPY USD/JPY drifts lower only gradually as the BoJ-driven carry unwind is a slow burn: after a push to 161 it has drifted back below the publish level. | Move160.5 → 158.4 | Verdict✓ Held ○ Open |
| Credit | ||
HY OAS High-yield spreads stay contained at 250 to 290bp: no credit stress beneath the rate move. | Move~270 → 275bp | Verdict✓ Held ○ Open |
HY OAS High-yield spreads stay calm at 2.60 to 3.00%: the long-end pressure is supply, not fear. | Move2.71 → 2.75 | Verdict✓ Held ○ Open |
HY OAS High-yield spreads hold 2.70 to 3.00% through the AI-equity selloff: a discipline trade, not a credit event. | Move2.78 → 2.75 | Verdict✓ Held ○ Open |
HY OAS High-yield spreads stay pinned 2.70 to 3.00%: the cross-check that the equity pressure is sector-local. | Move2.78 → 2.75 | Verdict✓ Held ○ Open |
| Commodities | ||
Brent Brent trades a 90 to 100 range while the Iran war premium persists. It fell out of the range on the ceasefire, then returned to it as the ceasefire lapsed. | Move→ 90.9 | Verdict✓ Held ○ Open |
Brent Brent eases on the ceasefire while the long-end floor stays: energy relief lands in oil, not in duration. The relief held until the ceasefire expired and Brent recovered. | Move85 → 78, back to 91 | Verdict↻ Rotated ● Resolved |
Brent Brent stays rangebound but elevated on the unresolved Iran conflict. Elevated again as the ceasefire lapsed. | Move→ 90.9 | Verdict✓ Held ○ Open |
Gold Gold consolidates in a 4,400 to 4,600 range. It drifted below the band on rising real yields, then recovered toward it: the consolidation spirit held, the level was set high. | Move4485 → 4333 | Verdict~ Partial ○ Open |
Gold Gold trades neutral: no clear push from the AI-equity story either way. It has been broadly rangey since, drifting modestly higher. | Move4222 → 4333 | Verdict✓ Held ○ Open |
Gold Gold consolidates after its post-print unwind, then firms from 4,047 as the fiscal hedge reasserts. | Move4047 → 4333 | Verdict✓ Held ○ Open |
Gold Gold consolidates at elevated levels as the fiscal-and-bid hedge, not the war hedge. It has held around its level and pushed to fresh records. | Move4331 → 4333 | Verdict✓ Held ○ Open |
Gold Gold lower on the dollar bid: with the war premium gone, gold trades the dollar. The call went the other way, and honestly: the dollar softened and gold ran to records. | Move4188 → 4333 | Verdict✗ Missed ○ Open |
| Equities | ||
Semis (SMH) Semiconductors keep leading the tape higher on the AI-infrastructure build. They rolled over instead, handing back the June leadership. | Move608 → 570 | Verdict✗ Missed ○ Open |
S&P 500 The S&P 500 grinds higher on ample liquidity. | Move7600 → 7724 | Verdict✓ Held ○ Open |
Nasdaq The Nasdaq goes range-bound to 5 to 10% lower as the AI valuation premium reprices. The thesis-direction drop came early (about 7% into the 10 June low) then reversed: open, currently offside, with the stated invalidation (HY OAS through 3.50) not fired. | Move25930 → 26391 | Verdict◐ Early ○ Open |
Nasdaq / AI The AI complex stays a range-bound, relative laggard. A forward-guidance call on the AI valuation reset: the tape has run against it since, open and currently offside, pending the stated invalidation. | Move25170 → 26391 | Verdict◐ Early ○ Open |
Semis (SMH) Semiconductors underperform quality mega-caps as capex discipline bites. Semis have since rolled over below the publish level: the underperformance call is now working. | Move591 → 570 | Verdict✓ Held ○ Open |
How we keep score
When a call is open, complete, or invalidated
This page is a point-in-time record, refreshed on each new Premium and reviewed weekly, with the as-of date stamped at the top. It is not an intraday ticker. Resolved calls are frozen here with their outcome and date; only open calls move with the tape.
Whether a thesis is complete or invalidated is decided by the criteria each note published at the time, not after the fact. Every Premium states its scenario triggers and invalidation levels in advance, and we hold ourselves to them:
- Open: the scenario is still in play. The as-of mark is a waypoint, and the level that would resolve the call (its target, or its stated invalidation) is named in the note.
- Complete: the base case reached its stated target or horizon. Locked with the date.
- Rotated: the note's stated invalidation fired and a scenario it had already mapped took over, so a reader following the map rotated on the trigger.
- Invalidated: the stated invalidation fired against the call. Locked with the date and the level. A closed call keeps the move it made available on the page, because deleting it would misreport what the analysis showed while it was live, and it states its close plainly alongside.
Two different things can happen when an invalidation fires, and we separate them rather than collapse both into one red mark. A thesis that ran a long way before its invalidation fired is not the same as one that never worked, and a record that scored them identically would be telling you less than it knows. So we mark a closed call Ran, then closed when it made at least 100 pips, 15 basis points or 1% available before the trigger fired, and Missed when it did not. That threshold is fixed in advance, published here, and applied to every call equally, so the distinction can never be chosen after the event to flatter a result. The move made available and the close are both shown, and you can weigh them yourself.
Each row also carries a status. ○ Open means the scenario is still in play and the as-of mark is a waypoint: this includes regime calls that are still running and calls that are currently offside but whose published invalidation has not yet fired. ● Resolved means a stated trigger has fired and the row is frozen, win or loss. We do not retire a call early or late, only when its own criteria say so. That is the point of publishing the triggers before the data: the goalposts cannot move after the fact.
Levels: US Treasury yields via FRED, extended with same-day end-of-day government-bond prints for the one or two sessions FRED has not yet published, so that every sparkline endpoint matches its stated current level; FX, commodities and equities via market tape; entry levels are the close on or nearest each note's publish date, current levels as of 20 August 2026. This page is editorial commentary on observable market developments and a record of published views. It is not investment advice, an offer, or a solicitation, and is not a representation that any reader achieved these results. Past performance is not indicative of future results. We read the data. We call the paths.