Skip to content
Snippets Groups Projects
Note_mensuelle_contrats_aides.Rmd 11.1 KiB
Newer Older
title: "Point d'actualité mensuel contrats aidés"
author: "DARES - Département insertion professionnelle"
date: "`r format(Sys.time(), '%d/%m/%Y')`"
output: html_document
params:
  annee_iae: !r lubridate::year(lubridate::today()-months(3))
  mois_iae: !r lubridate::month(lubridate::today()-months(3))
  chemin_IAE: "./"
Julien Blasco's avatar
Julien Blasco committed
  chemin_IAE_SL: "./"
  annee_cui: !r lubridate::year(lubridate::today()-months(2))
  mois_cui: !r lubridate::month(lubridate::today()-months(2))
  chemin_CUI: "./"
Julien Blasco's avatar
Julien Blasco committed
  chemin_CUI_SL: "./"
  resume: "INSERER ICI LE RESUME DU MOIS"
<style>
p {
    font-family: Arial, sans-serif;
}
h1 {
    font-family: Arial, sans-serif;
}
h4 {
    font-family: Arial, sans-serif;
}
</style>

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, fig.width = 6, fig.height = 4)

library(dplyr)
library(tidyr)
library(openxlsx)
library(rmarkdown)
library(ggplot2)
library(lubridate)
library(plotly)

theme_set(theme_light())
theme_update(axis.title.x = element_blank(),
             axis.title.y = element_blank(),
             legend.title=element_blank(),
             axis.text.x = element_text(angle = 45, hjust=1))

update_geom_defaults("line", list(size = 0.75))

d <- dmy(paste(1, params$mois_iae, params$annee_iae))-months(2)
d_m1 <- d-months(1)
d_a1 <- d-years(1)

Julien Blasco's avatar
Julien Blasco committed
d_cui <- dmy(paste(1, params$mois_cui, params$annee_cui))
d_cui_m1 <- d_cui-months(1)
d_cui_a1 <- d_cui-years(1)

# Mise en forme des chiffres : arrondis à la centaine et séparateur de milliers
mef <- function(x) {
        y <- abs(round(x, digits = 1) * 1000)
        y <- prettyNum(y, big.mark="&nbsp;")
mef_pourcent <- function(x) {
        y <- abs(round(x*100, digits = 0))
        y <- paste0(prettyNum(y, decimal.mark = ","), " %")
        return(y)
}

# + / - devant le chiffre suivant son signe
signe <- function(x) {
        return(ifelse(x >= 0, "+", "-"))
Julien Blasco's avatar
Julien Blasco committed
## Chargement tableaux IAE
NoteMens_IAE <- list()
NoteMens_IAE[["FE"]] <- read.xlsx(params$chemin_IAE, sheet = "NoteMens_FE")
NoteMens_IAE[["Jeune"]] <- read.xlsx(params$chemin_IAE, sheet = "NoteMens_Jeune")

totalFE_IAE <- NoteMens_IAE$FE %>% 
  summarise_at(vars(-Structure), sum)

totalJeune_IAE <- NoteMens_IAE$Jeune %>% 
  summarise_at(vars(-Structure), sum)

total_IAE <- bind_rows(
  totalFE_IAE,
  totalJeune_IAE
) %>% 
  mutate(across(everything(), round, 1))

Evol_Stock_a_IAE <- totalFE_IAE$Stock_m-totalFE_IAE$Stock_a_1
Evol_Stock_m_IAE <- totalFE_IAE$Stock_m-totalFE_IAE$Stock_m_1

colnames(total_IAE) <- c(
  paste0(months(d_a1), " ", year(d_a1)),
  paste0(months(d_m1), " ", year(d_m1)),
  paste0(months(d), " ", year(d)),
  "sur un an",
  paste0("à fin ",  months(d_a1), " " , year(d_a1)),
  paste0("à fin ", months(d), " ",  year(d)),
  paste0(months(d_a1), " ", year(d_a1)),
  paste0(months(d_m1), " ", year(d_m1)),
  paste0(months(d), " ", year(d))
)

rownames(total_IAE) <- c("Ensemble de l'IAE", "Ensemble de l'IAE (moins de 26 ans)")


Julien Blasco's avatar
Julien Blasco committed
## Chargement tableaux CUI-CIE
TdB <- read.xlsx(params$chemin_CUI, sheet = "TdB")
TdB_Jeunes <- read.xlsx(params$chemin_CUI, sheet = "TdB_Jeunes")
# On met le nom des indicateurs en nom de la ligne
row.names(TdB) <- TdB$Indicateur
row.names(TdB_Jeunes) <- TdB_Jeunes$Indicateur
# On enlève la colonne Indicateurs
TdB <- TdB[, -c(1)]
TdB_Jeunes <- TdB_Jeunes[, -c(1)]
# On ne sélectionne que les PEC et les CIE dans le tableau FE
TdB <- TdB[row.names(TdB) %in% c("PEC", "CUI-CIE"), ]
# On ajoute la somme par colonnes
TdB <- rbind(TdB, apply(TdB,2,sum))
rownames(TdB)[3] <- "Somme"
TdB_Jeunes <- rbind(TdB_Jeunes, apply(TdB_Jeunes,2,sum))
rownames(TdB_Jeunes)[3] <- "Somme"

TdB_fusion <- bind_rows(TdB, TdB_Jeunes) %>% 
  mutate(across(everything(), round, 1))

colnames(TdB_fusion) <- c(
  paste0(months(d_cui_a1), " ", year(d_cui_a1)),
  paste0(months(d_cui_m1), " ", year(d_cui_m1)),
  paste0(months(d_cui), " ", year(d_cui)),
  paste0("à fin ",  months(d_cui_a1),  " ", year(d_cui_a1)),
  paste0("à fin ",  months(d_cui) ,  " ",  year(d_cui)),
  paste0(months(d_cui_a1), " ", year(d_cui_a1)),
  paste0(months(d_cui_m1), " ", year(d_cui_m1)),
  paste0(months(d_cui), " ", year(d_cui))
)

rownames(TdB_fusion) <- c(
  "PEC", "CUI-CIE", "Ensemble",
  "PEC (moins de 26 ans)", 
  "CUI-CIE (moins de 26 ans)",
  "Ensemble (moins de 26 ans)"
  )

Julien Blasco's avatar
Julien Blasco committed
## Chargement des séries longues IAE
IAE_SL <- list(
  FE = read.xlsx(params$chemin_IAE_SL, sheet = "IAE Red FE"),
  Jeune = read.xlsx(params$chemin_IAE_SL, sheet = "IAE Red Jeune")
)

CUI_SL <- list(
  FE = read.xlsx(params$chemin_CUI_SL, sheet = "Serie_Mensuelle_FE"),
  Jeune = read.xlsx(params$chemin_CUI_SL, sheet = "Serie_Mensuelle_Jeunes")
)
Julien Blasco's avatar
Julien Blasco committed
## calcul des chiffres de la note mensuelle - IAE
Stock_FE_iae <- totalFE_IAE$Stock_m
Entree_FE_m_iae <- totalFE_IAE$Entree_m
Entree_Jeunes_m_iae <- totalJeune_IAE$Entree_m

## calcul des chiffres de la note mensuelle - CIE-CUI
Stock_FE_cui <- TdB["Somme", "Stock_m"]
Stock_FE_PEC <- TdB["PEC", "Stock_m"]
Stock_FE_CIE <- TdB["CUI-CIE", "Stock_m"]
Entree_FE_m_cui <- TdB["Somme", "Entree_m"]
Entree_FE_m_PEC <- TdB["PEC", "Entree_m"]
Entree_FE_m_CIE <- TdB["CUI-CIE", "Entree_m"]
Evol_Stock_m_cui <- TdB["Somme", "Stock_m"] - TdB["Somme", "Stock_m_1"]
Evol_Stock_a_cui <- TdB["Somme", "Stock_m"] - TdB["Somme", "Stock_a_1"]
Evol_Stock_m_PEC <- TdB["PEC", "Stock_m"] - TdB["PEC", "Stock_m_1"]
Evol_Stock_a_PEC <- TdB["PEC", "Stock_m"] - TdB["PEC", "Stock_a_1"]
Evol_Stock_m_CIE <- TdB["CUI-CIE", "Stock_m"] - TdB["CUI-CIE", "Stock_m_1"]
Evol_Stock_a_CIE <- TdB["CUI-CIE", "Stock_m"] - TdB["CUI-CIE", "Stock_a_1"]

Entree_Jeunes_m_cui <- TdB_Jeunes["Somme", "Entree_m"]
Entree_Jeunes_m_PEC <- TdB_Jeunes["PEC", "Entree_m"]
Entree_Jeunes_m_CIE <- TdB_Jeunes["CUI-CIE", "Entree_m"]
Vous trouverez ci-dessous le point d’actualité mensuel sur les effectifs en contrats aidés en `r months(d_cui)` `r year(d_cui)` et en insertion par l’activité économique en `r months(d)` `r year(d)`. Pour mémoire, ce point est établi à partir des données de l’ASP, redressées pour tenir compte des délais de remontée d'informations par les employeurs. Toutes les données détaillées, ainsi que le champ et les sources, sont présentés dans le fichier excel ci-joint.
**`r params$resume`**
Le nombre de personnes entrées en **contrats aidés** en `r months(d_cui)` `r year(d_cui)` s'élèverait à `r mef(Entree_FE_m_cui)`, dont `r mef(Entree_FE_m_PEC)` en PEC et `r mef(Entree_FE_m_CIE)` en CUI-CIE. 

Le nombre total de bénéficiaires à la fin `r months(d_cui)` `r year(d_cui)` serait de `r mef(Stock_FE_cui)` (`r signe(Evol_Stock_m_cui)``r mef(Evol_Stock_m_cui)` sur un mois et `r signe(Evol_Stock_a_cui)``r mef(Evol_Stock_a_cui)` sur un an), dont `r mef(Stock_FE_PEC)` en PEC (`r signe(Evol_Stock_m_PEC)``r mef(Evol_Stock_m_PEC)` sur un mois et `r signe(Evol_Stock_a_PEC)``r mef(Evol_Stock_a_PEC)` sur un an) et `r mef(Stock_FE_CIE)` en CUI-CIE (`r signe(Evol_Stock_m_CIE)``r mef(Evol_Stock_m_CIE)` sur un mois et `r signe(Evol_Stock_a_CIE)``r mef(Evol_Stock_a_CIE)` sur un an).
Julien Blasco's avatar
Julien Blasco committed
```{r echo=FALSE}
CUI_SL$FE %>% 
  mutate(date = as_date(convertToDate(Mois))) %>% 
  filter(year(date) >= annee_cui-2 & date <= d_cui) %>% 
  pivot_longer(c(CIE_EntreeRec, PEC_EntreeRec)) %>% 
  mutate(Dispositif = factor(
    ifelse(name=="PEC_EntreeRec", "PEC", "CUI-CIE"),
    levels = c("PEC", "CUI-CIE"), ordered = TRUE)) %>% 
  mutate(
    Année = fct_rev(as.factor(year(date))),
    Mois = factor(
      months(date), ordered = TRUE, 
      levels = map_chr(months(0:11), ~months(as_date(.)))
    )
  ) %>% 
  ggplot(aes(Mois, value, col=Année, group=Année)) +
  geom_line(aes(linetype=Année)) + 
  coord_cartesian(ylim = c(0, NA), clip = 'off') +
  geom_point(data=~filter(., date==d_cui), show.legend = FALSE) +
  geom_label(
    aes(label = round(value,-2)), data=~filter(., date==d_cui), 
    hjust=-0.1, show.legend = FALSE
    ) +
  scale_linetype_manual(values=c("solid", "22", "41")) +
  scale_colour_brewer(palette="Dark2") +
  labs(
    title = "Nombre d'entrées mensuelles en contrats aidés",
    caption = "Champ : France. Source : Agence de services et de paiement (ASP)"
    )
Julien Blasco's avatar
Julien Blasco committed
```

Le nombre de personnes entrées en **insertion par l'activité économique** en  `r months(d)` `r year(d)` s'élèverait à `r mef(Entree_FE_m_iae)`, pour un total de `r mef(Stock_FE_iae)` bénéficiaires à la fin `r months(d)` `r year(d)` (`r signe(Evol_Stock_m_IAE)``r mef(Evol_Stock_m_IAE)` sur un mois et `r signe(Evol_Stock_a_IAE)``r mef(Evol_Stock_a_IAE)` sur un an).
Julien Blasco's avatar
Julien Blasco committed
```{r echo=FALSE}
IAE_SL$FE %>% 
  mutate(date = as_date(convertToDate(Mois))) %>% 
  filter(year(date) >= annee_cui-2 & date <= d) %>% 
Julien Blasco's avatar
Julien Blasco committed
  mutate(entrees = EntreeRec_ACI+EntreeRec_EI+entree_AI+entree_ETTI+entree_EITI) %>% 
    Année = fct_rev(as.factor(year(date))),
    Mois = factor(
      months(date), ordered = TRUE, 
      levels = map_chr(months(0:11), ~months(as_date(.)))
    )
  ) %>% 
  ggplot(aes(Mois, entrees, col=Année, group=Année)) +
  geom_line(aes(linetype=Année)) + 
  coord_cartesian(ylim = c(0, NA), clip = 'off') +
  geom_point(data=~filter(., date==d), show.legend = FALSE) +
  geom_label(aes(label = round(entrees,-2)), data=~filter(., date==d), hjust=-0.1, show.legend = FALSE) +
  scale_linetype_manual(values=c("solid", "22", "41")) +
  scale_colour_brewer(palette="Dark2") +
  labs(
    title = "Nombre d'entrées mensuelles en insertion par l'activité économique",
    caption = "Champ : France. Source : Agence de services et de paiement (ASP)"
  )
Julien Blasco's avatar
Julien Blasco committed
```

Audrey Farges's avatar
Audrey Farges committed
#### Jeunes de moins de 26 ans
`r mef(Entree_Jeunes_m_PEC)` jeunes de moins de 26 ans seraient entrés en **PEC** en `r months(d_cui)` `r year(d_cui)`, soit `r mef_pourcent(Entree_Jeunes_m_PEC/Entree_FE_m_PEC)` des entrées totales. `r mef(Entree_Jeunes_m_CIE)` jeunes de moins de 26 ans seraient entrés en **CUI-CIE** en `r months(d_cui)` `r year(d_cui)`, soit `r mef_pourcent(Entree_Jeunes_m_CIE/Entree_FE_m_CIE)` des entrées totales. Le nombre de jeunes bénéficiaires de contrats aidés s'élèverait à `r mef(TdB_Jeunes["Somme", "Stock_m"])` fin `r months(d_cui)`.
`r mef(Entree_Jeunes_m_iae)` jeunes de moins de 26 ans seraient entrés en **insertion par l'activité économique** en `r months(d)` `r year(d)`, soit `r mef_pourcent(Entree_Jeunes_m_iae/Entree_FE_m_iae)` des entrées totales. Le nombre de jeunes bénéficiaires s’élèverait à `r mef(totalJeune_IAE$Stock_m)` fin `r months(d)`.
Julien Blasco's avatar
Julien Blasco committed

### Tableaux récapitulatifs

#### Contrats aidés (en milliers de personnes)

```{r echo=FALSE}
kable(TdB_fusion, row.names = TRUE, format.args = list(decimal.mark = ',')) %>% 
  kable_styling(c("bordered", "striped")) %>% 
  add_header_above(
  c("", "Entrées mensuelles" = 3, "Entrées cumulées" = 2, "Stock en fin de mois" = 3)
Julien Blasco's avatar
Julien Blasco committed
) %>% 
  column_spec(1, bold=TRUE)

```

#### Insertion par l'activité économique (en milliers de personnes)

```{r echo=FALSE}
Julien Blasco's avatar
Julien Blasco committed
kable(total_IAE, row.names = TRUE, format.args = list(decimal.mark = ',')) %>% 
  kable_styling(c("bordered", "striped")) %>% 
Julien Blasco's avatar
Julien Blasco committed
  add_header_above(
  c("", "Entrées mensuelles" = 3, "Entrées cumulées" = 3, "Stock en fin de mois" = 3)
Julien Blasco's avatar
Julien Blasco committed
) %>% 
  column_spec(1, bold=TRUE)
_Note :_ les proportions sont calculées avec les chiffres non arrondis et peuvent donc différer du calcul avec les chiffres affichés.