Rapport sur l'efficacité de la gestion des signalements des modérateurs

Cette requête SQL Data Explorer est conçue pour fournir des informations sur l’efficacité et la réactivité des modérateurs de forum dans le traitement des signalements soulevés par les utilisateurs sur les publications.

Ce rapport montre le nombre de signalements traités et le temps moyen de résolution des signalements par chaque modérateur sur un site, sur une période spécifiée.

Comprendre la rapidité et l’efficacité avec lesquelles les modérateurs répondent aux signalements peut aider les administrateurs à garantir que le forum reste un espace sûr et accueillant pour tous les utilisateurs.

-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2024-01-01

WITH period_actions AS (
    SELECT pa.id,
           pa.post_action_type_id,
           pa.created_at,
           pa.agreed_at,
           pa.disagreed_at,
           pa.deferred_at,
           pa.agreed_by_id,
           pa.disagreed_by_id,
           pa.deferred_by_id,
           pa.post_id,
           pa.user_id,
           COALESCE(pa.disagreed_at, pa.agreed_at, pa.deferred_at) AS responded_at,
           EXTRACT(EPOCH FROM (COALESCE(pa.disagreed_at, pa.agreed_at, pa.deferred_at) - pa.created_at)) / 60 AS time_to_resolution_minutes -- temps de résolution en minutes
    FROM post_actions pa
    WHERE pa.post_action_type_id IN (3,4,6,7,8) -- Types de signalement
      AND pa.created_at >= :start_date
      AND pa.created_at <= :end_date
),
moderator_actions AS (
    SELECT pa.id,
           pa.post_id,
           pa.created_at,
           pa.responded_at,
           pa.time_to_resolution_minutes,
           COALESCE(pa.agreed_by_id, pa.disagreed_by_id, pa.deferred_by_id) AS moderator_id
    FROM period_actions pa
    WHERE COALESCE(pa.agreed_by_id, pa.disagreed_by_id, pa.deferred_by_id) IS NOT NULL
),
moderator_stats AS (
    SELECT
        m.moderator_id,
        u.username AS moderator_username,
        COUNT(m.id) AS handled_flags,
        AVG(m.time_to_resolution_minutes) AS avg_resolution_time_minutes
    FROM moderator_actions m
    JOIN users u ON u.id = m.moderator_id
    GROUP BY m.moderator_id, u.username
)
SELECT
    ms.moderator_username,
    ms.handled_flags,
    ROUND(ms.avg_resolution_time_minutes::numeric, 2) AS avg_resolution_time_minutes
FROM moderator_stats ms
ORDER BY ms.handled_flags DESC, ms.avg_resolution_time_minutes ASC

Explication de la requête SQL

Paramètres

La requête utilise deux paramètres pour définir la plage de dates pour laquelle les données sont analysées :

  • :start_date : La date de début de la période que vous souhaitez analyser, au format AAAA-MM-JJ.
  • :end_date : La date de fin de la période que vous souhaitez analyser, également au format AAAA-MM-JJ.

CTEs expliqués

  • period_actions : Cette CTE sélectionne les signalements soulevés pendant la période spécifiée, en se concentrant sur des types de signalement spécifiques. Elle calcule le temps nécessaire pour résoudre chaque signalement (en minutes) depuis le moment où il a été créé jusqu’à ce qu’il soit approuvé, rejeté ou différé par un modérateur.
  • moderator_actions : Cette CTE filtre les actions de period_actions pour inclure uniquement celles qui ont reçu une réponse d’un modérateur. Elle identifie le modérateur responsable de chaque action.
  • moderator_stats : Cette CTE agrège les données de moderator_actions, en calculant le nombre total de signalements traités par chaque modérateur et le temps moyen de résolution (en minutes) pour les signalements qu’ils ont traités.

Résultats

Le résultat final de la requête fournit une liste de modérateurs triés par le nombre de signalements qu’ils ont traités, avec un tri secondaire par leur temps de résolution moyen (par ordre croissant). Pour chaque modérateur, le rapport indique :

  • moderator_username : Le nom d’utilisateur du modérateur.
  • handled_flags : Le nombre total de signalements traités par le modérateur pendant la période spécifiée.
  • avg_resolution_time_minutes : Le temps moyen pris par le modérateur pour résoudre un signalement, arrondi à deux décimales.

Exemple de résultats

moderator_username handled_flags avg_resolution_time_minutes
Modérateur1 343 39.41
Modérateur2 70 30.51
Modérateur3 63 42.21