Build vs Buy
Model editor
First year$0Configure defaults

Understanding build vs buy.

What can feel like a straight-forward project frequently hides complexity. This tool helps organizations identify the scope of their AI-powered revenue enablement projects so they can make informed decisions when choosing to build or buy a solution.

Scenario

Tune the customer profile.

Team size and release cadence drive maintenance costs and the Spekit license comparison. Numbers persist in your browser.

Maintenance multiplier
1.31×
+0.12 team · +0.19 releases
Customer profile
AEs, AMs, CSMs, SEs, RevOps
Product lines the team sells
24 total releases per year
$
Fully-loaded cost per FTE per year
Effect on the model: 24 releases/year · 1.31× maintenance · Spekit $162k/yr.
How the maintenance multiplier works

Two scenario factors scale the ongoing maintenance burden. They apply only to ongoing FTE shares, never to one-time build effort.

Team adjustment

teamAdj = 0.25 × log₁₀(users / 50), clamped to [−0.30, +0.70]. 50 GTM users is the baseline (0 adjustment). Doubling to 100 adds ~+0.08; 500 adds ~+0.25; 1,000 adds ~+0.33.

Release adjustment

releaseAdj = 0.25 × log₁₀(annual releases / 4), clamped to [−0.20, +0.60]. 4 releases per year is the baseline (1 product × 1 release per quarter). Annual releases = products × releases-per-quarter × 4.

Combined

multiplier = 1 + teamAdj + releaseAdj. The total stays bounded between 0.50× and 2.30× at the clamp extremes.

Log scaling reflects diminishing marginal cost: the second 100 users add less burden than the first, but burden never goes to zero. The clamps prevent extreme inputs (1 user, 200 releases) from producing absurd multipliers.

Controls
Ladder 01 / 09

Chat tool

Where does the AI tooling live in Rep's workflow?

Currently selected
L0Standard chat bots
Baseline. No contribution to the build.
Pick a level
Ladder 02 / 09

Proactivity

How do reps get answers from the tool?

Currently selected
L0Reactive
Baseline. No contribution to the build.
Pick a level
Ladder 03 / 09

Context

What does the tool know about the rep's work?

Currently selected
L0No context
Baseline. No contribution to the build.
Pick a level
Ladder 04 / 09

Knowledge

What does the AI know about your business?

Currently selected
L0LLM only
Baseline. No contribution to the build.
Pick a level
Ladder 05 / 09

Controls

How do you make sure correct and permitted answers and content is used?

Currently selected
L0None
Baseline. No contribution to the build.
Pick a level
Ladder 06 / 09

Analytics

How does the tool impact performance?

Currently selected
L0None
Baseline. No contribution to the build.
Pick a level
Ladder 07 / 09

Authoring

How is new content created?

Currently selected
L0Manual
Baseline. No contribution to the build.
Pick a level
Ladder 08 / 09

Education

How do reps ramp and stay current?

Currently selected
L0Tribal
Baseline. No contribution to the build.
Pick a level
Ladder 09 / 09

Buyers

How does the tool support buyer experiences?

Currently selected
L0Email attachments
Baseline. No contribution to the build.
Pick a level
Totals
First year all-in
$0
Build ($0) plus year-one ongoing ($0).
Build effort
0weeks
0 FTE-years at 50 weeks per FTE.
Ongoing, from year 2
$0/year
0 FTE on staff, every year forward.
Roles you’d staff× 1.31 scenario multiplier

Nothing selected yet.

Build vs buy
Build itBuy Spekit
First year all-in$0$202k
Annual ongoing$0 / yr$162k / yr
Internal staff0 FTE0.25 FTE
Spekit pricing at 150 users: $118k software, $40k one-time implementation, $44k internal content ops (0.25 FTE).
Atomic steps included (0)

Pick a level above L0 on any ladder to add to the build.

Snapshot

Export the whole model. Hand it to Claude.

Export writes every step and ladder in full. It is a complete document, not a delta, so the file stays interpretable even after src/lib/capability-model.ts drifts. Hand the file to Claude and the values get baked into the source.

Fields changed vs code seed
0
Step edits
0
Ladder edits
0
File format reference
{
  "$schema": "bvb-model-snapshot/v3",
  "exportedAt": "2026-05-25T18:30:00.000Z",
  "blendedFteRateUsd": 175000,
  "ladders": [
    {
      "id": "<ladder-id>",
      "name": "...",
      "framing": "...",
      "steps": [
        {
          "id": "<atomic-step-id>",
          "name": "...",
          "description": "...",
          "giveUp": "..." | null,
          "complexity": "green" | "yellow" | "red" | null,
          "buildWeeksMin": 4 | null,
          "buildWeeksMax": 6 | null,
          "maintain": { "eng": 0.1, "ml": 0, "pm": 0, "contentOps": 0, "dataEng": 0 }
        }
      ]
    }
  ]
}
Edits save automatically to your browser. Reset working edits to revert to the saved defaults. Configure the defaults themselves on the defaults page.