The four metrics
| Metric | What it measures | Good means… |
|---|---|---|
| Deployment frequency | How often code reaches production | Shipping small changes frequently |
| Lead time for changes | Time from PR merge to production deployment | Fast path from code complete to live |
| Change failure rate | Percentage of deployments that fail | High-quality releases |
| Mean time to recovery | Time to recover from a failed deployment | Fast incident response |
DORA performance levels
The DORA team classifies organizations into four performance levels based on benchmarks:| Level | Deployment frequency | Lead time | Change failure rate | MTTR |
|---|---|---|---|---|
| Elite | On demand (multiple per day) | Less than 1 hour | 0-5% | Less than 1 hour |
| High | Weekly to monthly | 1 day to 1 week | 5-10% | Less than 1 day |
| Medium | Monthly to every 6 months | 1 week to 1 month | 10-15% | 1 day to 1 week |
| Low | Less than once per 6 months | More than 1 month | 15%+ | More than 1 week |
How Periscope computes DORA metrics
DORA metrics require two data sources working together:- Pull request data from GitHub — captures when code is merged and ready for deployment
- Deployment data from your CI/CD pipeline — captures when code reaches an environment
commitSha field. When a deployment arrives, Periscope matches its commit SHA against the merge commit SHAs of your pull requests. This link is what enables lead time calculation — the time between a PR being merged and the deployment containing that commit reaching production.
Data requirements
To see all four DORA metrics, you need:Deployment frequency
Deployment frequency
Requires deployment events sent to the deployment webhook. No PR data needed — this metric is purely about how often you deploy.
Lead time for changes
Lead time for changes
Requires both GitHub connected (for PR merge timestamps) and deployment events with
commitSha matching your merged PRs. The more accurate your commit SHAs, the better the lead time data.Change failure rate
Change failure rate
Requires deployment events with accurate
status fields. Periscope counts deployments with status: "failure" against the total.Mean time to recovery
Mean time to recovery
Requires deployment events with
completedAt timestamps. Periscope measures the time between a failure deployment and the next success deployment for the same service.Why DORA matters
DORA research consistently shows that high-performing teams — those with elite DORA metrics — also achieve better business outcomes:- Throughput and stability are not tradeoffs. Elite teams deploy more often and have lower failure rates.
- Speed enables quality. Shorter lead times mean smaller changes, which are easier to review, test, and roll back.
- Recovery speed matters more than prevention. No team avoids failures entirely. The difference between elite and low performers is how fast they recover.
Get started with DORA metrics
Follow the quickstart to connect GitHub and send your first deployment event.