RoleGTM Data and Systems Lead
CompanyBasis, New York
CandidateS. A. Basharat Ali
DateOctober 2026

Basis sells practice by practice. Its GTM data should be modeled the same way.

A read of how Basis goes to market, six data problems that motion creates, and a working model that measures each one on a synthetic world shaped like Basis's GTM.

sabasharat.ali@gmail.combasharat.netcode on GitHub
Exception noted · A-1 +44%

New-logo ARR when the CRM's Type field decides, against the same deals measured on resolved firms.

Summary

Same deals, two answers

Headline GTM metrics

Metric
CRM view
Declared
Gap
Synthetic world: 230 firms, 252 Salesforce accounts, 139 opportunities, 2,647 Outreach events, 104 Gong calls, 30 partner registrations, 160 waitlist forms. No real Basis data.
B-1

The business

$100MSeries B at $1.15B, led by Accel, Feb 2026
~30%of the top 25 accounting firms are customers
~20%of the top 150 firms use Basis day to day
28open GTM and customer-facing roles right now

Basis deploys agents that run long, end-to-end accounting work across CAS and advisory, tax, audit and corporate close, plus an offer for small firms, and it has just launched an end-to-end tax platform.

The buyer is rarely "the firm". Each practice has its own lead partner, workflow and budget. One firm is several buying groups, and growth is expansion from one practice to the next. A CRM built around accounts hides exactly that.

K-1-heavy returns went from 100+ prep hours to about 15–20.

Tax partner, Boulay (paraphrased from basis.ai)

Basis is credited for 50% year-over-year growth in the CAS practice.

CAS lead partner, Clark Nuber (paraphrased)
B-2

Four motions, running at once

M1

Enterprise direct

Top-25 and top-150 firms. Long cycles, pilots, security reviews.

Enterprise AE · Strategic Account Partner
M2

Mid-market outbound

New: moving from reactive demand fulfillment to a proactive outbound engine.

Sales Manager · BDR · GTM Engineer
M3

Channel partners

Advisory firms such as Sikich bring Basis into their client work. Partner credit is real money.

Channel Sales Leader · Partner Manager
M4

Inbound waitlist

The site form asks firm size, use case, ERP and a self-reported "how did you hear about us".

Demand Gen · Growth · Field Marketing

Add Salesforce, Outreach, Gong, Clay, a partner portal and agents that now read and write the same records, and every tool thinks it is the source of truth. That is the job in the GTM Data and Systems Lead posting: define the model, make metrics consistent, keep syncs honest, give agents context they can trust.

A-1 to A-6

Six problems, measured

✓ agreed to source⊗ exception notedbars are drawn to scale within each finding
A-1 ⊗New vs expansion

The Type field turns expansions into new logos

Expansions land on duplicate accounts or get typed as new business. Fixing the field alone still leaves +30%. Only resolving the firm first gets it right, and the same fix moves customers from 24 to 20 and customers live in two or more practices from 6 to 9.

CRM Type field$4.42M
History per SF account$4.00M
History per resolved firm$3.06M
A-2 ⊗Identity

"Who is the customer" has no automatic answer

Domain matching catches 15 of 22 duplicate accounts with no false merges. Name matching catches all 22 but merges 3 different companies that share a name. The design that works is tiered: auto-merge on domain, send the 10 name-only matches to a person (7 real, 3 not).

Domain: caught15 / 22
Name: caught22 / 22
Name: wrong merges3
A-3 ⊗Attribution

Partner and AE both claim the deal

13 partner-registered deals were also marked AE-sourced. One written rule, a registration dated before the opportunity was created wins, gives every deal exactly one motion and flags all 13 with no false flags.

CRM + partner report summed$5.82M
Actual pipeline + bookings$5.07M
A-4 ⊗Activity

Retries hide from the usual dedup

150 webhook retries reused their event ID; 67 regenerated it. Dedup on event_id misses every regenerated one; dedup on message_id catches both. Then the definition: sends are attempts, not engagement.

"Engaged" firms, any touch214
Engaged: reply or held call95
A-5 ⊗Sync drift

A stalled sync makes healthy customers look dark

For 10 accounts, the Salesforce last-activity sync stopped weeks ago while calls kept happening in Gong. A drift check comparing the field to its sources flags all 10 with no false flags.

Dark customers, SF field5
Dark customers, across tools2
A-6 ✓Agents

Agents get context, not the keys

The ontology records each entity's grain, which system owns each field, the metric rules in plain language, and what each agent may do. Reads carry lineage; governed changes go to a person with evidence attached.

sdr_agent     task.create          applied
revops_agent  firm.merge           escalated
sdr_agent     last_engaged.update  blocked
              (owned by warehouse)
The part I got wrong

The first version caught every failure with zero false merges, because every duplicate shared a domain. That was the generator agreeing with the detector, not a result. Adding duplicates under a legacy domain from an acquired firm produced the 15/22 and the false merges above, and the tiered design came out of that.

C-1

The model, at the grain Basis sells

FieldOwned by
opportunity.stageSalesforce
opportunity.amountSalesforce
opportunity.motionwarehouse, declared rule
opportunity.is_expansionwarehouse, declared rule
firm.firm_idwarehouse, identity resolution
firm.last_engaged_atwarehouse, max of Gong and Outreach replies
partner.registrationpartner portal
activity.*Outreach, Gong (append-only)
D-1

First 90 days in the role

DAYS 1–30

Find out what is true

  • Map which system controls each field across Salesforce, Outreach, Gong and Clay.
  • Resolve accounts into firms and buying groups; size the duplicate queue.
  • Agree the expansion rule and the partner-credit rule with RevOps and Finance.
DAYS 31–60

Make the numbers agree

  • Ship the semantic layer for pipeline, new vs expansion ARR, conversion and customer health.
  • Reconcile reporting to source records so teams stop rebuilding numbers in spreadsheets.
  • Add drift and sync monitoring with alerts.
DAYS 61–90

Give agents safe context

  • Publish the GTM ontology behind permission-aware interfaces.
  • Let agents propose merges and fixes; people approve governed changes.
  • Report practice penetration by firm so expansion is visible.

Run it yourself

Python standard library only, under a second. Three files: the synthetic world, the model, the report.

git clone https://github.com/sa-basharat-ali/accounting-gtm-data-model
cd accounting-gtm-data-model && python3 run.py
View the code →
Sources

Where the GTM read comes from