Bank Lending Survey - BLS
Data - Banque de France
Info
Last observation: Trimestriel: 30 sep 2026 (N = 16,849)
First observation: Trimestriel: 31 déc 2002 (N = 16,849)
Last data update: 11 aoû 2026, 00:07. Last compile: 14 aoû 2026, 00:09
Structure
LAST_DOWNLOAD
| LAST_DOWNLOAD |
|---|
| 2026-08-10 |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2026-08-14 |
Last
| date | Nobs |
|---|---|
| 2026-09-30 | 21 |
Factors Affecting Credit Standards
Net percentage balances (%): a positive value means that a majority of banks report a tightening of credit standards linked to this factor.
Loans to Enterprises
Code
BLS |>
filter(variable %in% c("BLS.Q.FR.ALL.GEA.E.Z.B3.ST.S.FNET",
"BLS.Q.FR.ALL.RCD.E.Z.B3.ST.S.FNET",
"BLS.Q.FR.ALL.CP.E.Z.B3.ST.S.FNET")) |>
mutate(Factor = case_when(BLS_ITEM == "GEA" ~ "General economic outlook",
BLS_ITEM == "RCD" ~ "Risk related to collateral required",
BLS_ITEM == "CP" ~ "Costs related to capital position"),
value = value/100) |>
ggplot() + geom_line(aes(x = date, y = value, color = Factor)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
theme(legend.position = c(0.3, 0.85),
legend.title = element_blank(),
legend.text = element_text(size = 7))
Housing Loans (Households)
Code
BLS |>
filter(variable %in% c("BLS.Q.FR.ALL.GEA.H.H.B3.ST.S.FNET",
"BLS.Q.FR.ALL.HMP.H.H.B3.ST.S.FNET",
"BLS.Q.FR.ALL.BC.H.H.B3.ST.S.FNET")) |>
mutate(Factor = case_when(BLS_ITEM == "GEA" ~ "General economic outlook",
BLS_ITEM == "HMP" ~ "Housing market prospects",
BLS_ITEM == "BC" ~ "Competition from other banks"),
value = value/100) |>
ggplot() + geom_line(aes(x = date, y = value, color = Factor)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
theme(legend.position = c(0.3, 0.85),
legend.title = element_blank(),
legend.text = element_text(size = 7))
Since 2015
Code
BLS |>
filter(variable %in% c("BLS.Q.FR.ALL.GEA.E.Z.B3.ST.S.FNET",
"BLS.Q.FR.ALL.RCD.E.Z.B3.ST.S.FNET",
"BLS.Q.FR.ALL.CP.E.Z.B3.ST.S.FNET")) |>
filter(date >= as.Date("2015-01-01")) |>
mutate(Factor = case_when(BLS_ITEM == "GEA" ~ "General economic outlook",
BLS_ITEM == "RCD" ~ "Risk related to collateral required",
BLS_ITEM == "CP" ~ "Costs related to capital position"),
value = value/100) |>
ggplot() + geom_line(aes(x = date, y = value, color = Factor)) +
geom_point(aes(x = date, y = value, color = Factor)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = "1 year",
labels = date_format("%Y")) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
theme(legend.position = c(0.3, 0.85),
legend.title = element_blank(),
legend.text = element_text(size = 7),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
Latest Available Quarter
Code
BLS |>
filter(BLS_COUNT_DETAIL %in% c("Z", "H"),
EFFECT_DOMAIN == "ST",
MARKET_ROLE == "S") |>
filter(!is.na(value)) |>
filter(date == max(date)) |>
select(Variable, date, value) |>
arrange(desc(value)) |>
print_table_conditional()| Variable | date | value |
|---|---|---|
| Octroi de crédits LT aux entreprises (perspectives à 3 mois) | 2026-09-30 | 9.09 |
| Octroi de crédits CT aux entreprises (perspectives à 3 mois) | 2026-09-30 | 9.09 |
| Octroi de crédits aux entreprises (perspectives à 3 mois) | 2026-09-30 | 9.09 |
| Octroi de crédits aux grandes entreprises (perspectives à 3 mois) | 2026-09-30 | 0.00 |
| Octroi de crédits aux PME (perspectives à 3 mois) | 2026-09-30 | 0.00 |
| Octroi de crédits à l'habitat (perspectives à 3 mois) | 2026-09-30 | -12.50 |