OAT verte 3,80 % 25 juin 2037 - FR0014017Z10

Données - AFT

Fiche titre

Code
i <- FR0014017Z10_info
tibble(
  Caractéristique = c("Code ISIN", "Sous-titre", "Nature du titre", "Devise d'émission",
                       "Valeur nominale", "Maturité", "Amortissement", "Coupon", "Intérêts",
                       "Première date de jouissance", "Procédure d'émission",
                       "Caractéristiques juridiques", "Démembrable", "Encours"),
  Valeur = c(i$isin, i$subtitle, i$nature, i$devise, i$valeur_nominale,
             format(i$maturity_date, "%d/%m/%Y"), i$amortissement, paste0(i$coupon_rate, " %"),
             i$interets, format(i$premiere_jouissance, "%d/%m/%Y"), i$procedure_emission,
             i$caracteristiques_juridiques, i$demembrable,
             paste0(round(i$outstanding / 1e9, 1), " Md€"))
) |>
  gt() |>
  tab_header(title = i$title)
OAT verte 3,80 % 25 juin 2037
Caractéristique Valeur
Code ISIN FR0014017Z10
Sous-titre OBLIGATIONS ASSIMILABLES DU TRÉSOR (OAT)
Nature du titre Nominal, taux fixe
Devise d'émission Euro
Valeur nominale 1 Euro
Maturité 25/06/2037
Amortissement In fine et au pair à la date de maturité
Coupon 3.8 %
Intérêts Annuels, payables à terme échu le 25 juin de chaque année Base de calcul : ACT/ACT
Première date de jouissance 25/06/2025
Procédure d'émission Syndication pour la première émission, puis adjudication à la "hollandaise" pour les émissions suivantes
Caractéristiques juridiques RegS, 144A Les titres créés après le 1er janvier 2013 sont assortis de clauses d’action collectives (CAC) comme toutes les obligations souveraines de la zone euro d’une maturité supérieure à un an. Par conséquent, ils ne sont pas assimilables aux souches créés avant cette date, quelle que soit leur date d’émission.
Démembrable oui
Encours 12.1 Md€

Frise chronologique des émissions

Code
library(ggrepel)

# Émissions groupées sur peu d'années (syndication + adjudications qui
# suivent) -> des étiquettes à décalage fixe (cf. list-OATi/list-OATeuroi)
# se chevauchent ; ggrepel les répartit automatiquement.
timeline <- FR0014017Z10 |>
  arrange(date_emission) |>
  mutate(label = paste0(round(volume_emis / 1e9, 1), " Md€ - ", format(date_emission, "%b %Y")))

ggplot(timeline, aes(x = date_emission, y = 0)) +
  geom_hline(yintercept = 0, color = "grey70") +
  geom_point(aes(size = volume_emis / 1e9, color = taux_moyen_pondere)) +
  geom_text_repel(aes(y = 0, label = label), size = 3, lineheight = 0.9,
                   min.segment.length = 0, segment.color = "grey70",
                   direction = "y", force = 2, max.overlaps = Inf,
                   ylim = c(-Inf, Inf)) +
  scale_size_continuous(range = c(3, 13), guide = "none") +
  scale_color_viridis_c(option = "C", name = "Taux moyen\npondéré (%)") +
  scale_x_date(date_labels = "%Y", date_breaks = "2 years") +
  theme_minimal(base_size = 13) +
  theme(axis.title.y = element_blank(), axis.text.y = element_blank(),
        axis.ticks.y = element_blank(), panel.grid.major.y = element_blank(),
        panel.grid.minor = element_blank(), legend.position = "bottom") +
  labs(x = NULL, title = paste("Historique des émissions -", FR0014017Z10_info$title),
       subtitle = "Taille des points = volume émis ; couleur = taux moyen pondéré")

Taux obtenu vs taux de marché (France 10Y)

Code
market_window <- market_30y |>
  filter(Date >= min(FR0014017Z10$date_emission) - 90, Date <= Sys.Date())

ggplot() +
  geom_line(data = market_window, aes(x = Date, y = market_yield, color = "France 10Y (marché)")) +
  geom_point(data = emissions_vs_market,
             aes(x = date_emission, y = taux_moyen_pondere, size = volume_emis / 1e9,
                 color = "Taux obtenu (FR0014017Z10)")) +
  scale_color_manual(values = c("France 10Y (marché)" = "grey50",
                                 "Taux obtenu (FR0014017Z10)" = "#1B3F8B"), name = NULL) +
  scale_size_continuous(range = c(2, 8), name = "Volume émis (Md€)") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom") +
  labs(x = NULL, y = "Taux (%)",
       title = "Taux obtenu à l'émission vs rendement OAT 10 ans de marché",
       subtitle = paste0("Rendement France 10Y au ", format(max(market_window$Date), "%d/%m/%Y"),
                          " : ", round(tail(market_window$market_yield, 1), 2), " %")
  )

Tenor de marché le plus proche de la maturité d’origine du titre (émis en 2026 pour une maturité 2037, soit ~11 ans).

Écart (en points de base) entre le taux moyen pondéré obtenu à chaque émission et le rendement OAT 10 ans de marché à la date la plus proche :

Code
emissions_vs_market |>
  transmute(`Date` = date_emission, `Type d'opération` = type_operation,
            `Taux obtenu (%)` = taux_moyen_pondere, `Taux marché France 10Y (%)` = market_yield,
            `Écart (pb)` = spread_bp) |>
  gt() |>
  fmt_date(columns = `Date`, date_style = "iso")
Date Type d'opération Taux obtenu (%) Taux marché France 10Y (%) Écart (pb)
2026-04-14 Syndication 3.90 3.6570 24
2026-08-06 Adjudication 3.95 3.9207 3

Détail par émission

Code
FR0014017Z10 |>
  arrange(date_emission) |>
  transmute(`Date` = date_emission, `Type d'opération` = type_operation,
            `Volume émis` = volume_emis, `Prix moyen pondéré` = prix_moyen_pondere,
            `Taux moyen pondéré (%)` = taux_moyen_pondere) |>
  gt() |>
  tab_header(title = "Historique des émissions") |>
  fmt_date(columns = `Date`, date_style = "iso") |>
  fmt_number(columns = `Volume émis`, decimals = 0) |>
  grand_summary_rows(columns = `Volume émis`, fns = list(Total = ~ sum(.)), fmt = ~ fmt_number(., decimals = 0))
Historique des émissions
Date Type d'opération Volume émis Prix moyen pondéré Taux moyen pondéré (%)
2026-04-14 Syndication 10,000,000,000 99.11 3.90
2026-08-06 Adjudication 2,119,000,000 98.72 3.95
Total — — 12,119,000,000 — —

Tableau interactif

Code
FR0014017Z10 |>
  arrange(date_emission) |>
  transmute(`Date` = date_emission, `Type d'opération` = type_operation,
            `Volume émis` = volume_emis, `Prix moyen pondéré` = prix_moyen_pondere,
            `Taux moyen pondéré (%)` = taux_moyen_pondere) |>
  gt() |>
  fmt_date(columns = `Date`, date_style = "iso") |>
  fmt_number(columns = `Volume émis`, decimals = 0) |>
  opt_interactive(use_search = TRUE, use_filters = TRUE, use_sorting = TRUE,
                   use_resizers = TRUE, use_highlight = TRUE,
                   use_compact_mode = TRUE, use_page_size_select = TRUE)