Built GTM
SANITIZED BUILD RECEIPT · builtgtm.ai/builds
the GTM system · Scoring Models · v1 · 2026-06-08

The Expansion Score

We already score who to land (ICP) and how well they're using us (Product Engagement). This is the third score: for a customer we've already won, which team do we sell into next - and is now the time?

The one idea: More seats in a team we already sold is upsell. Selling a brand-new team - the AEs when we only have CS, the SDRs when we only have AEs - is cross-sell, and cross-sell is where our real expansion comes from. This score is built to find the next team, not just the next seat.

1.What is it?

the output

A 0-100 score per current customer, plus a one-word verdict that tells the CSM/AE what motion the account is in. High means: real untapped teams, a healthy beachhead to point to, and signs the next team is in-market.

Expand-Now strikeUntapped teams + the team we sold is thriving + the new team is showing buying signals. Run the cross-sell play this week.
Land-and-Expand plantHealthy beachhead and clear whitespace, but no live buying signal yet. Nurture the next team; plant the seed.
Upsell-Only seatsTeams are already covered - the room is more seats/usage inside them, not a new team.
Fix-First saveWhitespace exists, but the team we sold is Dormant or Ghost-Active. Don't cross-sell off a dying deployment - fix it first. Score is capped at 40.
Dormant parkLittle whitespace, weak adoption. Deprioritize until something changes.

The verdict is the headline. The score just ranks accounts inside the same verdict so a rep knows where to start.

2.Where does the data come from?

the trust map

Four sources, each answering one question. Nothing is invented - every input traces to a system you can open.

🏢 Team whitespace - Salesforce
Who's on the company vs. who isn't, broken down by team: AEs, SDRs, CS, Other. Answers "how many teams, and how many people, are still untapped?"
📈 Beachhead health - Amplitude (product-engagement score)
The Product Engagement Score of the team we already sold. Answers "is the deployment we'd point to actually thriving?"
🎯 Buying signals - Common Room + Amplitude + hiring
Per-team intent: is someone in an unsold team researching, signing up free, or being hired in numbers? Answers "is the next team in-market right now?"
💵 Stakes - Salesforce
Current ARR and account size. Answers "how big is the prize behind this beachhead?" - used to rank, not to score.
Trust contract
When a source is thin, the score says so. Accounts with no Product Engagement read are scored on whitespace alone and flagged data-thin - we never paper over a gap with a guess.

3.How does it add up?

ELI5, then the math

In one sentence: take how much of the org is still untapped (weighted highest, because new teams are the trigger), check that the team we already have is healthy, then ask whether the next team is shopping - and if the beachhead is failing, stop and fix it before anything else.

Whitespace
40%
Share of teams not yet sold + how many people sit in them. The cross-sell surface.
Beachhead health
25%
product-engagement score of the team we sold. Your proof and your reference.
Buying signals
35%
Is an unsold team in-market right now? The timing trigger.
Show me the math
Expansion = 0.40·Whitespace + 0.25·Beachhead + 0.35·BuyingSignals → then the Beachhead Gate

Whitespace (0-100) - weighted toward new teams over raw headcount, per Heath's call that the team count is the trigger:

Whitespace = 100 · ( 0.60·(1 − team_coverage) + 0.40·volume ) team_coverage = teams_sold / teams_total volume = min(1, ln(1+unsold_users)/ln(1+60))

Beachhead (0-100) = the sold team's product-engagement score directly. No Product read → neutral 50, flagged data-thin.

Buying signals (0-100) - per unsold team, the max of: Common Room intent percentile on people in that team · a free product signup from that team (product-led cross-sell beachhead) · a hiring burst in that function. This is the v2 wire-up - see status below.

The Beachhead Gate (the load-bearing rule):

if sold-team product-engagement score verdict ∈ {Dormant, Ghost-Active}: Expansion = min(Expansion, 40) → FIX-FIRST

You cannot cross-sell a new team off a deployment that's dying. The gate forces the save first - the same discipline as the DQ cap on the ICP composite.

The Next-Team engine ranks an account's unsold teams by in-market signal × team size × adjacency to the sold team (AEs↔SDRs closest, then CS, then Other), and emits the one team to open next with its size, its signal, and a named contact.

4.What do I do with it?

the move

The verdict picks the motion; the Next-Team engine names the target.

VerdictMotionFirst move
Expand-NowCross-sell, this weekOpen the named unsold team. Lead with the beachhead's results as proof.
Land-and-ExpandCross-sell, nurtureWarm the next team. Get the champion to intro across the org chart.
Upsell-OnlySeats / usageExpand seats and depth inside the teams already on the company.
Fix-FirstSaveRe-light the beachhead. No cross-sell motion until product-engagement score recovers.
DormantParkWatch for a signal. Don't spend a cycle yet.
The distinction that matters
Upsell = more seats in a team we sold. Cross-sell = a new team entirely. This score is deliberately weighted so a customer with three untapped teams outranks one where we can only add a few seats - because that's where the company actually expands.

Worked example - Vandelay Industries

all four questions, one account
Expansion Score
79.9
Expand-Now
Teams sold
1 / 3
2 teams untapped
Untapped people
76
sitting in the unsold teams
Beachhead product-engagement score
79.5
Power - thriving

1.What: Expansion 79.9 → Expand-Now. A current customer ($53.6K ARR) we should cross-sell now.

2.Where: Salesforce says 1 of 3 teams is on the company, with 76 people in the two untapped teams. Amplitude says the sold team is a Power user - the strongest possible reference.

3.How: Whitespace 80.2 (two whole teams + 76 people untapped) and Beachhead 79.5 (Power) carry the score. The gate doesn't fire - the beachhead is thriving, not dying - so nothing is capped.

4.Do: Open the largest adjacent untapped team. Walk in with the beachhead's adoption as proof: "your [sold team] is one of our most active deployments - here's what the [next team] would get."

Honest caveat
Vandelay's buying-signal layer (is that 76-person team in-market today?) is the v2 wire-up. v1 ranked it on whitespace + a Power beachhead alone - already a strong, defensible "go." The signal layer will tell us which of the two untapped teams to open first, and this week vs. this quarter.

Run it today - the cross-sell play

score → team → draft → launch

The score hands you the account and the verdict. Here's how to turn it into a sent sequence in four MCP-assisted steps - we've already wired the systems together.

1
Salesforce MCP
Pull the unsold team + a contact. Find the largest untapped team and a decision-maker in it (the AE lead when you sold CS, the SDR manager when you sold AEs).
2
Common Room MCP
Confirm the team is in-market. Check buying-intent signals on people in that team - researching, comparing, or active in community. That's your "why now."
3
Octave MCP
Draft the cross-sell sequence. Feed it the beachhead's product-engagement score proof + the unsold team's persona. Octave writes the angle: proven internally, now for your team.
4
the company MCP
Launch and track. Enroll the contact, send from the rep's inbox, and watch replies - the same loop the beachhead team already lives in.
We have your back
You don't start from a blank account. The score names the customer, the engine names the team, the beachhead gives you the proof, and the MCP chain drafts the outreach. Your job is the conversation.

First pass - the paying book today

495 customers scored

Run across the 495 current customers with a team-coverage read. Whitespace and beachhead health are computed live; the per-team buying-signal layer is the next wire-up (see status).

Expand-Now
86
healthy beachhead + untapped teams
Land-and-Expand
81
whitespace, nurture the next team
Behind these beachheads
$2.85M
ARR with cross-sell room
Fix-First
30
save before you expand

Top cross-sell targets (v1 ranking):

AccountExpTeamsUntapped pplBeachheadARR
Globex91.0untapped93Power$125.7K
Initech80.8untapped27Established$408.6K
Vandelay Industries79.91 / 376Power$53.6K
LendingHome86.1untapped42Established$53.3K
Globex Auctions77.01 / 335Power$31.4K
Status - v1, honest about its edges. Computed today: Whitespace (Salesforce team coverage) and Beachhead (Amplitude product-engagement score), renormalized over the two measured blocks; the Beachhead Gate is live. Next wire-up (v2): the per-team Buying-signal block - Common Room intent attributed to unsold teams, Amplitude free-signups from new teams, and hiring bursts by function - which turns "expand here" into "expand into this team, this week." Until then, EXPAND-NOW is marked with an asterisk: structurally ready, pending live-signal confirmation. A data note: a handful of paying accounts map zero users to a "sold" team (SS payers without a team tag); those surface as all-whitespace and should be confirmed against the renewal record before outreach.
Built GTM
A sanitized build receipt · company name and account examples generalized, the method left intact · builtgtm.ai