Treasury Yield Curve, H1 2026: Twist, Not Shift
The rank receipt: H1 2026's twist against every prior half, by absolute sizescalar ·
2026-07-26 · 1×642
Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s printtable ·
2026-07-26 · 100×7
The 30-year's half: start, end, the first and last 5% prints, time spent at or above 5%, and the highscalar ·
2026-07-26 · 1×84.86
The 2s10s spread, every print of the halftable ·
2026-07-26 · 124×2
The 2s10s slope receipt: start, end, minimum (with its date), maximum, and print countscalar ·
2026-07-26 · 1×672
The H1 2026 move per maturity, split into quarters: the hump sits squarely on the 2-yearranking ·
2026-07-26 · 7×4
Seven maturities, three single-day snapshots: the half's first print, the last March print, and the last June printranking ·
2026-07-26 · 7×4
Market Recap: Week of June 29, 2026
Session by session: SPY close, change, and full-day volumeseries ·
2026-07-26 · 4×4
Contracts traded during the week, by expiry date (single-pass scan; batch-generated)ranking ·
2026-07-26 · 6×3
Regular-hours dollar volume, week of June 29 (one reused-symbol listing excluded pending entity verification)ranking ·
2026-07-26 · 8×3
FINRA off-exchange short volume by session: coverage and marked-short shareranking ·
2026-07-26 · 4×4
The session receipt: four traded days, one Friday closure, verified from the tapescalar ·
2026-07-26 · 1×34
The week's corporate calendar: with the June 30 filing-index gap on displayscalar ·
2026-07-26 · 1×82,221
This week against the trailing year of weeks: SPY, open-to-close within each week (rank 1 = best; short weeks excluded)scalar ·
2026-07-26 · 1×51.12
Week-over-week: the four index ETFs against the prior Friday's closetable ·
2026-07-26 · 4×5
Treasury yields through the week (July 2 print not yet ingested at generation)ranking ·
2026-07-26 · 5×4
Advancers and decliners on the week, with the liquidity filter disclosedscalar ·
2026-07-26 · 1×55,049
Market Recap: H1 2026
Slope receipts: start, end, minimum, the spread never inverted this halfscalar ·
2026-07-26 · 1×472
123 sessions in the half, verified from the tapescalar ·
2026-07-26 · 1×1123
Median quoted spread by sector ETF, one representative session (June 29, 2026), regular hoursranking ·
2026-07-26 · 11×4
The eleven sector ETFs: H1 2026 return, Q1 and Q2 split, and H1 dollar volumetable ·
2026-07-26 · 11×5
Q2 regular-hours dollar volume, whole tape (one reused-symbol listing excluded pending entity verification)ranking ·
2026-07-26 · 8×3
June: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,477.9
May: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,394.6
April: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,386.9
March: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,442.6
February: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,262.3
January: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,316.1
SPY median quoted spread on one labeled sample session per month (second Wednesdays), every NBBO updateseries ·
2026-07-26 · 6×4
SPY sessions up vs down across the half, one cheap receiptscalar ·
2026-07-26 · 1×464
H1 2026: half, Q1, and Q2 returns for the four index ETFs, computed in one querytable ·
2026-07-26 · 4×5
The leader set's half and Q2 returns plus half dollar volume: one ticker-filtered queryranking ·
2026-07-26 · 6×4
The half, month by month (SPY and QQQ, recomputed identically in one query)ranking ·
2026-07-26 · 12×4
New listings per month across the halfranking ·
2026-07-26 · 6×2
The 2s10s spread, every print of the halftable ·
2026-07-26 · 124×2
Seven maturities: yield at the start of the half vs the end, and the changeranking ·
2026-07-26 · 7×4
H1 2026's corporate calendar (all three month-end filing-index gaps disclosed)scalar ·
2026-07-26 · 1×728,356
The rank receipts: DIA and IWM against every prior first half (rank 1 = best; self-excluded)table ·
2026-07-26 · 2×6
The rank receipts: this half against every prior one (SPY and QQQ; rank 1 = best; self-excluded)table ·
2026-07-26 · 2×6
Every first half on the tape: DIA and IWM, same arithmetictable ·
2026-07-26 · 46×4
Every first half on the tape: SPY and QQQ, recomputed identically by year (per-year session counts shown)table ·
2026-07-26 · 39×4
Market Recap: June 2026
Short-interest settlements on file: May 29, June 15, and June 30ranking ·
2026-07-26 · 3×2
21 sessions, verified from the tape (Juneteenth closure receipt included)scalar ·
2026-07-26 · 1×321
Treasury yields through June: 10-year, 2-year, and the 2s10s spreadranking ·
2026-07-26 · 21×4
SPY, all 21 June sessions: close and close-over-close changeseries ·
2026-07-26 · 21×3
SPY sessions up vs down across the month, one cheap receiptscalar ·
2026-07-26 · 1×49
June 2026: open to close, range, and regular-hours turnover for the four index ETFstable ·
2026-07-26 · 4×7
June: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-26 · 1×31,477.9
June regular-hours dollar volume, whole tape (one reused-symbol listing excluded pending entity verification)ranking ·
2026-07-26 · 8×3
Ex-dividend events by day through Juneranking ·
2026-07-26 · 22×2
June's corporate calendar: dividends, splits, listings, filings (June 30 index gap disclosed)scalar ·
2026-07-26 · 1×66,651
SPY median quoted spread: the June sample session against May's (second Wednesdays)series ·
2026-07-26 · 2×4
May, recomputed identically for contrast (one scan)scalar ·
2026-07-26 · 1×31,394.6
Monthly returns, January through June 2026, recomputed live (SPY and QQQ)ranking ·
2026-07-26 · 12×4
The rank receipt: this June against every prior one (rank 1 = best; self-excluded)scalar ·
2026-07-26 · 1×5-1.2
Every June on the tape: SPY, recomputed identically by year (session counts shown)ranking ·
2026-07-26 · 23×3
Advancers vs decliners for June (close vs the last May close), liquidity filter disclosedscalar ·
2026-07-26 · 1×44,240
Market Recap: Q2 2026
62 sessions in the quarter, verified from the tape, month by monthscalar ·
2026-07-16 · 1×462
The 2s10s spread and the 10-year through Q2, dailytable ·
2026-07-16 · 63×3
SPY median quoted spread on one labeled sample session per month of the quarter (second Wednesdays)series ·
2026-07-16 · 3×4
SPY sessions up vs down across the quarter, one cheap receiptscalar ·
2026-07-16 · 1×436
June: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-16 · 1×31,477.9
May: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-16 · 1×31,394.6
April: whole-tape options contract volume and same-day-expiry share (one scan)scalar ·
2026-07-16 · 1×31,386.9
Q2 month by month: April, May, June (SPY and QQQ, recomputed identically)ranking ·
2026-07-16 · 6×4
Q2 regular-hours dollar volume, whole tape (one reused-symbol listing excluded pending entity verification)ranking ·
2026-07-16 · 8×3
Listings, splits, and ex-dividend events by month through the quarterranking ·
2026-07-16 · 3×4
Q2's corporate calendar (the June 30 filing-index gap disclosed)scalar ·
2026-07-16 · 1×615,402
Q2 2026 returns for the four index ETFs, with Q1 recomputed live for contrastranking ·
2026-07-16 · 4×4
The rank receipts: this quarter against every prior second quarter (rank 1 = best; self-excluded)table ·
2026-07-16 · 2×6
Every second quarter on the tape: SPY and QQQ, recomputed identically by year (session counts shown)table ·
2026-07-16 · 40×4
The rank receipt: H1 2026's twist against every prior half, by absolute size
The rank receipt: H1 2026's twist against every prior half, by absolute size
h1 2026 twist bp
42
rank by magnitude
42
halves compared
100
first year
1,976
halves with inversion
28
last inverted half start
2024-07-01
the exact SQL behind every number
SELECT
round(anyIf(twist, period_start = '2026-01-01'), 0) AS h1_2026_twist_bp,
arrayCount(x -> abs(x) > abs(anyIf(twist, period_start = '2026-01-01')), groupArrayIf(twist, period_start != '2026-01-01')) + 1 AS rank_by_magnitude,
count() AS halves_compared,
toUInt16OrZero(substring(min(period_start), 1, 4)) AS first_year,
countIf(min_2s10s < 0) AS halves_with_inversion,
max(if(min_2s10s < 0, period_start, '')) AS last_inverted_half_start
FROM (
SELECT concat(toString(toYear(date)), if(toMonth(date) <= 6, '-01-01', '-07-01')) AS period_start,
count() AS prints,
(argMax(yield_2_year, date) - argMin(yield_2_year, date)) * 100
- (argMax(yield_10_year, date) - argMin(yield_10_year, date)) * 100 AS twist,
min(yield_10_year - yield_2_year) * 100 AS min_2s10s
FROM global_markets.treasury_yields
WHERE date >= toDate('1976-07-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_2_year) AND isNotNull(yield_10_year)
GROUP BY period_start
HAVING prints >= 100
)
More from this analysisTreasury Yield Curve, H1 2026: Twist, Not Shift
The 30-year's half: start, end, the first and last 5% prints, time spent at or above 5%, and the high
scalar 1×8
→
The 2s10s slope receipt: start, end, minimum (with its date), maximum, and print count
scalar 1×6
→
The 2s10s spread, every print of the half
table 124×2
→
Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print
table 100×7
→
See all 2,170 queries →