Metric

What is offer acceptance rate, and how do you measure it in Metabase?

Offer acceptance rate is an HR and recruiting metric you can track in Metabase once ATS or HRIS data is synced into a database. Offer acceptance rate is the share of extended offers that candidates accept. It shows whether compensation, role fit, process quality, and close strategy are working after a team decides to hire.

TL;DR — Define the event timestamps and denominator once, report counts next to rates, and segment only when sample size and privacy rules support it.

How is offer acceptance rate defined?

  • Offer acceptance rate = accepted offers / extended offers.
  • Use extended offers as the denominator, not all applications or all verbal conversations.
  • Separate declined, expired, rescinded, and pending offers.
  • Cohort by offer extended date, and caveat recent pending offers.

What data does it need?

  • Offers with extended_at, accepted_at, declined_at, status, candidate, job, department, and location.
  • Compensation band, level, source, recruiter, and hiring manager where safe and permissioned.
  • Decline reason if collected consistently.
  • Candidate start date to distinguish accepted offers from starts.

SQL pattern

Offer acceptance rate in MetabasePostgreSQL
SELECT
  date_trunc('month', offer_extended_at) AS month,
  COUNT(*) FILTER (WHERE status IN ('accepted', 'declined', 'expired')) AS settled_offers,
  COUNT(*) FILTER (WHERE status = 'accepted') AS accepted_offers,
  ROUND(
    100.0 * COUNT(*) FILTER (WHERE status = 'accepted')
      / NULLIF(COUNT(*) FILTER (WHERE status IN ('accepted', 'declined', 'expired')), 0),
    1
  ) AS offer_acceptance_rate_pct
FROM modeled_offers
WHERE offer_extended_at >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY 1
ORDER BY 1;

Pitfalls

Including pending offers in the denominator.→ Pending offers have not settled yet. Show them separately or cohort only mature periods.
Hiding rescinded offers.→ Rescinds may indicate process or approval problems. Track them separately from candidate declines.
Over-segmenting sensitive compensation data.→ Only expose compensation fields to permissioned audiences.

Where this metric applies

Dashboards

Integrations

Metrics

Analytics

FAQ

Do verbal offers count?
Only if your team records them consistently as offers. Otherwise use formal extended offers.
Should no-starts be included?
No-starts are a separate accepted-offer-to-start metric, but they should be monitored near offer acceptance.