90-Day Turnover: Percentage of new hires who leave within 90 days.
Formula
90-Day Turnover = Departures within 90 days / New hires × 100 Computable definition
The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.
count_distinct(field.employee_id where field.termination_date is not null and field.termination_date - field.hire_date <= 90) / count_distinct(field.employee_id where field.hire_date >= period_start and field.hire_date <= period_end) Unit: percent (the formula yields an unscaled ratio)
Breakdowns
by_hire_source: one row perhire_sourcevalue
Notes: Cohort is new hires in the period. 90 days approximated as 3 months of tenure. by_hire_source returns one row per hiring source, which shows the channels that bring hires who leave inside 90 days.
Data requirements
Grain: Monthly aggregate · Frequency: Monthly · Aggregation: aggregate (month) · Staged: no · Main source: HRIS.
| Field | Dataset | Type |
|---|---|---|
employee_id | employee | string |
hire_date | employee | date |
snapshot_date | employee | date |
termination_date | employee | date |
Example SQL (Postgres)
SELECT (CAST((SELECT COUNT(DISTINCT employee_id) FROM employee WHERE snapshot_date = :period_end AND (termination_date IS NOT NULL AND (termination_date - hire_date) <= 90)) AS DOUBLE PRECISION) / NULLIF((SELECT COUNT(DISTINCT employee_id) FROM employee WHERE snapshot_date = :period_end AND (hire_date >= :period_start AND hire_date <= :period_end)), 0)) AS day_90_turnover From an agent: with the GASP MCP server, call
lookup_metric({ "name": "90-Day Turnover" }) or generate_query({ "metric": "90-Day Turnover", "adapter": "<your adapter JSON>" }).
Benchmarks
- Below 5%: Good onboarding and hiring
- 5-10%: Average
- Above 10%: Hiring or onboarding issues
What It Tells You
Hiring quality and onboarding effectiveness.