Since 2020 the German Finance Agency has issued green Federal securities each paired with a conventional twin of identical coupon and maturity — the cleanest natural experiment in sustainable finance. The only thing that differs within a twin pair is the green label (and the smaller, less-liquid green leg). The yield difference is the greenium. This report estimates it model-free from the twins, adjusts it for liquidity, and stress-tests it with placebo pairs.
↗ open the interactive dashboard — time series with a confidence band, term structure, and raw-vs-adjusted.
A naive greenium — "green bonds yield less than other bonds" — is confounded by everything that differs across bonds: maturity, coupon, issuer, credit, tax. The German twin bond concept removes all of that: each green Bund is issued alongside a conventional Bund with the identical coupon and maturity date, differing only in the green label and issue size. So for a twin pair on a given day,
greenium (bp) = (conventional yield − green yield) × 100,
is a like-for-like difference with no curve-fitting and no convention mismatch (both legs share the Bundesbank annual / actual-actual quote basis). This is the headline estimator; the liquidity-adjusted panel is corroboration, not the lead.
The greenium is largest at the short end and compresses along the curve — the term structure on the dashboard runs from the short-tenor pairs down to the 30y green Bunds, consistent with published figures of a few basis points, larger at the short end.
The green leg is smaller and less liquid than its conventional twin, so part of the raw spread can be a liquidity premium rather than a green preference. We run a panel of yields with pair×date fixed effects (each green bond compared only to its own twin on the same day) and control for issue size — the only liquidity dimension that varies within a twin-day cell (age and on/off-the-run are identical across twins by construction).
The honest tests that could have killed the result:
Primary source: Deutsche Bundesbank, "prices and yields of listed Federal
securities" (daily per-ISIN yields and issue volumes; the green bonds are labelled, and the twin
set is rebuilt from those labels). Every headline number traces to a value in
site/data/*.json; see SOURCES.md. Seed = .