BSides Charm · 2026
Dashboard metric
Last month
15d
→
This month
31d
Dashboards call this failure.
Better question: what actually changed?
What happened to backlog age? What happened to open risk?
MTTR went up after we made it a KPI.
The review question was:
“Why are we getting worse?”
That was a fun meeting.
MTTR rose because we finally closed older backlog, not just recent work.
Flow
How fast are we closing work?
Backlog Age
How old is the open backlog today?
Flow vs Backlog Age
Resolved records
Closed findings only.
Open records
Open findings only.
Same export. Different slice. Different signal.
The flow signal comes from resolved records.
The backlog-age signal comes from open records.
You do not need a new platform.
SLA views tell you if you hit a deadline, not the backlog age you still carry.
Hold constant
Start with one backlog.
Keep arrivals and capacity fixed.
Change one thing
Newest-First and Oldest-First are simplified closure patterns.
They are used only to reveal metric behavior.
Same team. Same capacity. Different simulated closure pattern.
This is not a remediation policy. It is a metric demonstration.
Prioritization is risk-based.
Severity
Exploitability
Exposure
Asset criticality
Threat intelligence
Not newest-first. Not oldest-first.
Metrics do not drive the queue. They show the consequences.
Newest-First looks better on MTTR alone.
MTTR is windowed. Label the window before calling a regression.
MOVA reveals the backlog you are carrying.
MOVA is not windowed. It reflects the backlog right now.
The MTTR Paradox
MTTR ↑
while
MOVA ↓
MTTR can rise while backlog age falls.
Oldest-First
92.6
MTTR
Newest-First
16.1
MTTR
A one-metric dashboard makes that the verdict.
Oldest-First
36.5
MOVA
Newest-First
726.4
MOVA
On backlog age, the story changes.
| Same data, different signals | |||
| Each metric answers one side of the earlier split. | |||
| Flow | Backlog Age | Interpretation | |
|---|---|---|---|
| MTTR | MOVA | Interpretation | |
| Oldest-First | 92.6 | 36.5 | MOVA is lower |
| Newest-First | 16.1 | 726.4 | MTTR is lower |
If you read only MTTR, you may misread progress.
Each signal is intentionally partial.
The mistake is reading either one alone.
Newest-First
MTTR 16.1 days
MOVA 726.4 days
Oldest-First
MTTR 92.6 days
MOVA 36.5 days
The disagreement is now visible.
Interpret it before judging progress.
MTTR + MOVA
System improving
MTTR + MOVA
Clearing older backlog
MTTR + MOVA
Backlog is aging
Read them together or you may misread progress.
Monthly view
Put both on the same monthly view.
Definitions
Use the earlier split consistently.
Review rule
Review MTTR with MOVA visible.
Framing
Label the MTTR time window before calling a regression.
Once the metric is defined, make the analysis reproducible.
Define the metric in code before it reaches the dashboard.
Start with an export. Define the metric in code first.
Policy
Review both together in the same view.
Guardrail
Prioritization stays risk-based.
Metrics verify decisions. They do not decide them.
Read both signals.
Question the disagreement.
If they disagree, the system is telling you something.
Read both or you may misread progress.
typeerror.com/mova
Caleb Kinney · typeerror.com/mova