Metric · DORA

What is deployment frequency, and how do you measure it in Metabase?

Deployment frequency is how often a team successfully releases to production. It's one of the four DORA metrics and the clearest signal of delivery throughput — elite teams deploy on demand, many times a day. Measure it in Metabase from GitHub or GitLab deploy data synced into a database.

TL;DR — Count successful production deployments over time. A merged PR/MR is not a deployment — anchor to real releases (GitHub Deployments/Actions, GitLab environments/pipelines, or your CD tool).

What deployment frequency measures

It counts production releases per day/week, not commits or merges. High, steady frequency usually means small batch sizes and low-risk changes — which correlates with the stability metrics (change failure rate and MTTR) staying healthy.

  • Restrict to environment = 'production'.
  • Count only successful deploys (status = 'success') — failed/rolled-back attempts aren't releases.
  • Segment by service/repo so a busy monolith doesn't mask quiet services.

What data does it need?

  • A deployments table: environment, status, created_at, and repository_id/project_id.
  • GitHub: the Deployments API or Actions deploy workflows.GitLab: environments/deployments from CI/CD pipelines.

SQL patterns

Deployments per week (by service)PostgreSQL
SELECT
  date_trunc('week', created_at) AS week,
  COUNT(*)                       AS deployments,
  COUNT(DISTINCT repository_id)  AS services_deployed
FROM deployments
WHERE environment = 'production'
  AND status = 'success'
GROUP BY 1
ORDER BY 1;
Average deploys per day (trailing 28 days)PostgreSQL
SELECT
  AVG(daily.deploys) AS avg_deploys_per_day
FROM (
  SELECT date_trunc('day', created_at) AS day, COUNT(*) AS deploys
  FROM deployments
  WHERE environment = 'production' AND status = 'success'
    AND created_at >= CURRENT_DATE - INTERVAL '28 days'
  GROUP BY 1
) daily;

Pitfalls

Counting merges as deploys.→ A merge to main is not a production release; join to real deploys.
Including failed deploys.→ Count only successful production deployments.
Mixing environments.→ Staging and preview deploys inflate the number — filter to production.
One number for all services.→ Segment by repo/service; aggregates hide quiet ones.

Where this metric applies

Metrics

Integrations

Dashboards

FAQ

Is deployment frequency the same as release frequency?
Effectively yes for DORA — it's how often code reaches production. If you batch many merges into one release, count the release.
Per day or per week?
Report both: a weekly trend for stability and a trailing per-day average to place yourself in a DORA band.
We deploy continuously — what do we count?
Count successful production deploy events. With true continuous deployment, frequency tracks closely with merges to the release branch.