Get answers you can explain and trust
Typedef gives analytics and BI teams reconciled metrics, traceable agent answers, and the right data, fast, across every system in the stack.
The agent and Finance are using different ARR definitions from the same Salesforce source.
| Agent's answer | Finance's number | |
|---|---|---|
| Value | $4.2M | $3.8M |
| Model | int_opportunity_ext | rpt_current_customers |
| Field | net_new_arr__c | total_arr |
| Measures | Cumulative bookings at close | Recurring revenue today |
| Missing | Churn, contractions, renewals | — |
rpt_current_customers.total_arr for ARR reporting and tag columns with a definition_type so agents pick the right one.Agents answer confidently. They’re often wrong.
Your analytics agent picks a semantic view, runs a query, and returns a number. But it doesn’t know which definition applies, what grain the data is at, or whether the source is stale. Typedef gives agents a live context layer so every answer is explainable and traceable.
Both ARR columns on rpt_current_customers are circular writebacks — computed in dbt, synced to Salesforce, then read back.
| Column | Sync path | Why it diverges |
|---|---|---|
| account_current_arr | pipeline → sync_account_arr_and_type → SF account → read back | Groups by PRODUCT_FAMILY |
| total_ending_arr | pipeline → sync_opportunity_update_ending_arr → SF opportunity → read back | Stage filter + 365-day proration |
| total_arr | int_account_arr_seats → direct | No round-trip — source of truth |
int_account_arr_seats.total_arr — the data is already there, no Salesforce round-trip needed.The numbers never match
Salesforce says one thing, your BI dashboard says another. The definitions look the same but the logic diverges three joins deep. Typedef traces both paths and surfaces the exact divergence point so you fix the root cause instead of re‑running queries.
I found 4 candidate models, but each has a hidden problem.
| Model | Looks like | Trap |
|---|---|---|
| fct_feature_daily_snapshot | 11 feature DAU columns | Boards tracked separately |
| dim_daily_server_config | enable_* boolean flags | Config ≠ Usage |
| rpt_tedau_at_day_28 | Pre-computed day-28 TEDAU | No features, no SKU |
| rpt_active_user_base | Has SKU column | Wrong grain — survivorship bias |
None work alone. The correct answer is a 6-model join:
| # | Model | Role | Join key |
|---|---|---|---|
| 1 | rpt_tedau_at_day_28 | Day-28 outcome (TEDAU) | server_id |
| 2 | dim_server_info | first_activity_date for 28-day window | server_id |
| 3 | dim_daily_license | SKU at day 28 | server_id + license_date |
| 4 | fct_feature_daily_snapshot | 11 features over first 28 days | server_id + activity_date |
| 5 | fct_board_activity | Boards usage (separate pipeline) | server_id + activity_date |
| 6 | dim_excludable_servers | Filter out test/internal servers | server_id |
Finding the right data takes longer than the analysis
You need churn by segment but there are four models that could work. Typedef surfaces the right model, join path, and query scaffold with freshness, grain, and definition context so you ship accurate results instead of guessing.
How it plays out
Agentic Analytics Reliability
Scenario
An analytics agent produces a surprising result.
TYPEDEF ACTIONS
Traces the answer through semantic definitions, models, and sources
Identifies the mismatch: stale data, wrong definition, or upstream change
Surfaces the root cause with the evidence chain
Output
Scenario
Multiple semantic views can answer the same question.
TYPEDEF ACTIONS
Evaluates candidate views by domain, grain, and metric definition
Routes the agent to the correct cube/view/explore at runtime
Logs the resolution reasoning for audit
Output
Cross-System Reconciliation (Salesforce ↔ BI)
Scenario
Salesforce numbers and BI dashboards disagree.
TYPEDEF ACTIONS
Traces both metric paths: from Salesforce through to the BI layer, and from the warehouse through to the same dashboard
Identifies where the logic or data diverges (different filter, stale snapshot, mismatched join)
Surfaces the divergence point with a side‑by‑side comparison
Recommends which definition to align on based on downstream consumer count
Output
Find the Right Data Fast
Scenario
A BI analyst needs churn by segment.
TYPEDEF ACTIONS
Searches the semantic catalog for models matching “churn” + “segment”
Ranks results by relevance, freshness, and usage
Surfaces the recommended model with its join path and query scaffold
Shows definition context: how churn is calculated, what “segment” means, data freshness