Breach and Attack Simulation Score Calculator
Turn BAS results into a prevented, detected and missed breakdown with a weighted control-efficacy score and drift check.
Inputs
Control Efficacy Score
69.5/ 100
Prevention Rate
57.0%
Detection Rate
83.0%
Silent Failure Rate
12.5%
Score Drift per Month
1.50points/month
Efficacy Rating
C — Fair
Priority Action
Close the critical silent failures first — those are scenarios you would never know happened
Step by step
Values used
Scenarios executed = 500 scenarios; Blocked outright = 285 scenarios; Not blocked but alerted = 130 scenarios; Logged with no alert = 45 scenarios; Critical scenarios neither blocked nor alerted = 12 scenarios; Score at the last run = 68 / 100; Days since the last run = 30 days
Breach and Attack Simulation Score
efficacy = preventedShare + 0.55×detectedShare + 0.20×loggedShare − criticalPenalty, so a fully prevented library scores 100, and detection is worth roughly half of prevention.
Control drift
drift = (currentScore − previousScore) × 30 ÷ daysSinceLastRun, expressed as points per month.
Control Efficacy Score
= 69.5 / 100
Prevention Rate
= 57.0
Detection Rate
= 83.0
Silent Failure Rate
= 12.5
Score Drift per Month
= 1.50 points/month
Efficacy Rating
= C — Fair
How it works
Prevention is worth roughly twice detection because a blocked action needs no analyst, and logging without alerting earns only token credit — it is useful in a post-incident investigation and useless during one. Critical scenarios that fail silently are deducted separately rather than just lowering an average, because burying them in a percentage is how a 70% score hides a total blind spot. The drift figure matters as much as the score: controls decay through configuration change even when nothing is attacked. BAS is the only routine way to find out that a control you are paying for stopped working three weeks ago, and drift is usually the finding rather than the initial score.
Formulas
Breach and Attack Simulation Score
efficacy = preventedShare + 0.55×detectedShare + 0.20×loggedShare − criticalPenalty, so a fully prevented library scores 100, and detection is worth roughly half of prevention.
- preventedShare
- Scenarios a control blocked outright
- detectedShare
- Scenarios that were not blocked but raised an alert
- loggedShare
- Scenarios recorded in logs with no alert — evidence only after the fact
- criticalPenalty
- 1.5 × the share of critical scenarios that failed silently, capped at 30 points
Control drift
drift = (currentScore − previousScore) × 30 ÷ daysSinceLastRun, expressed as points per month.
- drift
- Rate at which validated efficacy is improving or decaying
Frequently Asked Questions
How is Breach and Attack Simulation Score calculated?
efficacy = preventedShare + 0.55×detectedShare + 0.20×loggedShare − criticalPenalty, so a fully prevented library scores 100, and detection is worth roughly half of prevention. Prevention is worth roughly twice detection because a blocked action needs no analyst, and logging without alerting earns only token credit — it is useful in a post-incident investigation and useless during one. Critical scenarios that fail silently are deducted separately rather than just lowering an average, because burying them in a percentage is how a 70% score hides a total blind spot. The drift figure matters as much as the score: controls decay through configuration change even when nothing is attacked.
Why does Breach and Attack Simulation Score matter?
BAS is the only routine way to find out that a control you are paying for stopped working three weeks ago, and drift is usually the finding rather than the initial score.
What values do I need to enter?
This calculator takes 7 inputs: Scenarios executed, Blocked outright, Not blocked but alerted, Logged with no alert, Critical scenarios neither blocked nor alerted, Score at the last run, Days since the last run. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Why does logged-only score at all?
Because there is a real difference between an action you can reconstruct afterwards and one that left no trace. It is not defence, but it is the difference between a scoped investigation and guessing.
How often should simulations run?
Continuously for critical controls and at least monthly for the broad library. Anything less and the drift figure covers so long a window that you cannot tie a regression to the change that caused it.
You might also need
- Kill Chain Coverage CalculatorCommonly used together
- Zero Trust Maturity CalculatorCommonly used together
- Purple Team Effectiveness CalculatorCommonly used together
- LLM Prompt Injection Risk CalculatorAlso in Forensics & Emerging Threats
- Ransomware Impact CalculatorAlso in Forensics & Emerging Threats
- Enterprise Cybersecurity Health Score CalculatorAlso in Forensics & Emerging Threats