Projets terminés dans les délais

L’indicateur Projets terminés dans les délais indique le pourcentage de projets au cours de la période filtrée qui ont été terminés dans les délais, ainsi que la manière dont le pourcentage a augmenté ou diminué depuis la période précédente.

Vous pouvez également afficher le pourcentage de projets terminés dans les délais au cours de la période précédente, ainsi que le nombre de jours au cours de la période précédente.

Projets d’indicateurs de performance clés terminés dans les délais

WITH completedProjectsInRange as (
    SELECT
        COUNT(t0.PROJECTID) as PROJECT_COUNT
    FROM PROJECTS_CURRENT t0
    WHERE t0.ACTUALCOMPLETIONDATE >= '2025-01-01'
        AND t0.ACTUALCOMPLETIONDATE <= '2025-01-31'
), completedOntimeProjectsInRange as (
    SELECT
        COUNT(t0.PROJECTID) as PROJECT_COUNT
    FROM PROJECTS_CURRENT t0
    WHERE t0.ACTUALCOMPLETIONDATE >= '2025-01-01'
        AND t0.ACTUALCOMPLETIONDATE <= '2025-01-31'
        AND t0.PROGRESSSTATUS = 'ON'
), percentOntimeProjects as (
    SELECT
        CASE
            WHEN a.PROJECT_COUNT = 0 THEN 0
            ELSE ROUND(b.PROJECT_COUNT/a.PROJECT_COUNT) * 100
        END as ONTIMEPROJECTPERCENT
    FROM completedProjectsInRange a, completedOntimeProjectsInRange b
), completedProjectsPreviousRange as (
    SELECT
        COUNT(t0.PROJECTID) as PROJECT_COUNT
    FROM PROJECTS_CURRENT t0
    WHERE t0.ACTUALCOMPLETIONDATE >= '2024-12-01'
        AND t0.ACTUALCOMPLETIONDATE <= '2024-12-31'
), completedOntimeProjectsPreviousRange as (
    SELECT
        COUNT(t0.PROJECTID) as PROJECT_COUNT
    FROM PROJECTS_CURRENT t0
    WHERE t0.ACTUALCOMPLETIONDATE >= '2024-12-01'
        AND t0.ACTUALCOMPLETIONDATE <= '2024-12-31'
        AND t0.PROGRESSSTATUS = 'ON'
), percentOntimeProjectsPreviousRange as (
    SELECT
        CASE
            WHEN a.PROJECT_COUNT = 0 THEN 0
            ELSE ROUND(b.PROJECT_COUNT/a.PROJECT_COUNT) * 100
        END as ONTIMEPROJECTPERCENT
    FROM completedProjectsPreviousRange a, completedOntimeProjectsPreviousRange b
), rawChange as (
    SELECT
        (a.ONTIMEPROJECTPERCENT - b.ONTIMEPROJECTPERCENT) as CHANGE_FROM_PREVIOUS_PERIOD
    FROM percentOntimeProjects a, percentOntimeProjectsPreviousRange b
), percentChange as (
    SELECT
        CASE
            WHEN a.ONTIMEPROJECTPERCENT = b.ONTIMEPROJECTPERCENT THEN 0
            WHEN b.ONTIMEPROJECTPERCENT > 0 THEN ((a.ONTIMEPROJECTPERCENT - b.ONTIMEPROJECTPERCENT) / b.ONTIMEPROJECTPERCENT * 100)
        END AS PERCENT_CHANGE_FROM_PREVIOUS_PERIOD
    FROM percentOntimeProjects a, percentOntimeProjectsPreviousRange b
)

SELECT
    a.ONTIMEPROJECTPERCENT,
    b.ONTIMEPROJECTPERCENT as PREVIOUS_ONTIMEPROJECTPERCENT,
    c.CHANGE_FROM_PREVIOUS_PERIOD,
    d.PERCENT_CHANGE_FROM_PREVIOUS_PERIOD
FROM percentOntimeProjects a, percentOntimeProjectsPreviousRange b, rawChange c,
percentChange d

Durée moy. du projet

Le KPI l’indicateur de durée du projet indique la durée moyenne d’achèvement, en jours, semaines ou années, des projets dont les dates de fin réelles se situent dans la période filtrée, ainsi que la manière dont le pourcentage a augmenté ou diminué depuis la période précédente.

Vous pouvez également afficher la durée moyenne d'achèvement des projets avec des dates de fin réelles au cours de la période précédente, ainsi que le nombre de jours au cours de la période précédente.

NOTE
Cela ne tient compte que de la durée des projets terminés.

Durée moyenne du projet basée sur les KPI

WITH averageProjectDurationInRange as (
    SELECT
        AVG(t0.ACTUALDURATIONMINUTES) as AVERAGE_PROJECT_DURATION
    FROM PROJECTS_CURRENT t0
    WHERE t0.ACTUALCOMPLETIONDATE >= '2025-01-01'
        AND t0.ACTUALCOMPLETIONDATE <= '2025-01-31'
), averageProjectPreviousRange as (
    SELECT AVG (t0. ACTUALDURATIONMINUTES) as AVERAGE_PROJECT_DURATION FROM PROJECTS_CURRENT t0
    WHERE t0.ACTUALCOMPLETIONDATE >= '2024-12-01'
        AND t0.ACTUALCOMPLETIONDATE <= '2024-12-31'
), rawChange as (
    SELECT ((a.AVERAGE_PROJECT_DURATION - b.AVERAGE_PROJECT_DURATION) / 480) as CHANGE_FROM_PREVIOUS_PERIOD FROM averageProjectDurationInRange a, averageProjectPreviousRange b
), percentChange as (
    SELECT
        CASE
            WHEN a.AVERAGE_PROJECT_DURATION = b.AVERAGE_PROJECT_DURATION THEN 0
            WHEN b.AVERAGE_PROJECT_DURATION > 0 THEN ((a.AVERAGE_PROJECT_DURATION - b.AVERAGE_PROJECT_DURATION)  / b.AVERAGE_PROJECT_DURATION) * 100
        END AS PERCENT_CHANGE_FROM_PREVIOUS_PERIOD
        FROM averageProjectDurationInRange a, averageProjectPreviousRange b
)

SELECT
    a.AVERAGE_PROJECT_DURATION,
    b.AVERAGE_PROJECT_DURATION as PREVIOUS_AVERAGE_PROJECT_DURATION,
    c.CHANGE_FROM_PREVIOUS_PERIOD,
    d.PERCENT_CHANGE_FROM_PREVIOUS_PERIOD
FROM averageProjectDurationInRange a, averageProjectPreviousRange b, rawChange c,
percentChange d

Nombre moyen de tâches par projet

L’indicateur Moy. tâches par projet indique le nombre moyen de tâches affectées à des projets au cours de la période filtrée, ainsi que la manière dont le pourcentage a augmenté ou diminué depuis la période précédente.

Vous pouvez également afficher le nombre moyen de tâches affectées à des projets au cours de la période précédente, ainsi que le nombre de jours au cours de la période précédente.

KPI moyen des tâches par projet

WITH tasksPerProjectInRange as (
    SELECT
        COUNT(t0.TASKID) as TASK_COUNT
    FROM TASKS_CURRENT t0
        LEFT JOIN PROJECTS_CURRENT t1 ON t1.PROJECTID = t0.PROJECTID
    WHERE
        (
            t1.PLANNEDSTARTDATE >= '2025-01-01'
            AND t1.PLANNEDSTARTDATE <= '2025-01-31'
        )
        OR (
            t1.PLANNEDCOMPLETIONDATE >= '2025-01-01'
            AND t1. PLANNEDCOMPLETIONDATE <= '2025-01-31'
        )
        OR (
            t1.PLANNEDSTARTDATE <= '2025-01-01'
            AND t1. PLANNEDCOMPLETIONDATE >= '2025-01-31'
        )
    GROUP BY t0.PROJECTID
), averageTasksPerProjectInRange as (
    SELECT AVG(TASK_COUNT) AS AVERAGE_TASK_COUNT FROM tasksPerProjectInRange
), tasksPerProjectInPreviousRange as (
    SELECT
        COUNT(t0.TASKID) as TASK_COUNT
    FROM TASKS_CURRENT t0
        LEFT JOIN PROJECTS_CURRENT t1 ON t1.PROJECTID = t0.PROJECTID
    WHERE
        (
            t1.PLANNEDSTARTDATE >= '2024-12-01'
            AND t1.PLANNEDSTARTDATE <= '2024-12-31'
        )
        OR (
            t1.PLANNEDCOMPLETIONDATE >= '2024-12-01'
            AND t1. PLANNEDCOMPLETIONDATE <= '2024-12-31'
        )
        OR (
            t1.PLANNEDSTARTDATE <= '2024-12-01'
            AND t1. PLANNEDCOMPLETIONDATE >= '2024-12-31'
        )
    GROUP BY t0.PROJECTID
), averageTasksPerProjectInPreviousRange as (
    SELECT
        AVG(TASK_COUNT) AS AVERAGE_TASK_COUNT
        FROM tasksPerProjectInPreviousRange
), rawChange as (
    SELECT
        (a.AVERAGE_TASK_COUNT - b.AVERAGE_TASK_COUNT) as CHANGE_FROM_PREVIOUS_PERIOD
    FROM averageTasksPerProjectInRange a, averageTasksPerProjectInPreviousRange b
), percentChange as (
    SELECT
        CASE
            WHEN a.AVERAGE_TASK_COUNT = b.AVERAGE_TASK_COUNT THEN 0
            WHEN b.AVERAGE_TASK_COUNT > 0 THEN ((a.AVERAGE_TASK_COUNT - b.AVERAGE_TASK_COUNT) / b.AVERAGE_TASK_COUNT) * 100
        END as PERCENT_CHANGE_FROM_PREVIOUS_PERIOD
    FROM averageTasksPerProjectInRange a, averageTasksPerProjectInPreviousRange b
)

SELECT
    a.AVERAGE_TASK_COUNT,
    b.AVERAGE_TASK_COUNT as PREVIOUS_AVERAGE_TASK_COUNT,
    c.CHANGE_FROM_PREVIOUS_PERIOD,
    d.PERCENT_CHANGE_FROM_PREVIOUS_PERIOD
FROM averageTasksPerProjectInRange a, averageTasksPerProjectInPreviousRange b, rawChange c, percentChange d