FAQ
What's the “sweet spot”?
The tenor on the curve at which total expected return (carry + roll-down, under a static-curve assumption) is maximised for the chosen holding horizon. See Methodology.
What does “static-curve assumption” mean?
It assumes the yield curve at horizon end has the same shape as today's. This is an idealisation — useful as a relative-value baseline, not a forecast of realised return.
Which currencies does CarryCurve cover?
Four sovereign curves: UK gilts (GBP) from the Bank of England, US Treasuries (USD) from the US Treasury, Government of Canada bonds (CAD) from the Bank of Canada, and Euro-area AAA-rated government bonds (EUR) from the European Central Bank. Free users see the 1M sweet spot on all four; Pro unlocks 3M / 6M / 1Y on every currency, the custom horizon slider, and the cross-curve ranking view.
What does the “Native” vs “Bootstrapped” badge mean?
Three of the four sources (BoE, BoC, ECB) publish zero-coupon spot curves that CarryCurve reads directly — methodology tag Native. The US Treasury publishes a par yield curve at 14 fixed CMT tenors, which CarryCurve bootstraps to zero-coupon rates before applying the math — methodology tag Bootstrapped. Both produce continuously-compounded zeros suitable for the static-curve calculation. The Bootstrapped tag flags that an additional preprocessing step happens; see USD methodology for the full bootstrap pipeline and a worked example.
Why does the CAD row show “10 business days ago”?
That's normal, not an error. The Bank of Canada publishes its zero-coupon yield curve weekly on Thursdays, with a structural two-week lag — on any given Thursday, the most recent row in the BoC CSV is dated roughly two weeks prior. CarryCurve makes this freshness explicit per row so you're never misled into reading a stale value as today's. The stale-data alert thresholds are set per publisher to accommodate each one's natural cadence: CAD 16 business days (BoC's two-week structural lag plus one business day of grace), GBP 3, EUR 3, and USD 2.
Why is the EUR curve called “AAA-rated”?
The ECB publishes two euro-area yield curves: one across all euro-area sovereign issuance, and one restricted to issuers currently rated AAA by major rating agencies. CarryCurve uses the AAA-rated curve, which in recent years effectively means Germany, the Netherlands, and Luxembourg. It is not "the euro-area sovereign curve" generally — French, Italian, and Spanish issuance is excluded. This matters for cross-curve comparison: AAA-EUR vs Treasury-USD vs Gilt-GBP mixes different credit qualities loosely speaking, and the methodology badge on the EUR row reminds the reader of that.
Why is the USD curve “bootstrapped”?
The US Treasury publishes a par yield curve — the bond-equivalent yields at which hypothetical Treasury bonds at fixed maturities would trade at par. These are not zero-coupon spot rates, and CarryCurve's math (a static-curve log return) requires zero rates. The bootstrap derives the zero curve from the par yields step by step: short-end bills use the BEY-implied direct formula; longer tenors use the standard coupon-bond bootstrap. The full procedure plus a re-priced worked example (every input par bond reprices to par ± 0.01 with the bootstrapped zeros) is at /methodology/usd.
What is the cross-curve ranking?
A top-level Pro view (at /cross-curves) that ranks today's sweet-spot total expected return across UK gilts, US Treasuries, Government of Canada bonds, and Euro-area AAA bonds, for the chosen holding horizon. It shows the ranking as a bar chart (magnitude at a glance) plus a curve-overlay chart (where each currency's sweet spot sits relative to its full carry-return profile) plus a precision table. You can also replay the ranking on any past business day to see how it has evolved.
Why doesn't the cross-curve view adjust for FX hedging cost?
v2.0 shows gross local-currency carry only. A USD-based investor in gilts would receive UK gross carry minus the cost of hedging GBP into USD; that hedge cost is not shown. The reason is simple: doing FX-hedged comparison properly requires cross-currency basis-swap pricing, which is an additional data dependency (and a regulated activity to source from commercial vendors). FX-hedged comparison is on the v2.1 roadmap. Until then, the cross-curve view is best read as "where is gross local-currency carry richest" — a methodologically clean comparison that doesn't pretend to be a tradable trade idea.
Why is the percentile sometimes blank?
The percentile feature requires at least 6 months of historical sweet-spot data for that currency × horizon. Below that, the sample is too small for a meaningful reading and the value is suppressed. Percentiles are computed per currency against that currency's own 10-year history; we don't pool across currencies because rate-regime and economic differences would confound the comparison.
Why are tenors above 30 years off by default?
The 30y+ end of the gilt curve is heavily distorted by structural LDI / Solvency II demand from UK pension funds and insurers. Apparent “carry” at 35–40y often reflects forced buying rather than risk-adjusted opportunity. Pro subscribers can extend the GBP range to 40y with a caveat banner. The USD / CAD / EUR source curves cap at 30y so the toggle is GBP-only.
Why no real-time data?
This tool is for the morning-coffee scan, not the trading-floor screen. Each central bank publishes once per business day (and BoC weekly); CarryCurve refreshes once per day per currency on each source's natural cadence.
How do I cancel Pro?
Via Stripe's Customer Portal, accessible from /account — self-serve, any time. Cancellation takes effect at the end of the current billing period; your Pro access continues until then.