The sovereign green-bond greenium

Reading the price of "green" off identical twin bonds ·

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.

1. Why twins identify the greenium

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.

2. The headline: a small, positive, consistently-signed greenium

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.

3. Liquidity: how much is a green preference vs a liquidity premium?

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).

4. Dynamics

5. Robustness & refutation

The honest tests that could have killed the result:

6. What this is — and is not

7. Data & pipeline

Green-Bond-Greenium/ ├── data/manual/twin_pairs.csv green↔conventional ISIN pairs (rebuilt from Bundesbank labels) ├── pipeline/01_fetch/ Bundesbank monthly workbooks · demo fallback ├── pipeline/02_clean/ align twins · harmonise conventions · liquidity vars · entry dates ├── pipeline/03_analysis/ twin_spread · panel_greenium · dynamics · refutation ├── pipeline/04_export/ → site/data/*.json └── site/ report.html · dashboard.html · data/*.json

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 = .