Last data update: 07 oct. 2026, 23:29
Last compile: 07 oct. 2026, 23:34
Dividendes bruts par action à la date de détachement (Dividend, devise de cotation), pour les titres de adjusted_USA et adjusted_FRA. Ce sont ces dividendes que Yahoo réinvestit pour construire Adjusted.
div |> inner_join(adj_map |> select(ticker, universe, exchange), by = "ticker") |>
filter(universe == "FRA" | exchange %in% c("NASDAQ", "NYSE", "NYSE MKT")) |>
group_by(Univers = universe) |>
summarise(`Dividendes` = n(), `Titres payeurs` = n_distinct(ticker),
Début = min(Date), Fin = max(Date), .groups = "drop") |> print_table_conditional()| Univers | Dividendes | Titres payeurs | Début | Fin |
|---|---|---|---|---|
| FRA | 6997 | 350 | 1989-06-05 | 2026-10-06 |
| USA | 144682 | 1648 | 1970-01-19 | 2026-10-06 |
Pour chaque titre et chaque année : dividendes versés dans l’année / cours (non ajusté) de fin d’année précédente. Médiane parmi les titres payeurs (cette année-là).
px <- bind_rows(read_parquet("adjusted_USA.parquet"), read_parquet("adjusted_FRA.parquet")) |>
mutate(Date = as.Date(Date), year = year(Date)) |>
filter(Close > 0) |> arrange(ticker, Date) |> group_by(ticker, year) |>
summarise(close_end = last(Close), .groups = "drop") |>
group_by(ticker) |> arrange(year) |> mutate(close_prev = lag(close_end), gap = year - lag(year)) |> ungroup() |>
filter(gap == 1)
yd <- div |> mutate(year = year(Date)) |> group_by(ticker, year) |> summarise(d = sum(Dividend), .groups = "drop") |>
inner_join(px, by = c("ticker", "year")) |>
inner_join(adj_map |> select(ticker, universe, exchange), by = "ticker") |>
filter(universe == "FRA" | exchange %in% c("NASDAQ", "NYSE", "NYSE MKT")) |>
mutate(y = 100 * d / close_prev) |> filter(is.finite(y), y < 30, year >= 1990)
yd |> group_by(universe, year) |> filter(n() >= 20) |>
summarise(`Rendement médian (%)` = median(y), `Titres payeurs` = n(), .groups = "drop") |>
ggplot(aes(year, `Rendement médian (%)`, color = universe)) + geom_line() + theme_minimal() +
xlab("") + theme(legend.position = c(0.85, 0.85), legend.title = element_blank())
ly <- year(max(div$Date)) - 1
yd |> filter(year == ly) |> left_join(adj_map |> select(ticker, name), by = "ticker") |>
transmute(Univers = universe, Ticker = ticker, Nom = name, `Dividendes (devise locale)` = round(d, 2),
`Rendement (%)` = round(y, 2)) |> arrange(desc(`Rendement (%)`)) |>
print_table_conditional()div |> arrange(desc(Date)) |> print_table_conditional()