For GTM engineers

With enough time, you could build what we built. Here's how.

Our build spec, the mistakes we made along the way, and how to size the project. (But if you'd rather spend that time on your own GTM projects, how to build them with Fluint context.)
YOU BUILD
2-4 wks each
Deal-risk alerts
Territory scoring
Forecast checks
Coaching agents
Fluint context over MCP
FLUINT RUNS
time to build it yourself
Context served over MCP
2 wks
Findings turned into plays
2 wks
Stage models, retraining and drift checks
12-13 wks
Time-series store with backfill
Rebuilt twice
11-13 wks
ETL and entity resolution
Rebuilt twice
8-10 wks
On Fluint
2-4 wks
your first project
Build it yourself
35-40 wks
the stack, before any project
01
The build spec

Everything you need to build, with our estimates.

These are the pieces we had to build, grouped the way we built them. Effort is in engineer-weeks for a team that has done this kind of work before.

REQUIREMENT
DIFFICULTY
EFFORT
WHO
DATA IN
Fluint runs this
Connectors for CRM, calls, email and warehouse
Read every source on a schedule and handle API limits, schema changes and deleted records.
Straightforward
5-6 wks
Data engineer
Entity resolution across systems
Match the same person, account and deal across tools that each use their own IDs.
Moderate
3-4 wks
Data engineer
TIME-SERIES STORE
Fluint runs this
Object briefs
A labeled summary for every deal, account, contact and meeting, rebuilt when its inputs change.
Moderate
3-4 wks
Data + ML engineer
Point-in-time snapshots
Write each change with a timestamp so you can see any object exactly as it was on any past date.
Hard
4 wks
Data engineer
Backfill when a definition changes
When a stage, field or predictor changes, rebuild every past snapshot so old and new labels stay consistent.
Hard
4-5 wks
Data engineer
MODELS
Fluint runs this
A model for each sales stage
XGBoost, KNN and time-series models, each suited to the question that stage asks.
Hard
5-6 wks
ML engineer
Causal lift, controlled for deal mix
Separate what drives wins from what simply shows up in won deals.
Very hard
4 wks
Data scientist
Retraining and drift checks
Retrain as deals close, compare each version, and roll back when accuracy drops.
Hard
3 wks
ML engineer
SERVING
Fluint runs this
Findings turned into plays
Write each finding as a step a rep can take, with the expected lift attached.
Moderate
2 wks
RevOps + engineer
Pre-built context over MCP
Compute context when the data changes and serve it ready, with citations, to any agent.
Straightforward
2 wks
Engineer
YOUR PROJECTS
Agents, scoring, routing, forecasts
The tools your reps and leaders actually use.
Depends
Varies
Your team
Total to a first working model
35-40 wks
then 1-2 engineers ongoing
Fluint runs all of this
02
How we built it

We built it as a loop that retrains itself.

Connect Loop from Fluint once. It captures every object, snapshots it over time, and studies the trajectory to model what wins, with ready-to-ship agents to do more of it. With every outcome flowing back in and retraining your private models.

Capture Snapshot Model Serve Act THE LOOP retrains nightly
1
Capture, a brief for every GTM object: deals, accounts, contacts, meetings.
2
Snapshot, each brief captured through time, so we can model what changed and when.
3
Model, measure how much each behavior actually lifts win rate.
4
Serve, the play plus pre-materialized context, over one MCP call.
5
Act: agents and reps run it, and outcomes return to step 1.
Every closed deal retrains the ensemble. The model compounds; dashboards age.
03
Object briefs & snapshots

A brief for every object, snapshotted through time.

Fluint builds a structured brief for every object in your GTM data. Each brief is a labeled summary of that object's dimensions, features, and the predictors attached to it: what the object was at a given moment, with the history of how it got there.

Deals
Accounts
Contacts
Meetings
Opportunities
Emails
Users
+ custom objects
Corbel Freight · deal brief
one row written per change · changed field highlighted
Sep 25
stage change
stage
Evaluation
cfo_attended
false
next_step_booked
false
volume_data_shared
false
Oct 2
demo booked
stage
Evaluation
cfo_attended
false
next_step_booked
true
volume_data_shared
false
Oct 8
CFO joined the demo
stage
Evaluation
cfo_attended
true
next_step_booked
true
volume_data_shared
true

Every change writes a new timestamped state, so the model sees what changed and when. When a definition changes, history is backfilled and recompiled point-in-time, so no label leaks from the future.

brief.snapshotpoint-in-time · backfilled on change
brief.snapshot {              -- one row per object, per change
  ts           timestamptz   -- when this state became true
  object       deal | account | contact | meeting | ...
  object_id    string
  dimensions   json         -- stage, segment, owner, ARR band
  predictors   json         -- { cfo_attended: true, multi_threaded: false }
  outcome_ref  string?      -- joined at close
}

on_change(predictor) → recreate(brief) ; backfill(history) ; recompile(graph)
Entity resolution across systems
Backfilled & recompiled on every change
Point-in-time correctness (no leakage)
Labels versioned with the schema
04
A model per stage

Causal lift you can defend.

Because your data store is built in a time series structure, you're able to run a regression to attribute outcomes to their causal drivers, controlling for everything else moving in a deal. Each stage asks a different question, so we let you run a model suited to it, all deployed and monitored for you. Select a stage for examples:

Prospecting
Discovery
Evaluation
Proposal
Negotiation
Closed
XGBoost + Time-series
Predictor lift + trajectory

Boosted trees rank behavior lift; a time-series model watches the deal's shape vs. healthy cohorts.

INPUTS
Multi-threading, exec attendance, event timing
PREDICTS
Win-rate lift per behavior, and drift
FEEDS
The #1 predictor and the play that closes it

We provision the store and training jobs, retrain as deals close, watch every version for drift, and roll back when a release underperforms.

Predictor · Mid-market · Evaluation
CFO attended
+14pt
Win rate when it happens vs. similar deals where it doesn't · 348 deals · retrained nightly
→
Play · Corbel Freight · Mon, Oct 5
Send Ruth the Exec Summary, then get her into Thursday's demo.
Drafted in Gmail, delivered to the rep in Slack. Same context call as the predictor.
05
Mistakes we made

What we got wrong the first time.

Most of these looked fine in testing and only showed up once real deals ran through the models. If you build it yourself, plan for them from the start.

01
We trained on today's CRM values.

Stage and amount fields get overwritten as deals move. A model trained on current values learns from the ending, so it tests well and fails on open deals.

✓
The fix
Snapshot every change and train on what was true at the time.
02
We read correlation as cause.

Won deals have more meetings because they were already going well. Treating meeting count as a predictor sent reps chasing the wrong thing.

✓
The fix
Control for stage, segment and deal size before calling anything a predictor.
03
We changed a definition and didn't backfill.

RevOps renamed a stage mid-quarter. Old and new labels mixed in the training data and accuracy slipped for weeks before we caught it.

✓
The fix
Rebuild every past snapshot whenever a definition changes.
04
We didn't watch for drift.

A pricing change shifted what wins in one segment. The model kept scoring the old pattern with full confidence.

✓
The fix
Compare each retrain against the last and alert on drops in accuracy.
05
We shipped findings nobody used.

Reps and managers read a coefficient table once. Nothing changed on their deals.

✓
The fix
Turn each finding into a play with a clear next step and expected lift.
06
We built context on every request.

Assembling context when an agent asked for it was slow and burned tokens on every call.

✓
The fix
Compute context when the data changes and serve it ready.
06
Size your project

How big is this for your team?

Move the inputs to match your setup. The ranges come from the spec above.

Sales reps
60
Data sources
4
Sales stages
6
Engineers on the build
3
TIME TO A FIRST WORKING MODEL
2.5-3 months
vs.
2-4 wks
on Fluint, to your first project
BUILD COST
$150K-$170K
UPKEEP PER YEAR
$250K

Assumes $220K a year per engineer, fully loaded. Upkeep covers retraining, drift checks, schema changes and new sources: about 1.2 engineers.

07
Build, buy, or both

Three ways to get there.

Most teams we talk to want to own the projects their reps and leaders see, and would rather not own the pipeline underneath.

BUILD IT ALL
Build it yourself

Your team owns every row of the spec, from ETL to serving.

TIMEMonths to a first model, then 1-2 engineers to keep it running.
BEST FORTeams with data and ML engineers who have the time and want full control.
BUY IT ALL
Use Fluint as it comes

Predictors, plays and proactive agents, ready for reps and leaders.

TIMELive in days, with no engineering time.
BEST FORTeams that need results before they have engineers to spare.
08
Build with Fluint

Build your projects on context that is already proven.

Everything in the spec above sits behind one MCP tool. Add Fluint to any agent framework and spend your engineering time on the projects themselves. It returns conclusions your agent can act on: predictors, active plays, and the evidence behind them, already computed. The same call works from Claude, ChatGPT, Copilot, or your own agent.

{
  "model": "loop-mm@v4.1",
  "predictors": [
    { "name": "cfo_attended",   "lift": 0.14, "present": false },
    { "name": "next_step_booked", "lift": 0.11, "present": true  }
  ],
  "plays":     [{ "id": "exec_summary_to_cfo", "proj_lift": 0.031 }],
  "citations": 11,
  "tokens":    2137
}
What teams build on it
context.deal
Deal-risk alerts

Post to Slack when an open deal is missing its top predictor, with the play attached.

brief.get
Territory scoring

Rank accounts by how closely they resemble your past wins, for planning season.

context.query
Forecast checks

Flag committed deals that lack the predictors your won deals had at the same stage.

plays.list
Coaching agents

Give managers the one play each rep runs least, with deals to practice on.

09
Security

Private weights, never shared.

Your models are org-scoped with private weights, trained on your data alone. Enterprise-ready from day one.

SOC 2 Type II
SSO / SAML
Role-based permissions
Private, org-scoped weights

Build it yourself, or build on ours.

Get the full spec with our estimates, or talk through your project with the engineers who built Fluint.