GASP Adapter
The adapter is how your data warehouse speaks GASP. It's a JSON file that maps your specific table.column references to the 197 canonical GASP fields. Tools, agents and teammates all reference the same source of truth.
Why an Adapter?
GASP defines what to measure and how to calculate it. But every company stores data differently.
Your MRR might live in billing.subscriptions.amount, stripe_data.mrr, or dbt_marts.monthly_revenue.mrr_value.
The adapter bridges this gap. It's a declarative mapping: "GASP's mrr field is analytics.account_cohorts.beginning_mrr in our warehouse."
Once filled in, any tool that understands GASP can work with your data. No custom integration required.
For Data Engineers
Map your warehouse once. Every metric formula in GASP now knows where to find the data.
For AI Agents
An LLM with the GASP MCP server + your adapter knows which tables and columns to query for any metric.
For Teams
Everyone references the same field names. No more "which column is MRR again?" across Slack threads.
How It Works
- Download the template. A JSON file with all 197 GASP fields, grouped by source system, with the metrics each field supports.
- Fill in your mappings. For each field your warehouse provides, add the
schema.table.columnreference. Skip fields you don't have. - Validate. Use the MCP tool or paste the JSON to see which metrics are fully covered, partially covered or missing.
- Use it. Hand the adapter to your AI tools, share it with your data team or use it as the foundation for a SaaS digital twin.
Adapter Format
The adapter is a JSON file with this structure:
{
"$schema": "https://gaspwiki.com/schemas/gasp-adapter-v1.json",
"version": "1.0",
"organization": "Acme SaaS",
"warehouse": "snowflake",
"metricOwners": [
{ "metric": "ARR / MRR", "team": "Finance", "contact": "jane@acme.com" },
{ "metric": "NRR / GRR", "team": "Finance" },
{ "metric": "Pipeline Value", "team": "RevOps" },
{ "metric": "Health Score", "team": "Customer Success" }
],
"mappings": [
{
"gaspField": "account_id",
"warehouseRef": "analytics.dim_accounts.account_id",
"owner": "Data Engineering"
},
{
"gaspField": "mrr",
"warehouseRef": "analytics.fct_subscriptions.mrr_amount"
},
{
"gaspField": "beginning_mrr",
"warehouseRef": "analytics.fct_cohorts.beginning_mrr",
"transform": "{{value}} / 100",
"owner": "Data Engineering",
"notes": "Stored in cents in our billing system"
}
]
} Metric owners (required)
Every adapter must declare who owns each metric definition. This is the person or team that resolves disputes about how a metric is calculated. The whole point of adopting GASP is ending the "five companies, five definitions" problem, and someone in your org needs to own the answer.
| Property | Required | Description |
|---|---|---|
| metric | Yes | Metric name or group (e.g. NRR / GRR, All Core Metrics) |
| team | Yes | Owning team (e.g. Finance, RevOps, Customer Success) |
| contact | No | Contact person. Email, Slack handle or name |
Field mappings
| Property | Required | Description |
|---|---|---|
| gaspField | Yes | Canonical GASP field name (e.g. account_id, mrr_start) |
| warehouseRef | Yes | Your warehouse column: schema.table.column |
| transform | No | SQL expression to transform the value. Use {{value}} as placeholder. |
| owner | No | Team or person that owns this data pipeline. Who to contact when the data is stale or incorrect |
| notes | No | Free-text notes about this mapping |
Validating Your Adapter
Use the validate_adapter MCP tool to check your coverage.
Pass your adapter JSON and get back a report showing which metrics you can compute:
Example: a mid-stage SaaS company with Billing + CRM + Product Analytics mapped (67 of 198 fields) GASP Adapter Validation · Acme SaaS
Warehouse: snowflake
Mapped fields: 67 / 197 (34%)
Fully Covered Metrics (26)
✓ ARR / MRR
✓ Revenue Components (New, Expansion, Contraction, Churn)
✓ NRR / GRR
✓ Rule of 40
✓ CAC, LTV, LTV:CAC & CAC Payback
✓ Gross Margin, Burn Rate
✓ Pipeline Value, Win Rate, ACV, Sales Cycle, Quota Attainment
✓ MQLs, Marketing CAC
✓ DAU/MAU, Activation, Feature Adoption
✓ CSAT, FRT, FCR, Resolution
Partially Covered Metrics (36)
~ Health Score: missing usage_score, engagement_score, support_score
~ Renewal Rate: missing contract_end_date, renewed, renewal_amount
~ Expansion Revenue: missing expansion_mrr, upsell_type
~ Pipeline Velocity: missing stage_history
~ Cohort Revenue Retention: missing cohort_month, months_since_start
...
Not Covered (16)
✗ LVR, Visitors, Channel Spend (Marketing)
✗ DORA Metrics, Infrastructure, Security (Engineering)
✗ eNPS, Retention, Recruiting, Compensation (People)
✗ Training, Partner Satisfaction (Partnerships)
...
The validator tells Acme exactly what they can compute today (26 metrics), what's one or two fields away (36 metrics),
and what systems they haven't connected yet (16 metrics). A data engineer can prioritize: "add 4 columns from our CS platform
and we unlock Health Score, QBR tracking and Expansion Revenue."
What the Adapter Unlocks
Metric Coverage Audit
Instantly see which of the 300 GASP metrics your warehouse can support, and exactly which fields you'd need to add to cover the rest.
AI-Assisted Analysis
An LLM with the GASP MCP server and your adapter can answer "why did NRR drop?" by calling infer_drivers to rank upstream candidates, then generate_query to fetch the right
account_id, mrr_start, mrr_end columns from your warehouse.
SaaS Digital Twin Foundation
The adapter is the mapping layer in a SaaS digital twin: the GASP knowledge graph provides the business model,
the adapter connects it to your real data, and the MCP server gives AI agents access to both.
Revenue Quality Analysis
Map the optional change_nature field from your CEL to separate permanent revenue movements from temporary ones.
This enables Adjusted NRR/GRR calculations that distinguish true contraction (a risk signal) from expected reversals (a neutral event).
See the CEL change_nature spec.
Scoped Access for Agents
GASP recommends a sensitivity tier and access scope for every metric.
Combined with your adapter's field ownership, this lets you generate row-level security policies for Snowflake, BigQuery or Postgres that enforce the principle of least privilege across every agent and every user.
See the governance framework.
Downloads
Quick Start
# 1. Download the template
curl -O https://gaspwiki.com/downloads/gasp-adapter-template.json
# 2. Open it and fill in your warehouseRef values
# (tip: start with Billing fields, they cover the most metrics)
# 3. Validate via the MCP server
# In Claude Code with the GASP MCP installed:
# > Use validate_adapter with the contents of my adapter file