Treasury Yield Curve H1 2026 twist analyse
Analyse van de Treasury yield curve in H1 2026: een twist die het midden steeg terwijl de uiteinden stabiel bleven en de 2s10s spread niet inverterde.
De Treasury yield curve onderging in de eerste helft van 2026 een twist in plaats van een verschuiving. Tussen de eerste meting in januari en de laatste meting in juni steeg de 2-year yield met 67 basis points, terwijl de 1-month bill met -2 bewoog en de 30-year bond slechts met 5 — het midden van de curve steeg, terwijl beide uiteinden nagenoeg onveranderd bleven. Over dezelfde zes maanden vlaste de 2s10s spread af van 72 naar 30 basis points zonder ooit te inverteren. Deze pagina bevat het volledige overzicht van de rentes voor deze helft: de curve op drie momenten, de twist per looptijd, het dagelijkse 2s10s pad, de 30-year boven de 5%, en vijftig jaar aan halfjaarlijkse twists om deze te vergelijken. Elk getal is een resultaat van een opgeslagen query — klik op een paneel voor de SQL-code.
Wat een twist is — en waarom het verschilt van een shift
Een parallel shift beweegt elke looptijd met ongeveer hetzelfde bedrag: de gehele curve schuift omhoog of omlaag en de vorm blijft behouden. Een twist beweegt verschillende looptijden met verschillende bedragen, waardoor de vorm zelf verandert. Dit onderscheid is van belang wanneer u de verschillende onderdelen van de curve als afzonderlijke instrumenten analyseert. Het uiterste begin — bills met een looptijd van enkele weken — handelt dicht bij de huidige beleidsrente. Het lange deel is een visie van decennia op groei en inflatie, en kan ongewijzigd blijven ondanks maandenlange volatiliteit aan de korte kant. Het midden — waarbij de 2-year de klassieke graadmeter is — is de plek waar de verwachte beleidscurve voor de komende twee jaar opnieuw wordt geprijsd. Een halfjaar waarin het midden met twee derde punt stijgt terwijl beide uiteinden stabiel blijven, betekent dat de markt het pad voor de korte rente hertekent en het langetermijnbeeld ongewijzigd laat.
De curve op drie momenten: januari, maart, juni
De duidelijkste manier om een twist te zien, is door de gehele curve op intervallen te fotograferen en de beelden naast elkaar te leggen. De onderstaande tabel bevat drie dagelijkse snapshots — de eerste print van het eerste halfjaar, de laatste print van maart en de laatste print van juni — verspreid over zeven looptijden.
De exacte SQL achter elk getal
WITH
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date ASC LIMIT 1) AS jan_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-03-31') ORDER BY date DESC LIMIT 1) AS mar_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date DESC LIMIT 1) AS jun_row
SELECT z.1 AS maturity, z.2 AS jan_pct, z.3 AS mar_pct, z.4 AS jun_pct
FROM (
SELECT arrayJoin(arrayZip(['1-month','3-month','1-year','2-year','5-year','10-year','30-year'],
[jan_row.1, jan_row.2, jan_row.3, jan_row.4, jan_row.5, jan_row.6, jan_row.7],
[mar_row.1, mar_row.2, mar_row.3, mar_row.4, mar_row.5, mar_row.6, mar_row.7],
[jun_row.1, jun_row.2, jun_row.3, jun_row.4, jun_row.5, jun_row.6, jun_row.7])) AS z
)De foto van januari vertoont geen strakke stijgende lijn. De eerste print van het jaar voor de 2-year, 3.47%, lag onder de 3.72% van de 1-month bill — een deuk in het midden van de curve, waarbij het dieptepunt lag bij de looptijden die de nabije beleidscijfers bepalen. Tegen de laatste print van maart was de 2-year gestegen naar 3.79%, en tegen de laatste print van juni was de deuk volledig verdwenen: de 2-year stond op 4.14%, boven elke bill maturity in de tabel, en de yields stegen bij elk punt verderop in de curve, eindigend met de 30-year op 4.91%. Zes maanden veranderden een deuk in de curve in een conventioneel stijgende curve — niet door alles omhoog te bewegen, maar door de deuk op te heffen.
De twist, per looptijd
Trek het overzicht van januari af van dat van juni en de twist vertoont een eigen vorm: een bult gecentreerd rond de 2-year, die aan beide uiteinden afloopt naar nul. Het paneel splitst de beweging van elke looptijd in de -2 en 5 legs.
De exacte SQL achter elk getal
WITH
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date ASC LIMIT 1) AS jan_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-03-31') ORDER BY date DESC LIMIT 1) AS mar_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date DESC LIMIT 1) AS jun_row
SELECT z.1 AS maturity,
round((z.3 - z.2) * 100, 0) AS q1_change_bp,
round((z.4 - z.3) * 100, 0) AS q2_change_bp,
round((z.4 - z.2) * 100, 0) AS h1_change_bp
FROM (
SELECT arrayJoin(arrayZip(['1-month','3-month','1-year','2-year','5-year','10-year','30-year'],
[jan_row.1, jan_row.2, jan_row.3, jan_row.4, jan_row.5, jan_row.6, jan_row.7],
[mar_row.1, mar_row.2, mar_row.3, mar_row.4, mar_row.5, mar_row.6, mar_row.7],
[jun_row.1, jun_row.2, jun_row.3, jun_row.4, jun_row.5, jun_row.6, jun_row.7])) AS z
)De 67 basis points van de 2-year is de grootste beweging in het paneel — groter dan de 51 van de 1-year, de 45 van de 5-year en de 25 van de 10-year, en een factor tien groter dan de uiteinden. De splitsing per kwartaal laat zien dat de stijging gestaag was in plaats van een enkele ruk: 32 basis points in het eerste kwartaal en 35 in het tweede. Wat de middelste sectie van de curve opnieuw heeft geprijsd, deed dit gedurende beide kwartalen, rapportage voor rapportage — de dagelijkse reeks hieronder bevestigt dit op een gedetailleerder niveau.
Is de 2s10s spread in H1 2026 geïnverteerd?
Nee — en de gegevens laten precies zien hoe dichtbij de inversie kwam. De tabel met één rij bevat de grenswaarden voor het halve jaar; de grafiek daaronder toont elke dagelijkse print.
De exacte SQL achter elk getal
SELECT
round((argMin(yield_10_year - yield_2_year, date)) * 100, 0) AS start_bp,
round((argMax(yield_10_year - yield_2_year, date)) * 100, 0) AS end_bp,
round(min(yield_10_year - yield_2_year) * 100, 0) AS min_bp,
argMin(toString(date), (yield_10_year - yield_2_year, date)) AS min_date,
round(max(yield_10_year - yield_2_year) * 100, 0) AS max_bp,
count() AS prints
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)De spread tussen de 10-jarige en 2-jarige yields begon het halve jaar op 72 basis points, werd nooit breder dan 74, en eindigde in juni op 30. Het laagste punt was 27 basis points, geregistreerd op 2026-06-18 — de dichtstbijzijnde benadering van een inversie, maar nog steeds duidelijk positief. Lezers die alleen het antwoord op de vraag over de inversie zoeken, kunnen hier stoppen; het verloop is relevant voor een andere vraag.
De exacte SQL achter elk getal
SELECT toString(date) AS d, round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY dateWas de flattening een plotselinge gebeurtenis of een geleidelijk proces? De dagelijkse reeks geeft antwoord: 124 prints die dalen van 72 basis points op 2026-01-02 naar 30 bij de sluiting in juni, zonder dat er ergens in de reeks sprake was van een instorting op één enkele dag. Een flattening die stap voor stap optreedt, is een langzame repricing; een flattening die binnen een week plaatsvindt, heeft meestal een specifieke datum. Deze was een grind.
De 30-year en de 5% lijn
De helft van de long bond oogt rustig in de kolom met veranderingen — 5 basis points van begin tot eind — maar het verloop bereikte een niveau dat vermeldenswaardig is. De onderstaande tabel meet dit verloop.
De exacte SQL achter elk getal
SELECT
round(argMin(yield_30_year, date), 2) AS start_pct,
round(argMax(yield_30_year, date), 2) AS end_pct,
toString(minIf(date, yield_30_year >= 5)) AS first_5_date,
toString(maxIf(date, yield_30_year >= 5)) AS last_5_date,
countIf(yield_30_year >= 5) AS prints_at_or_above_5,
round(max(yield_30_year), 2) AS high_pct,
argMax(toString(date), (yield_30_year, date)) AS high_date,
count() AS prints
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_30_year)De 30-year begon de helft op 4.86%, stond voor het eerst op of boven 5% op 2026-05-04, bracht 16 van de 124 prints van de helft op of boven die lijn door, bereikte een piek van 5.18% op 2026-05-19, en sloot weer onder dit niveau af op 4.91%. Ronde getallen hebben geen speciale mechanica, maar 5% op de 30-year is een niveau dat mortgage desks en pensioenallocators hanteren, en de conclusie van de markt is specifiek: de periode op of boven dit niveau liep van 2026-05-04 tot 2026-06-10 — een episode van begin mei tot medio juni binnen een vlakke helft die een schommeling van een derde punt kende.
Vijftig jaar aan halfjaarlijkse twists
Is een twist als deze zeldzaam? Een halfjaarlijkse twist wordt gedefinieerd als het verschil tussen de verandering van de 2-year en de 10-year — positieve waarden betekenen dat de front-end sneller steeg (of minder daalde) dan de long end, wat duidt op een flattening aan de front-end. Het panel berekent dit getal voor elk halfjaar sinds 1976, het eerste jaar waarin de 2-year en 10-year series een volledig halfjaar lang samen worden weergegeven, inclusief de laagste 2s10s-waarde van elk halfjaar.
De exacte SQL achter elk getal
SELECT concat(toString(toYear(date)), if(toMonth(date) <= 6, '-01-01', '-07-01')) AS period_start,
concat(toString(toYear(date)), if(toMonth(date) <= 6, ' H1', ' H2')) AS half,
count() AS prints,
round((argMax(yield_2_year, date) - argMin(yield_2_year, date)) * 100, 0) AS change_2y_bp,
round((argMax(yield_10_year, date) - argMin(yield_10_year, date)) * 100, 0) AS change_10y_bp,
round((argMax(yield_2_year, date) - argMin(yield_2_year, date)) * 100
- (argMax(yield_10_year, date) - argMin(yield_10_year, date)) * 100, 0) AS twist_bp,
round(min(yield_10_year - yield_2_year) * 100, 0) AS min_2s10s_bp
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, half
HAVING prints >= 100
ORDER BY period_start ASCDe exacte SQL achter elk getal
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
)De twist in H1 2026 bedraagt 42 basis points, wat een rangschikking oplevert van 42 van de 100 halfjaarlijkse periodes op basis van absolute grootte — middenveld, geen uitschieter. De tabel bevat halfjaarlijkse periodes die zowel in positieve als negatieve richting drie tot vier keer zo groot zijn. Wat dit halfjaar onderscheidt, is de omkering van de richting: in beide helften van 2025 DAALDE de 2-year (-53 basis points in H1 2025, -31 in H2), en H1 2026 reageerde met een stijging van 67 basis points — het midden van de curve veranderde van richting bij de jaarwisseling. De inversie-kolom plaatst het halfjaar in zijn tijdperk: 28 van de 100 halfjaarlijkse periodes vertoonde op een bepaald moment een negatieve 2s10s, en de meest recente daarvan begon in 2024-07-01 — het einde van de langdurige inversie van 2022–2024. De bodem van H1 2026 op 27 basis points zorgde ervoor dat het volledig buiten die groep bleef.
De impact van een vlakkere curve
Een twist zoals deze uit zich op drie plaatsen buiten de obligatiemarkt, beschreven als mechanische gevolgen in plaats van voorspellingen. Hypotheken: 30-jarige vaste hypotheken worden doorgaans gekwantificeerd tegen een spread boven de 10-year Treasury yield. De 10-year eindigde het halfjaar op 4.44% — een beweging van 25 basis points, een fractie van die van de 2-year. Een twist die geconcentreerd is in de 2-year heeft veel minder invloed op de hypotheekprijzen dan een parallelle verschuiving van dezelfde omvang. Bankmarges: banken financieren doorgaans tegen korte rentes en lenen uit tegen langere rentes. Een afvlakking verkleint het verschil tussen deze twee rentes — de grondstof voor de net interest margin. Recessie-arithmetiek: een geïnverteerde 2s10s ging vooraf aan eerdere Amerikaanse recessies, wat de reden is dat de spread aandacht trekt. Dit halfjaar heeft er geen een laten zien; de bodem lag op 27 basis points. Of dit iets zegt over de toekomst is een voorspelling, en deze pagina doet geen voorspellingen.
Een opmerking over de veilingkalender
De bovenstaande panelen tonen geen aanbod, maar het ritme achter deze gegevens is relevant. De Treasury verkoopt elke maand 2-, 5- en 7-jarige notes. De 10-jarige en 30-jarige notes worden geveild volgens de quarterly refunding cycle, met tussentijdse reopenings. Elke yield hier is een marktprijs die wordt vastgesteld tegenover die constante kalender van nieuwe emissies. Resultaten op veilingniveau (bid-to-cover ratios, tails) zijn niet opgenomen in deze dataset. Deze pagina doet daarom geen uitspraken over de vraag bij een specifieke verkoop.
FAQ
Did the Treasury yield curve invert in 2026?
Not in the first half. The 2s10s spread's lowest print of H1 2026 was 27 basis points, on 2026-06-18 — it started the year at 72 and ended June at 30, flatter but positive throughout.
What is a yield-curve twist?
A change in the curve's shape rather than its level: different maturities move by different amounts. In H1 2026 the 2-year rose 67 basis points while the 1-month and 30-year moved single-digit amounts — a twist centered on the curve's belly, as opposed to a parallel shift that moves everything together.
How much did the 2-year Treasury yield rise in 2026?
67 basis points across the first half — from 3.47% at the first January print to 4.14% at the last June print, split 32 and 35 across the two quarters.
When did the 30-year Treasury yield cross 5%?
Its first H1 2026 print at or above 5% came on 2026-05-04. It peaked at 5.18% on 2026-05-19 and ended the half back below the line at 4.91%.
When was the US yield curve last inverted?
By this page's half-by-half accounting, the most recent half-year containing an inverted 2s10s print began 2024-07-01. In total, 28 of 100 halves since 1976 printed a negative 2s10s at least once.
The equity, sector, and options ledgers of the same six months live in the H1 2026 market recap, and the macro releases the half traded against are in the macro picture entering H2. Every panel above is reproducible — paste the SQL into the Strasmore terminal and run it against the same tables.
Methodologie
- De begin- en eindwaarden zijn de eerste en laatste prints per maturity tussen 1 januari en 30 juni 2026, geselecteerd op datum via de query; de snapshots zijn rijen van één dag (de eerste print van het halfjaar, de laatste print van maart, de laatste print van juni), waarbij alle zeven maturities op die data volledig zijn ingevuld.
- De halfjaarlijkse historie koppelt de 2-year en 10-year vanaf 19 juli 1976 — het eerste volledige halfjaar waarin beide series samen worden geprint. Halven met minder dan honderd gezamenlijke prints worden uitgesloten door een in-query guard; het aantal prints per halfjaar wordt in de tabel weergegeven. De bovengrens van de historie is vastgesteld op 30 juni 2026, waardoor de vergelijkingsset niet groter wordt wanneer er later nieuwe data beschikbaar komt.
- Bij gelijke waarden worden extremen deterministisch opgelost (waarde–datum tuples), zodat regeneratie de datum bij een gelijkwaardige print niet kan veranderen.
- De generatie verloopt via het gated read-only pad; de publieke pagina voert nooit een live query uit. Status van het warehouse per 12 juli 2026.