Educational service

Students absenteeism

Displays general metrics about student absenteeism as viewed through the number of days with at least one absence.

Deployment

tag:chronic_absenteeismnew in v0.7.0

Databases

The gpi database must be linked to the project. Please refer to the linking a database section for more information about how to link a database.

Marts

The following marts must be enabled for the dashboard to work. Please refer to the enabling a mart section for more information about how to enable a mart.

  • educ_serv

dbt project specification

Update your cssXX.dashboards_store/dbt_project.yml file with the following snippet.

# cssXX.dashboards_store/dbt_project.yml
models:
  core_dashboards_store:
    marts:
      educ_serv:
        +enabled: True
    dashboards:
      educ_serv:
        chronic_absenteeism:
          +enabled: True
      interfaces:
        gpi:
          +enabled: True

Configuration

The configuration is optional. If you don't provide a configuration, the dashboard will use the default configuration.
To configure the dashboard, you might need to do some overriding. If the concept is new to you, please read this page.

Overriding the absences bracketing strategy

By default, the dashboard will group absences using the brackets from core.dashboards_store/seeds/dashboards/educ_serv/chronic_absenteeism/repartition_brackets.csv

To get a custom bracketing strategy, you can provide your own implementation of repartition_brackets. To do so:

  1. Write a CSV file named repartition_brackets.csv in the cssXX.dashboards_store/seeds/dashboards/educ_serv/chronic_absenteeism folder populated as per the core.dashboards_store/seeds/dashboards/educ_serv/chronic_absenteeism/schema.yml definition.
  2. Disable the default seed by using the following snippet in your dbt_project.yml file:
# cssXX.dashboards_store/dbt_project.yml
seeds:
  core_dashboards_store:
    dashboards:
      educ_serv:
        chronic_absenteeism:
          repartition_brackets:
            +enabled: False

When overriding the repartition brackets, you will need to manually update the lorenz measures from the dashboard's concentration page.

Filtering the absences / lateness of students or using arbitrary grouping of absences / lateness

By default, the dashboards split the metrics between absences and lateness. The dashboard does not distinguish between motivated and the non-motivated reasons of absences.

To manually exclude some lateness / absences reasons, you can override the core.dashboards_store/models/marts/educ_serv/staging/absences/stg_dim_absences_retards_inclusion.sql.

To override this file, just provide your own implementation of cssXX.dashboards_store/models/marts/educ_serv/staging/absences/stg_dim_absences_retards_inclusion.sql and disable the one from the core by adding the following snippet to your cssXX.dashboards_store/dbt_project.yml:

# cssXX.dashboards_store/dbt_project.yml
models:
  core_dashboards_store:
    marts:
      educ_serv:
        staging:
          absences:
            stg_dim_absences_retards_inclusion:
              +enabled: False

Filtering out the lateness from the dashboard

This is an example : you might need to tailor this script to your own needs

-- cssXX.dashboards_store/models/marts/educ_serv/staging/absences/stg_dim_absences_retards_inclusion.sql
select
    id_eco,
    motif_abs,
    descr as description_abs,
    case
        when cpt_abs in (1, 2) then 'absence'
        else null -- Test hook.
    end as category_abs
from {{ ref("i_gpm_t_motif_abs") }}
where
  cpt_abs is not null and
  cpt_abs != 3
group by
    id_eco,
    motif_abs,
    descr

Splitting the absences between motivated and non-motivated ones

This is an example : you might need to tailor this script to your own needs

-- cssXX.dashboards_store/models/marts/educ_serv/staging/absences/stg_dim_absences_retards_inclusion.sql
select
    id_eco,
    motif_abs,
    descr as description_abs,
    case
        when cpt_abs = 1 then 'absence motivée'
        when cpt_abs = 2 then 'absence non-motivée'
        when cpt_abs = 3 then 'retard'
        else null -- Test hook.
    end as category_abs
from {{ ref("i_gpm_t_motif_abs") }}
where
  cpt_abs is not null
group by
    id_eco,
    motif_abs,
    descr

RLS

The report_filters table expose both id_eco and eco variables as RLS hook.

Copyright © 2026