Services Gross Margin
Services Gross Margin: Services revenue minus direct delivery costs.
Formula
Services Gross Margin = (Services revenue - Direct delivery cost) / Services revenue × 100 Computable definition
The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.
(metric.services_revenue - sum(field.cost where field.cost_function = 'services_delivery')) / metric.services_revenue Unit: percent (the formula yields an unscaled ratio)
Notes: Direct delivery cost covers consultant salaries, travel and contractor costs.
Data requirements
Grain: Monthly aggregate · Frequency: Monthly · Aggregation: aggregate (month) · Staged: no · Main source: Finance / ERP.
| Field | Dataset | Type |
|---|---|---|
cost | cost_event | decimal |
cost_function | cost_event | string |
event_date | cost_event | date |
period_start | financials | date |
revenue | financials | decimal |
revenue_type | financials | string |
Example SQL (Postgres)
SELECT (CAST((((SELECT COALESCE(SUM(revenue), 0) FROM financials WHERE period_start >= :period_start AND period_start <= :period_end AND revenue_type = 'services')) - (SELECT COALESCE(SUM(cost), 0) FROM cost_event WHERE event_date >= :period_start AND event_date <= :period_end AND cost_function = 'services_delivery')) AS DOUBLE PRECISION) / NULLIF(((SELECT COALESCE(SUM(revenue), 0) FROM financials WHERE period_start >= :period_start AND period_start <= :period_end AND revenue_type = 'services')), 0)) AS services_gross_margin From an agent: with the GASP MCP server, call
lookup_metric({ "name": "Services Gross Margin" }) or generate_query({ "metric": "Services Gross Margin", "adapter": "<your adapter JSON>" }).
Benchmarks
- Below 20%: Unprofitable, review pricing
- 20-30%: Low margin
- 30-40%: Average
- 40-50%: Good
- Above 50%: Excellent