Skip to main content
Most pricing pages don’t explain themselves. This one does, because the asymmetry is large and you’ll integrate better if you understand it.

What a cold call actually costs us

A cold scoring run executes a multi-stage pipeline that fans out across multiple data fetchers and runs four to six AI model inference calls for signal enrichment. Real numbers per cold call, averaged across our blast cohort:
Cost lineTypical
Data fetcher credits0.200.20 – 0.40
AI model inference0.100.10 – 0.30
Compute<$0.01
Total cold call~0.300.30 – 0.80
Latency: 30–60 seconds end to end.

What a cached call costs us

A cached call is one DynamoDB Query against the score-history table and a Lambda invocation. We’re looking at single-digit milliseconds and a fraction of a cent.
Cached call ≈ $0.0001
Cold call   ≈ $0.50
Ratio       ≈ 5,000×
If we billed both flatly we’d either (a) overcharge for cached calls and lose price-sensitive customers, or (b) undercharge for cold calls and lose money on power users. Splitting them lets each path be priced near its true marginal cost.

How your plan exploits this

The Standard plan has both a cached quota (2,000/mo) and a cold quota (100/mo), with a 24-hour freshness window. The window controls which path you land on:
  • Score the same company twice in 24h → second call is cached (counts against the cached quota, near-zero cost).
  • Score a company that’s stale or new to us → cold path runs (counts against the cold quota, 30–60s async).
If you’re building a daily-refresh dashboard for a fixed list of companies, you’ll get one cold call per company on first score and cached calls thereafter — you stay well inside the 100/mo cold budget. If you’re scoring fresh companies every day from an inbound pipeline, you’re paying cold rates — which is fine, that’s what you’re buying. Why 24 hours and not faster? Upstream firmographic providers refresh weekly at best, and our internal fetcher cache TTL is 7 days. Sub-day freshness windows on the Standard plan would advertise a refresh velocity the underlying data doesn’t deliver. Enterprise contracts can negotiate shorter windows where the staleness genuinely matters for the use case.

v1.0 is flat-only

When you exhaust your monthly cold-call budget, the API returns 429 cold_budget_exhausted until the next monthly reset. To get more capacity in the same month, upgrade to the next tier. We chose flat-only at launch for three reasons:
  1. Predictability. 399means399 means 399. Every month. Procurement can sign a flat subscription line without a “burst-month” objection.
  2. Cold-call abuse protection. A runaway script on a fresh key can’t spend $1,000 of fetcher credits overnight. The hard cap is the floor of safety.
  3. Honest pricing. We don’t yet know what overage rates the market will bear. Launching flat captures 60–90 days of real cold-call cost data so we can price overage from evidence, not guesswork.

Metered overage is on the v1.5 roadmap

Power users — folks who want to occasionally burst beyond their tier without committing to an upgrade — are exactly who metered overage is designed for. We’ll add it as a Stripe metered line item alongside the flat subscription once cold-call cost is stable for two consecutive weeks. When it lands, it’ll be:
  • Opt-in per account — your existing flat subscription doesn’t change unless you turn overage on.
  • Per-tier rate published in advance — you’ll see what each overage cold call costs before enabling it.
  • Bounded by a cap you set — pick the max overage spend you’ll accept per month. Cap of $0 = behave like flat-only.
  • Daily-aggregated — usage is rolled up nightly into your Stripe invoice, not per-call. No surprise charges at the end of the month.
Customers on the flat plan when v1.5 ships will be auto-eligible. Until then: plan around your tier’s included budget, and upgrade tiers when patterns require it.

Practical patterns

Pattern 1 — Dashboard / portfolio tracking. You’re rendering scores for a fixed list of companies that change slowly. Hit POST /v1/score on a daily cron at off-peak hours. Most calls will be cached after the first scoring run; you’ll stay well inside your tier’s cold budget. Pattern 2 — Pipeline screening. You’re scoring new companies from an inbound list. Standard’s 100 cold calls covers ~3 new companies per workday at sustained volume, or bursts of 50 in a single sitting. If you need more, contact us for Enterprise. Pattern 3 — Reactive scoring. A user enters a domain into your product; you score it. Cold paths return 202 + a job_id immediately, so your HTTP request stays under 1 second; poll GET /v1/jobs/{job_id} (or let the SDK handle it) to surface the result when ready.

Margin transparency

At a typical 0.50/coldcallcost,Standardsmaxincludedusage(100coldcalls=0.50/cold-call cost, Standard's max-included usage (100 cold calls = 50 variable on the $149 base) lands around 66% gross margin. If actual cold cost runs structurally higher than expected for a sustained period, we’ll either lower the included-cold number or raise the base price. We’d telegraph any pricing change with 30 days notice on existing contracts.