Your deploy cadence isn't one number. It's three.
Most DORA dashboards give you a single deploys-per-day figure. Optibot breaks it out by environment, so you can see changes moving daily into development and weekly into production, and know exactly which stage is holding everything up.
More daily staging deploys, up from 1-2 to 5-6
Prado
Faster PR cycle times across engineering teams
Multiple customers
Reduction in review time, 4 hours to 1 per PR
Nearfleet
One average hides the stage that's stuck
1.2 deploys per day sounds healthy. Split by environment, development is moving almost daily and production about once a week. The bottleneck is between them, and an aggregate number will never say so.
Deployment Frequency in Optibot Insights, one repository over 90 days.
Cadence tracking, and the context to act on it
Every environment, separately
Development, staging, and production each get their own per-day rate, laid out as a funnel. A blended number hides the stage where work piles up.
Deploy Velocity over time
A time series per environment, each against its own average baseline, so a drop in one stage is visible instead of lost in an aggregate.
Period-over-period trend
Any date range, with the average per day, the total, and the change against the previous period. A cadence that fell 14% is a number, not a hunch.
Zero setup on GitHub
Deploy to GitHub environments and the data pulls through automatically. Repos that ship by cutting releases switch to Releases mode instead.
Ask Optibot in plain English
Ask "how many times did we deploy to production last month?" and get totals, average per day, and the per-repo breakdown. No SQL, no dashboard building.
Next to the review data
Cadence is downstream of review time, and Optibot performs the review. PR cycle time sits in the same dashboard as the deploy numbers it explains.
Already on GitHub? Then it's already tracking.
No pipeline to build. No ETL job. No monitoring tool to plug in. Optibot reads your deployments through the same connection that reviews your PRs, so the numbers are waiting the first time you open Insights.
You deploy to GitHub environments — Tracked automatically. Nothing to switch on.
You ship by cutting releases instead — Flip that repo to Releases mode.
Bot or preview environments adding noise — Hide or reorder them, per repo.
Deployment frequency is a symptom. Review time is often the cause.
Teams rarely deploy infrequently because they cannot write code fast enough. They deploy infrequently because changes queue in review. PRs wait for a first look, work piles up in branches, engineers batch to avoid revisiting old work, and the release cadence settles to match the review cadence.
LinearB, Jellyfish, DX, and Swarmia will report that cadence accurately, but they sit outside the review process that sets it. Optibot performs the review, so the deploy numbers sit beside the PR cycle time and review activity that explain them, on one subscription.
Find out which stage is holding you up
Deployment frequency is part of Optibot Insights, included on Pro and Max. Start a free trial on Max, no credit card, and connect a repo to see your real per-environment cadence.
Also see: Engineering Insights · DORA metrics guide · How to reduce PR cycle time · PR cycle time docs
Deployment Frequency — Common Questions
What is deployment frequency?
Deployment frequency is how often your team successfully deploys code to production. It is one of the four DORA metrics, alongside lead time for changes, change failure rate, and time to restore service. DORA 2024 found that elite-performing teams deploy on-demand, multiple times per day, while high performers deploy between once per day and once per week. It is both a productivity measure and a risk signal: teams that deploy less frequently tend to batch changes into larger, riskier releases.
How does Optibot track deployment frequency?
Optibot Insights pulls deployment activity straight from the GitHub connection you already set up for code reviews, so there is no separate data pipeline, ETL job, or monitoring integration to build. If your workflows deploy to GitHub environments, it works with no configuration at all. Optibot reports the average deploys per day, the total deploy count for the period, and the change against the previous period.
Can I see deployment frequency per environment?
Yes, and this is the part a single headline number tends to hide. Optibot breaks the rate out by environment as a funnel: deploys into development, into staging, and into production each get their own per-day figure, with a Deploy Velocity chart that plots each environment against its own average. A team deploying 0.9 times a day into development but 0.13 times a day into production has a staging bottleneck, which one blended number would not show.
Does it work with GitHub Actions?
Yes, and this is the zero-setup path. When a GitHub Actions workflow deploys to an environment such as production, staging, or development, Optibot counts that deployment automatically. If your pipeline ships by cutting GitHub releases instead, you can switch that repo to Releases mode. The setting is per repository, so repos with different pipeline conventions can each be handled correctly.
Is there any setup, or does it populate automatically?
If you deploy using GitHub environments, there is no setup at all. Optibot pulls the deployment data directly from the GitHub connection it already uses to review your PRs, with no configuration, no data pipeline, and nothing to switch on. Configuration is only there if you want it: repos that ship by cutting GitHub releases instead can be switched to Releases mode, and you can hide environments you do not want in the charts, such as bot or preview targets, and reorder the ones you keep.
Why is our deployment frequency low even though the team ships a lot of code?
In most teams the binding constraint is review time, not writing code. When PRs sit waiting for review for hours or days, work accumulates in branches, engineers batch their changes to reduce context-switching overhead, and the release cadence settles to match the review cadence. The per-environment funnel is what makes this visible: high development activity with low production throughput points at a stage between the two, and because Optibot also performs the code review, the PR cycle time data that explains the gap is in the same dashboard.
Can I ask about deployment frequency in plain English?
Yes. Ask Optibot is available on every page of the Insights app, and deployment data is one of the things it can query directly. Ask something like "how many times did we deploy to production last month?" or "which repos deployed most in Q2?" and it returns the total deployments for the period, the average deployments per day, and the breakdown by repository and environment. You can scope a question by date range, by a single environment, or by repo. Because the same assistant can also query PR cycle time, review activity, and contributor data, it can answer questions that span both sides, such as whether a drop in deploy cadence lines up with a rise in review time. Deployment queries require the GitHub integration.
Can Optibot track all four DORA metrics?
Optibot Insights covers deployment frequency and, through PR cycle time and lead time, the delivery speed side of DORA from GitHub and GitLab activity. Change failure rate and time to restore service require correlating deployments with incident data from a monitoring system such as PagerDuty or Opsgenie, so those two need an additional integration rather than coming from source control alone.
Which plan includes deployment frequency tracking?
Deployment frequency is part of Optibot Insights, which is included on the Pro and Max plans and is not included on Starter. Every plan starts with a free trial on Max, so you can connect a repo and see your real deploy cadence before choosing a plan.