Rapport RGPD — statistiques anonymisées

Phishing Simulator — généré le {{ ($g['generated_at'] ?? now())->format('d/m/Y H:i') }}

✔ Données agrégées uniquement — aucun nom, email, IP ni résultat individuel. k-anonymité = {{ $g['k'] }}.

Filtres : {{ $filters->summary() }}

Cadrage RGPD

⚠️ Modèle générique fourni à titre indicatif — à faire valider par le DPO ou le service juridique avant toute diffusion externe (CSE, CNIL). Le contact DPO et la durée de conservation se modifient dans Réglages.

@if($g['suppressed'] ?? false)

L'effectif testé ({{ $g['sent'] }}) est inférieur au seuil de k-anonymité ({{ $g['k'] }}). Les chiffres sont masqués pour empêcher toute ré-identification.

@else

Vue d'ensemble

{{ $g['totals']['employees'] }}
Employés
{{ $g['totals']['sent'] }}
Envoyés
{{ $g['totals']['open_rate'] }}%
Ouverture
{{ $g['totals']['click_rate'] }}%
Clic
{{ $g['totals']['submit_rate'] }}%
Soumission
{{ $g['totals']['report_rate'] }}%
Signalement
{{ $g['totals']['no_reaction_rate'] }}%
Sans réaction
{{ $g['totals']['repeat_rate'] }}%
Récidive
@if(count($charts))

Graphiques

@foreach($charts as $chart)

{{ $chart['title'] }}

{!! $chart['svg'] !!}
@endforeach
@endif

Par département

@forelse($g['departments'] as $d) @empty @endforelse
DépartementTestésOuvertureClicSoumissionRécidive
{{ $d['dept'] }}{{ $d['sent'] }}{{ $d['open_rate'] }}%{{ $d['click_rate'] }}%{{ $d['submit_rate'] }}%{{ $d['repeat_rate'] === null ? 'masqué' : $d['repeat_rate'].'%' }}
Aucun groupe au-dessus du seuil.

Les départements de moins de {{ $g['k'] }} personnes sont regroupés dans « Autres » pour l'anonymat. Le taux de récidive est masqué si le groupe compte moins de {{ $g['k'] }} employés distincts.

@foreach(['entities' => 'Par entité', 'projects' => 'Par projet'] as $key => $title)

{{ $title }}

@forelse($g[$key] as $d) @empty @endforelse
{{ $key === 'entities' ? 'Entité' : 'Projet' }}TestésOuvertureClicSoumissionRécidive
{{ $d['dept'] }}{{ $d['sent'] }}{{ $d['open_rate'] }}%{{ $d['click_rate'] }}%{{ $d['submit_rate'] }}%{{ $d['repeat_rate'] === null ? 'masqué' : $d['repeat_rate'].'%' }}
Aucun groupe au-dessus du seuil.
@endforeach

Par campagne

@foreach($g['campaigns'] as $c) @if($c['masked']) @else @endif @endforeach
CampagneTestésOuvertureClicSoumission
{{ $c['name'] }}{{ $c['sent'] }}effectif < {{ $g['k'] }} — masqué{{ $c['open_rate'] }}%{{ $c['click_rate'] }}%{{ $c['submit_rate'] }}%
@if(count($g['countries']))

Clics par pays

@foreach($g['countries'] as $c) @endforeach
PaysClics
{{ $c['country'] }}{{ $c['clicks'] }}
@endif @endif