DORA Metrics
ShipLens computes all four DORA metrics directly from your git and PR data — no CI/CD integration required.
The Four Metrics
Deployment Frequency
How often your team ships to production.
| Level | Threshold |
|---|---|
| Elite | Multiple per day (>= 1/day) |
| High | Weekly (>= 1/week) |
| Medium | Monthly (>= 1/month) |
| Low | Less than monthly |
Detection strategies:
- Merge to main (default): Every merged PR to your production branches counts as a deployment
- Release tags: Git tags matching a pattern (e.g.,
v*) are treated as deployments
Lead Time for Changes
Time from first commit to production deployment. Broken down into four phases:
coding → pickup → review → deploy- Coding time: First commit to PR opened
- Pickup time: PR opened to first review
- Review time: First review to approval/merge
- Deploy time: Merge to deployment (usually instant for merge-to-main)
Uses median (not mean) to handle skewed distributions.
| Level | Threshold |
|---|---|
| Elite | Less than 1 hour |
| High | Less than 1 week |
| Medium | Less than 1 month |
| Low | More than 1 month |
Change Failure Rate
Percentage of deployments that cause a production incident.
Incidents are detected automatically from:
- Revert PRs: PRs with "revert" in the title or branch name
- Hotfix branches: PRs from branches matching
hotfix/*,fix/*,bugfix/*opened within 72 hours of a deployment
| Level | Threshold |
|---|---|
| Elite | <= 15% |
| High | <= 30% |
| Medium | <= 45% |
| Low | > 45% |
Mean Time to Recovery (MTTR)
How quickly your team recovers from production incidents.
Measured as the time from incident detection (the failed deployment) to resolution (the revert/hotfix PR being merged).
| Level | Threshold |
|---|---|
| Elite | Less than 1 hour |
| High | Less than 1 day |
| Medium | Less than 1 week |
| Low | More than 1 week |
Scoping
DORA metrics can be computed at three levels:
- Project: Metrics for a single repository
- Team: Aggregated across all projects the team owns domains in
- Company: Aggregated across all projects
Snapshots
Metrics are pre-computed into weekly and monthly snapshots to avoid expensive re-computation on every dashboard load. Snapshots include:
- All four metric values
- Per-metric performance levels
- Overall level (determined by the weakest metric)
- Lead time phase breakdown
- Deployment and incident counts
Snapshots are idempotent — safe to recompute at any time.
Overall Level
Your overall DORA level is determined by your weakest metric. If you're Elite on three metrics but Low on MTTR, your overall level is Low. This encourages balanced improvement across all four dimensions.
Data Sources
Everything is inferred from git and PR data — no manual tagging or CI/CD webhooks required:
| Data | Source |
|---|---|
| Deployments | Merged PRs to production branches or release tags |
| Incidents | Revert PRs, hotfix branch PRs |
| Lead time | Commit timestamps, PR lifecycle events |
| Recovery | Time between incident and resolution PR merge |
Phase 2 (Coming Soon)
Future versions will support GitHub Actions workflow detection for deployments and PagerDuty/OpsGenie integration for incident detection.
