KnowBe4 Security Awareness Reporting
Overview
KnowBe4 reporting provides visibility into an organization's security awareness posture through phishing simulation metrics, training completion data, and risk scores. Effective reporting translates raw data into actionable insights for security teams, management, and compliance stakeholders. This skill covers how to retrieve, interpret, and present KnowBe4 metrics.
Anti-triggers
- An "email security report" covering threats actually blocked —
every metric here measures simulations and training, not real
attacks. Threats stopped in production are
proofpoint-tap,
avanan-threats, or abnormal-security-threats.
- One campaign's results or one person's risk score — this skill
returns account-, department-, and trend-level aggregates; the
per-object detail sits in
knowbe4-phishing, knowbe4-training, or
knowbe4-users.
Key Concepts
Core Metrics
| Metric |
Definition |
Target |
| Phish-Prone Percentage (PPP) |
% of users who failed phishing tests |
Below 5% after 12 months |
| Training Completion Rate |
% of enrolled users who completed training |
Above 95% |
| Average Risk Score |
Mean risk score across all active users |
Below 30 |
| Reporting Rate |
% of phishing tests reported via PAB |
Above 70% |
| Click-to-Report Ratio |
Ratio of clicks to reports |
Below 0.5:1 |
| Time to First Click |
Average time from delivery to first click |
Increasing over time |
Metric Interpretation Guide
Phish-Prone Percentage (PPP):
PPP = (Users who failed / Users who received test) * 100
Interpretation:
- Decreasing PPP = Training is working
- Flat PPP = Need to change training approach
- Increasing PPP = New threats, new employees, or stale training
- Sudden spike = Especially effective phishing template
Training Completion Rate:
Completion Rate = (Completed enrollments / Total enrollments) * 100
Interpretation:
- Below 80% = Enforcement issue, need manager involvement
- 80-95% = Normal range, follow up on stragglers
- Above 95% = Excellent compliance
- 100% = Verify data -- may indicate auto-completion
Risk Score Trends:
Risk Trend = Current avg risk score - Previous period avg risk score
Interpretation:
- Negative trend = Improving (good)
- Flat trend = Plateau, consider changing approach
- Positive trend = Degrading, investigate cause
Reporting Timeframes
| Timeframe |
Use Case |
Audience |
| Weekly |
Operational monitoring, active campaign tracking |
Security team |
| Monthly |
Trend analysis, department comparisons |
Security manager |
| Quarterly |
Executive summary, compliance reporting |
Leadership, auditors |
| Annual |
Year-over-year progress, program justification |
Board, C-suite |
Industry Benchmarks (2024)
| Metric |
Small (<250) |
Medium (250-1000) |
Large (1000+) |
| Initial PPP |
32.4% |
30.1% |
31.5% |
| PPP after 90 days training |
17.6% |
16.4% |
15.2% |
| PPP after 12 months |
5.4% |
4.8% |
4.5% |
| Training completion |
87% |
91% |
93% |
| PAB reporting rate |
45% |
52% |
58% |
Field Reference
Account-Level Summary Fields
| Field |
Type |
Description |
total_users |
int |
Total active users |
current_risk_score |
float |
Organization-wide average risk score |
phish_prone_percentage |
float |
Organization-wide PPP |
total_phishing_campaigns |
int |
Total phishing campaigns run |
total_training_campaigns |
int |
Total training campaigns run |
Phishing Summary Fields
| Field |
Type |
Description |
total_campaigns |
int |
Number of phishing campaigns |
total_tests_sent |
int |
Total phishing emails delivered |
total_clicked |
int |
Total clicks across all campaigns |
total_reported |
int |
Total reports via PAB |
overall_ppp |
float |
Overall phish-prone percentage |
ppp_by_department |
object |
PPP broken down by department |
ppp_by_location |
object |
PPP broken down by location |
ppp_trend |
array |
PPP over time (monthly) |
Training Summary Fields
| Field |
Type |
Description |
total_campaigns |
int |
Number of training campaigns |
total_enrollments |
int |
Total user enrollments |
completed |
int |
Number completed |
in_progress |
int |
Number in progress |
not_started |
int |
Number not started |
past_due |
int |
Number past due |
completion_rate |
float |
Overall completion percentage |
average_time_spent |
int |
Average seconds spent on training |
completion_by_department |
object |
Completion broken down by department |
MCP Tools
| Tool |
Description |
Parameters |
knowbe4_account_get |
Account-level summary: subscription level, seats, admin details, current risk score |
none |
knowbe4_account_risk_score_history |
Account risk score over time |
page, per_page |
knowbe4_reporting_phishing_summary |
Aggregate phishing stats: total tests, delivered/opened/clicked/reported, average PPP, click and report rates |
page, per_page |
knowbe4_reporting_training_summary |
Aggregate training stats: total, active and completed campaign counts |
page, per_page |
knowbe4_reporting_risk_overview |
Account risk posture: current score, recent trend, highest-risk groups |
none |
What the reporting surface will not do
These three constraints govern almost every report you will be asked for,
and none of them are visible from the tool names.
No date filtering, anywhere. None of these tools takes a date range —
knowbe4_reporting_risk_overview takes no arguments at all. "Phishing
results for March" cannot be requested; it has to be reconstructed by
reading Phishing Security Tests and filtering on their dates client-side.
The summaries are page-scoped, and they do not say so.
knowbe4_reporting_phishing_summary reads a single page of PSTs (default
per_page=500) and averages over it, then returns
average_phish_prone_percentage with no marker that it covered part of
the account. knowbe4_reporting_training_summary does the same over
campaigns. Read back the page and per_page fields it echoes and state
the coverage in the report, or paginate and aggregate yourself. Two
summaries taken at different sizes are not comparable.
There is no PPP-trend tool and no department breakdown. Both are
routinely asked for and neither exists:
- PPP over time has to be assembled from
knowbe4_phishing_security_tests_list, taking each test's
phish_prone_percentage and its date. Do not substitute
knowbe4_account_risk_score_history — risk score and phish-prone
percentage are different measures on different scales, and a risk-score
trendline presented as a PPP trend is wrong in a way a client cannot
catch.
- Department metrics have to be aggregated from
knowbe4_users_list,
grouping on each user's department field. knowbe4_groups_list is
not a substitute: KnowBe4 groups are membership lists that may or may
not correspond to departments, and reporting group risk scores under
department headings misstates who the numbers describe.
Common Workflows
Monthly Security Awareness Report
- Get account summary with
knowbe4_account_get for top-level metrics
- Pull the phishing aggregate with
knowbe4_reporting_phishing_summary,
and record the page/per_page it covered
- Pull the training aggregate with
knowbe4_reporting_training_summary
- Scope to the month yourself — read
knowbe4_phishing_security_tests_list and keep the tests whose dates
fall in the reporting period; the summaries above are not date-filtered
- Build the PPP trend from those per-test
phish_prone_percentage
values, bucketed by month
- Aggregate by department from
knowbe4_users_list, grouping on the
department field
- Compare to previous month for trend direction
- Format report with key findings, recommendations, and an explicit
note of what the figures cover
Quarterly Executive Report
- Get 3-month summary across all metrics
- Calculate quarter-over-quarter change for PPP, completion rate, risk score
- Identify top 5 highest-risk departments
- Highlight achievements (PPP improvements, 100% completion groups)
- List recommendations for next quarter
- Include industry benchmarks for context
Compliance Audit Report
- List all training campaigns for the audit period
- Get completion rates for each required training
- Identify non-compliant users (past_due or not_started)
- Document remediation actions taken for non-compliance
- Export data with timestamps for audit evidence
Risk Trend Analysis
- Pull risk score history for the organization over 12 months
- Overlay with campaign dates -- phishing tests and training launches
- Correlate risk changes with specific events
- Identify which campaigns had the most impact on risk
- Recommend optimization of campaign mix
New Client Baseline Report
- Run baseline phishing test before any training
- Record initial PPP as the starting point
- Document initial risk score distribution
- Set targets based on industry benchmarks
- Schedule follow-up assessment at 90 days
Report Templates
Executive Summary Format
SECURITY AWARENESS REPORT - [Month/Quarter]
============================================
KEY METRICS
- Phish-Prone Percentage: XX.X% (change from last period)
- Training Completion Rate: XX.X%
- Average Risk Score: XX.X
- PAB Reporting Rate: XX.X%
HIGHLIGHTS
- [Notable achievement or concern]
- [Notable achievement or concern]
DEPARTMENT RANKING (by PPP, best to worst)
1. [Department] - X.X%
2. [Department] - X.X%
...
RECOMMENDATIONS
1. [Action item]
2. [Action item]
Department Comparison Format
DEPARTMENT SECURITY AWARENESS COMPARISON
=========================================
Department | PPP | Training | Risk Score | Trend
-------------|--------|----------|------------|------
IT | 3.2% | 98% | 15.4 | ↓
Finance | 8.1% | 95% | 28.7 | ↓
Sales | 22.4% | 82% | 52.1 | →
HR | 12.7% | 91% | 35.2 | ↓
Executive | 15.3% | 88% | 41.0 | ↑
Error Handling
Common API Errors
| Code |
Message |
Resolution |
| 400 |
Invalid date range |
Use ISO 8601 format (YYYY-MM-DD) |
| 401 |
Invalid API token |
Verify KNOWBE4_API_KEY |
| 403 |
Insufficient permissions |
API token needs Reporting permissions |
| 404 |
No data for period |
No campaigns run during specified dates |
| 429 |
Rate limit exceeded |
Implement backoff (see api-patterns) |
Data Considerations
| Issue |
Cause |
Resolution |
| PPP seems too low |
Small sample size |
Need more campaigns for statistical significance |
| Completion rate drops |
New campaign started with fresh enrollments |
Wait for campaign to mature |
| Risk score not updating |
Calculated periodically, not real-time |
Allow 24-48 hours for updates |
| Department data missing |
Users lack department field |
Update user profiles |
| Trend shows no data points |
Date range too narrow |
Expand date range |
Best Practices
- Report consistently -- Use the same metrics and format every period
- Show trends, not snapshots -- A single PPP number is less useful than 6-month trend
- Use benchmarks -- Compare against industry averages for context
- Segment by audience -- Executives want summary; security team wants details
- Include recommendations -- Every report should have actionable next steps
- Track leading indicators -- PAB reporting rate predicts future PPP improvement
- Celebrate successes -- Highlight departments and users who improve
- Avoid vanity metrics -- Focus on metrics that drive security outcomes
- Automate where possible -- Schedule recurring reports to reduce manual effort
- Correlate with real incidents -- Connect awareness metrics to actual security events
Related Skills
1---2name: knowbe4-reporting3description: KnowBe4 security awareness reporting: phishing summary statistics, training completion rates, risk score overviews, trend analysis, organizational benchmarks, and executive dashboards, including how to interpret metrics and communicate posture to stakeholders.4---56# KnowBe4 Security Awareness Reporting78## Overview910KnowBe4 reporting provides visibility into an organization's security awareness posture through phishing simulation metrics, training completion data, and risk scores. Effective reporting translates raw data into actionable insights for security teams, management, and compliance stakeholders. This skill covers how to retrieve, interpret, and present KnowBe4 metrics.1112## Anti-triggers1314- **An "email security report" covering threats actually blocked** —15 every metric here measures simulations and training, not real16 attacks. Threats stopped in production are `proofpoint-tap`,17 `avanan-threats`, or `abnormal-security-threats`.18- **One campaign's results or one person's risk score** — this skill19 returns account-, department-, and trend-level aggregates; the20 per-object detail sits in `knowbe4-phishing`, `knowbe4-training`, or21 `knowbe4-users`.2223## Key Concepts2425### Core Metrics2627| Metric | Definition | Target |28|--------|-----------|--------|29| **Phish-Prone Percentage (PPP)** | % of users who failed phishing tests | Below 5% after 12 months |30| **Training Completion Rate** | % of enrolled users who completed training | Above 95% |31| **Average Risk Score** | Mean risk score across all active users | Below 30 |32| **Reporting Rate** | % of phishing tests reported via PAB | Above 70% |33| **Click-to-Report Ratio** | Ratio of clicks to reports | Below 0.5:1 |34| **Time to First Click** | Average time from delivery to first click | Increasing over time |3536### Metric Interpretation Guide3738**Phish-Prone Percentage (PPP):**39```40PPP = (Users who failed / Users who received test) * 1004142Interpretation:43- Decreasing PPP = Training is working44- Flat PPP = Need to change training approach45- Increasing PPP = New threats, new employees, or stale training46- Sudden spike = Especially effective phishing template47```4849**Training Completion Rate:**50```51Completion Rate = (Completed enrollments / Total enrollments) * 1005253Interpretation:54- Below 80% = Enforcement issue, need manager involvement55- 80-95% = Normal range, follow up on stragglers56- Above 95% = Excellent compliance57- 100% = Verify data -- may indicate auto-completion58```5960**Risk Score Trends:**61```62Risk Trend = Current avg risk score - Previous period avg risk score6364Interpretation:65- Negative trend = Improving (good)66- Flat trend = Plateau, consider changing approach67- Positive trend = Degrading, investigate cause68```6970### Reporting Timeframes7172| Timeframe | Use Case | Audience |73|-----------|----------|----------|74| **Weekly** | Operational monitoring, active campaign tracking | Security team |75| **Monthly** | Trend analysis, department comparisons | Security manager |76| **Quarterly** | Executive summary, compliance reporting | Leadership, auditors |77| **Annual** | Year-over-year progress, program justification | Board, C-suite |7879### Industry Benchmarks (2024)8081| Metric | Small (<250) | Medium (250-1000) | Large (1000+) |82|--------|-------------|-------------------|---------------|83| Initial PPP | 32.4% | 30.1% | 31.5% |84| PPP after 90 days training | 17.6% | 16.4% | 15.2% |85| PPP after 12 months | 5.4% | 4.8% | 4.5% |86| Training completion | 87% | 91% | 93% |87| PAB reporting rate | 45% | 52% | 58% |8889## Field Reference9091### Account-Level Summary Fields9293| Field | Type | Description |94|-------|------|-------------|95| `total_users` | int | Total active users |96| `current_risk_score` | float | Organization-wide average risk score |97| `phish_prone_percentage` | float | Organization-wide PPP |98| `total_phishing_campaigns` | int | Total phishing campaigns run |99| `total_training_campaigns` | int | Total training campaigns run |100101### Phishing Summary Fields102103| Field | Type | Description |104|-------|------|-------------|105| `total_campaigns` | int | Number of phishing campaigns |106| `total_tests_sent` | int | Total phishing emails delivered |107| `total_clicked` | int | Total clicks across all campaigns |108| `total_reported` | int | Total reports via PAB |109| `overall_ppp` | float | Overall phish-prone percentage |110| `ppp_by_department` | object | PPP broken down by department |111| `ppp_by_location` | object | PPP broken down by location |112| `ppp_trend` | array | PPP over time (monthly) |113114### Training Summary Fields115116| Field | Type | Description |117|-------|------|-------------|118| `total_campaigns` | int | Number of training campaigns |119| `total_enrollments` | int | Total user enrollments |120| `completed` | int | Number completed |121| `in_progress` | int | Number in progress |122| `not_started` | int | Number not started |123| `past_due` | int | Number past due |124| `completion_rate` | float | Overall completion percentage |125| `average_time_spent` | int | Average seconds spent on training |126| `completion_by_department` | object | Completion broken down by department |127128## MCP Tools129130| Tool | Description | Parameters |131|------|-------------|----------------|132| `knowbe4_account_get` | Account-level summary: subscription level, seats, admin details, current risk score | none |133| `knowbe4_account_risk_score_history` | Account risk score over time | `page`, `per_page` |134| `knowbe4_reporting_phishing_summary` | Aggregate phishing stats: total tests, delivered/opened/clicked/reported, average PPP, click and report rates | `page`, `per_page` |135| `knowbe4_reporting_training_summary` | Aggregate training stats: total, active and completed campaign counts | `page`, `per_page` |136| `knowbe4_reporting_risk_overview` | Account risk posture: current score, recent trend, highest-risk groups | none |137138### What the reporting surface will not do139140These three constraints govern almost every report you will be asked for,141and none of them are visible from the tool names.142143**No date filtering, anywhere.** None of these tools takes a date range —144`knowbe4_reporting_risk_overview` takes no arguments at all. "Phishing145results for March" cannot be requested; it has to be reconstructed by146reading Phishing Security Tests and filtering on their dates client-side.147148**The summaries are page-scoped, and they do not say so.**149`knowbe4_reporting_phishing_summary` reads a single page of PSTs (default150`per_page=500`) and averages over it, then returns151`average_phish_prone_percentage` with no marker that it covered part of152the account. `knowbe4_reporting_training_summary` does the same over153campaigns. Read back the `page` and `per_page` fields it echoes and state154the coverage in the report, or paginate and aggregate yourself. Two155summaries taken at different sizes are not comparable.156157**There is no PPP-trend tool and no department breakdown.** Both are158routinely asked for and neither exists:159160- *PPP over time* has to be assembled from161 `knowbe4_phishing_security_tests_list`, taking each test's162 `phish_prone_percentage` and its date. Do **not** substitute163 `knowbe4_account_risk_score_history` — risk score and phish-prone164 percentage are different measures on different scales, and a risk-score165 trendline presented as a PPP trend is wrong in a way a client cannot166 catch.167- *Department metrics* have to be aggregated from `knowbe4_users_list`,168 grouping on each user's `department` field. `knowbe4_groups_list` is169 not a substitute: KnowBe4 groups are membership lists that may or may170 not correspond to departments, and reporting group risk scores under171 department headings misstates who the numbers describe.172173## Common Workflows174175### Monthly Security Awareness Report1761771. **Get account summary** with `knowbe4_account_get` for top-level metrics1782. **Pull the phishing aggregate** with `knowbe4_reporting_phishing_summary`,179 and record the `page`/`per_page` it covered1803. **Pull the training aggregate** with `knowbe4_reporting_training_summary`1814. **Scope to the month yourself** — read182 `knowbe4_phishing_security_tests_list` and keep the tests whose dates183 fall in the reporting period; the summaries above are not date-filtered1845. **Build the PPP trend** from those per-test `phish_prone_percentage`185 values, bucketed by month1866. **Aggregate by department** from `knowbe4_users_list`, grouping on the187 `department` field1887. **Compare to previous month** for trend direction1898. **Format report** with key findings, recommendations, and an explicit190 note of what the figures cover191192### Quarterly Executive Report1931941. **Get 3-month summary** across all metrics1952. **Calculate quarter-over-quarter change** for PPP, completion rate, risk score1963. **Identify top 5 highest-risk departments**1974. **Highlight achievements** (PPP improvements, 100% completion groups)1985. **List recommendations** for next quarter1996. **Include industry benchmarks** for context200201### Compliance Audit Report2022031. **List all training campaigns** for the audit period2042. **Get completion rates** for each required training2053. **Identify non-compliant users** (past_due or not_started)2064. **Document remediation actions** taken for non-compliance2075. **Export data** with timestamps for audit evidence208209### Risk Trend Analysis2102111. **Pull risk score history** for the organization over 12 months2122. **Overlay with campaign dates** -- phishing tests and training launches2133. **Correlate risk changes** with specific events2144. **Identify which campaigns** had the most impact on risk2155. **Recommend optimization** of campaign mix216217### New Client Baseline Report2182191. **Run baseline phishing test** before any training2202. **Record initial PPP** as the starting point2213. **Document initial risk score distribution**2224. **Set targets** based on industry benchmarks2235. **Schedule follow-up assessment** at 90 days224225## Report Templates226227### Executive Summary Format228229```230SECURITY AWARENESS REPORT - [Month/Quarter]231============================================232233KEY METRICS234- Phish-Prone Percentage: XX.X% (change from last period)235- Training Completion Rate: XX.X%236- Average Risk Score: XX.X237- PAB Reporting Rate: XX.X%238239HIGHLIGHTS240- [Notable achievement or concern]241- [Notable achievement or concern]242243DEPARTMENT RANKING (by PPP, best to worst)2441. [Department] - X.X%2452. [Department] - X.X%246...247248RECOMMENDATIONS2491. [Action item]2502. [Action item]251```252253### Department Comparison Format254255```256DEPARTMENT SECURITY AWARENESS COMPARISON257=========================================258259Department | PPP | Training | Risk Score | Trend260-------------|--------|----------|------------|------261IT | 3.2% | 98% | 15.4 | ↓262Finance | 8.1% | 95% | 28.7 | ↓263Sales | 22.4% | 82% | 52.1 | →264HR | 12.7% | 91% | 35.2 | ↓265Executive | 15.3% | 88% | 41.0 | ↑266```267268## Error Handling269270### Common API Errors271272| Code | Message | Resolution |273|------|---------|------------|274| 400 | Invalid date range | Use ISO 8601 format (YYYY-MM-DD) |275| 401 | Invalid API token | Verify KNOWBE4_API_KEY |276| 403 | Insufficient permissions | API token needs Reporting permissions |277| 404 | No data for period | No campaigns run during specified dates |278| 429 | Rate limit exceeded | Implement backoff (see api-patterns) |279280### Data Considerations281282| Issue | Cause | Resolution |283|-------|-------|------------|284| PPP seems too low | Small sample size | Need more campaigns for statistical significance |285| Completion rate drops | New campaign started with fresh enrollments | Wait for campaign to mature |286| Risk score not updating | Calculated periodically, not real-time | Allow 24-48 hours for updates |287| Department data missing | Users lack department field | Update user profiles |288| Trend shows no data points | Date range too narrow | Expand date range |289290## Best Practices2912921. **Report consistently** -- Use the same metrics and format every period2932. **Show trends, not snapshots** -- A single PPP number is less useful than 6-month trend2943. **Use benchmarks** -- Compare against industry averages for context2954. **Segment by audience** -- Executives want summary; security team wants details2965. **Include recommendations** -- Every report should have actionable next steps2976. **Track leading indicators** -- PAB reporting rate predicts future PPP improvement2987. **Celebrate successes** -- Highlight departments and users who improve2998. **Avoid vanity metrics** -- Focus on metrics that drive security outcomes3009. **Automate where possible** -- Schedule recurring reports to reduce manual effort30110. **Correlate with real incidents** -- Connect awareness metrics to actual security events302303## Related Skills304305- [KnowBe4 Phishing](../phishing/SKILL.md) - Phishing simulation campaigns306- [KnowBe4 Training](../training/SKILL.md) - Training campaign management307- [KnowBe4 Users](../users/SKILL.md) - User management and risk scores308- [KnowBe4 API Patterns](../api-patterns/SKILL.md) - Authentication, pagination, and rate limits