BirdsEye ROI, Economics and Pricing

Prepared by Warren, Finance and Risk Lead. 2026-08-01.

Every fact cited here traces to F:\Projects\birds-eye-roi\.worktrees\marketing-launch\marketing\FACTS.md. Every modeled number is labeled illustrative and states its assumptions. No client results, testimonials, or COGS figures are invented anywhere in this document.


Section 1: The money argument, one page

Two real facts anchor the entire pitch:

  • 43,700 of 103,000+ logged calls are flagged as spam by the platform, 42.3% of the log.
  • The platform attributes $46,000+ in revenue per call, not per ring, across 4 unified providers (Twilio, SignalWire, CallFire, CallRail) and 200+ forwarding rules.

Here is what that means in dollars.

Most call tracking tools report a call count. A call count with no spam filter is a budget input that is close to half noise on this platform's measured rate. An operator who sets marketing spend, agency fees, or channel mix off raw call volume is dividing real dollars by a denominator that is 42.3% inflated.

Illustrative example, assumptions stated:

Assume a business spends $5,000 a month on a lead channel that produces 500 calls a month, and assume that business's spam rate matches the platform's measured 42.3% (this is an assumption applied to a hypothetical business, not a claim about any specific client's rate, since spam rate varies by channel and geography).

totalCalls = 500
spamRate = 0.423
realCalls = totalCalls * (1 - spamRate)        // 288.5
naiveCostPerCall = 5000 / totalCalls            // $10.00
trueCostPerRealCall = 5000 / realCalls          // $17.33
understatement = (trueCostPerRealCall - naiveCostPerCall) / naiveCostPerCall  // 73.3%

The operator believes they are paying $10.00 per call. They are actually paying $17.33 per call that could plausibly be a real customer. That is a 73% understatement of true acquisition cost, produced entirely by counting rings instead of filtering and attributing.

Per-call revenue attribution closes that gap two ways. First, it removes the spam-inflated denominator. Second, it ties each surviving call to a dollar figure (the mechanism behind the platform's $46,000+ tracked revenue), so the operator can see which channel, niche, or service actually converted, not just which channel rang the phone the most.

Assumptions used in this section:

  • The 42.3% spam rate is the platform's own measured aggregate across 103,000+ calls. It is used here as an illustrative rate applied to a hypothetical business, not a guarantee that any given prospect's account will show the same number.
  • The $5,000 spend and 500-call volume are illustrative inputs chosen to be a round, plausible single-location budget. They are not a measured client's numbers.

Section 2: The ROI model

This entire section is an illustrative model. No number in it is a measured client result. Every input is labeled and every formula is exact so it can be wired into a live calculator.

Shared assumptions across both worked examples

  • Spam rate used in both models: 0.423 (the platform's measured aggregate, applied as a modeling assumption, not a guarantee of any individual account's rate).
  • "Real calls" means calls surviving the spam filter, not calls confirmed as leads. Lead and close rates below are illustrative, not platform-measured.
  • All dollar inputs (marketing spend, cost per lead, average ticket) are illustrative round numbers chosen for clarity, not client data.

Formulas (plain JavaScript, drop into a calculator)

// Shared spam-adjustment step
function realCallVolume(totalCalls, spamRate) {
  return totalCalls * (1 - spamRate);
}

// Model A: local service business
function localServiceROI({ callsPerMonth, spamRate, marketingSpend, closeRate, avgTicket }) {
  const realCalls = realCallVolume(callsPerMonth, spamRate);
  const bookedJobs = realCalls * closeRate;
  const revenue = bookedJobs * avgTicket;
  const costPerRealCall = marketingSpend / realCalls;
  const costPerBookedJob = marketingSpend / bookedJobs;
  const roi = (revenue - marketingSpend) / marketingSpend;
  // Spend nominally associated with spam-flagged call volume, assuming spend
  // allocates proportionally across all logged calls. This is a visibility
  // figure (what is being spent chasing noise), not a guaranteed refund.
  const spamAttributedSpend = marketingSpend * spamRate;
  return { realCalls, bookedJobs, revenue, costPerRealCall, costPerBookedJob, roi, spamAttributedSpend };
}

// Model B: lead-generation agency (bills client per real, spam-filtered lead)
function agencyROI({ callsPerMonth, spamRate, costPerLeadToAgency, pricePerLeadToClient, closeRate, avgTicket }) {
  const realCalls = realCallVolume(callsPerMonth, spamRate);
  const billableLeads = realCalls; // agency bills only spam-filtered real calls
  const agencyCost = billableLeads * costPerLeadToAgency;
  const agencyRevenue = billableLeads * pricePerLeadToClient;
  const agencyMargin = agencyRevenue - agencyCost;
  const agencyMarginPct = agencyMargin / agencyRevenue;
  const clientBookedJobs = billableLeads * closeRate;
  const clientRevenue = clientBookedJobs * avgTicket;
  const clientROI = (clientRevenue - agencyRevenue) / agencyRevenue;
  return { realCalls, billableLeads, agencyCost, agencyRevenue, agencyMargin, agencyMarginPct, clientBookedJobs, clientRevenue, clientROI };
}

Worked example A: local service business (illustrative, e.g. a plumbing company)

Inputs (all illustrative):

  • callsPerMonth: 400
  • spamRate: 0.423
  • marketingSpend: $6,000/month
  • closeRate: 35%
  • avgTicket: $450
realCalls        = 400 * 0.577              = 230.8
bookedJobs        = 230.8 * 0.35             = 80.78
revenue           = 80.78 * 450              = $36,351
costPerRealCall   = 6000 / 230.8             = $26.00
costPerBookedJob  = 6000 / 80.78             = $74.29
roi               = (36351 - 6000) / 6000    = 506%
spamAttributedSpend = 6000 * 0.423           = $2,538

Output, in plain terms: on these illustrative inputs, the business is nominally spending $2,538 a month chasing calls the platform would flag as spam, and the true cost of a booked job is $74.29, not the $15.00 (6000/400) an un-filtered call count would suggest. The margin visibility gained is the difference between those two cost-per-job numbers, made visible for the first time.

Worked example B: lead-generation agency (illustrative)

Inputs (all illustrative):

  • callsPerMonth: 1,000 (a niche or client portfolio)
  • spamRate: 0.423
  • costPerLeadToAgency: $15 (illustrative cost to generate a call)
  • pricePerLeadToClient: $40 (illustrative pay-per-call price charged to the client)
  • closeRate: 25%
  • avgTicket: $600
realCalls        = 1000 * 0.577              = 577
agencyCost        = 577 * 15                 = $8,655
agencyRevenue      = 577 * 40                 = $23,080
agencyMargin       = 23080 - 8655             = $14,425
agencyMarginPct    = 14425 / 23080            = 62.5%
clientBookedJobs   = 577 * 0.25               = 144.25
clientRevenue       = 144.25 * 600             = $86,550
clientROI          = (86550 - 23080) / 23080  = 275%

Output, in plain terms: on these illustrative inputs, billing only spam-filtered real calls (instead of raw call count) lets the agency defend a 62.5% margin on delivered leads while showing the client a 275% return on what they paid the agency. That defensibility, billing on filtered calls instead of disputed raw counts, is the product's value to an agency specifically: fewer billing disputes, a provable number in front of the client.


Section 3: Pricing structure recommendation

Three tiers. Feature gates below are justified against real platform capability (4 providers unified, 13 call flow types, 200+ forwarding rules, 13 AI caller-intelligence fields per call). Dollar prices are a strategic recommendation, not a measured fact, and are stated as such.

Open item before final price lock: the real per-call marginal cost (AssemblyAI transcription, Claude Opus analysis, Supabase, Vercel) has not been measured for this product and is not in FACTS.md. Per Warren's cost-gate rule, no tier price below is confirmed profitable at the unit level until that COGS number is verified. Treat the prices below as a value-anchored starting point, not a locked number, until that verification happens.

Tier 1: Starter

  • Monthly price: $197 (recommendation, unverified against real COGS)
  • Included: single-location call log, spam filtering, sentiment scoring, revenue attribution for one niche, 1 user login, all 4 provider integrations
  • Call volume ceiling: up to 1,000 calls/month
  • Who it is for: a single-location home service owner running one or two ad channels who has never seen a spam-filtered, revenue-attributed call log before
  • Margin logic: priced at roughly 3% of the illustrative $6,000/month spend modeled in Section 2 for a comparable single-location business. Cheap enough that the sale does not need a hard ROI negotiation, expensive enough to filter out non-serious operators. Real margin at this price cannot be confirmed until per-call COGS is measured.

Tier 2: Growth

  • Monthly price: $497 (recommendation, unverified against real COGS)
  • Included: everything in Starter, plus all 13 call flow types, Hawkeye AI chat, SMS/text analysis, unlimited niches and services, up to 3 users
  • Call volume ceiling: up to 5,000 calls/month
  • Who it is for: a multi-channel single location or a small multi-location operator running several forwarding rules and needing call-flow control (IVR, round robin, overflow, etc.), not just a log
  • Margin logic: priced at roughly 5x Starter for roughly 5x the call ceiling, keeping price-per-call-slot flat while the feature set (flows, Hawkeye, SMS) captures the willingness to pay of an operator who is actively managing routing, not just reading a report. Real margin at this price cannot be confirmed until per-call COGS is measured.

Tier 3: Agency / Multi-Location

  • Monthly price: $1,497 base (recommendation, unverified against real COGS), plus an overage rate for volume above the base ceiling
  • Included: everything in Growth, unlimited locations or client accounts under one login structure, white-label option, API access, dedicated Hawkeye instance
  • Call volume ceiling: 15,000 calls/month included, overage billed per call above that (overage rate to be set once COGS is measured, do not quote a per-call overage number until then)
  • Who it is for: lead-generation agencies and marketing agencies managing multiple client accounts who need to prove ROI to their clients and want billing that survives a "how many of these were even real calls" dispute
  • Margin logic: anchored to Section 2's agency model, where billing only spam-filtered real calls defended a 62.5% margin on an illustrative $23,080/month revenue base. The base price is set so that even a single mid-size client account justifies the tier; the overage rate is deliberately left open pending the COGS figure, because an agency tier is the one place a wrong per-call cost assumption compounds fastest across many client accounts.

Section 4: Objection handling on price

1. "My ad platform gives me call tracking for free, why pay for this?" Free call tracking counts rings. On this platform's measured rate, 42.3% of logged calls are spam. Using Section 1's illustrative model, a business budgeting off raw ring count understates true cost-per-real-call by 73% ($10.00 apparent vs $17.33 true, on the stated example inputs). The free tool is not free once the misallocated spend is counted.

2. "My provider already gives me transcripts." A transcript is not the same as 13 structured, per-call AI fields (caller name, service needed, urgency level, customer type, call outcome, follow-up required, conversion probability, service complexity, and more). Nobody reads 400 transcripts a month. The structured fields are queryable and roll up into the ROI numbers in Section 2; a raw transcript does not.

3. "42.3% spam sounds too high, that can't be my business." That is the platform-wide aggregate across 103,000+ calls, not a claim about any single business's rate. The correct response is not to argue the number, it is to instrument the account and let it measure that business's actual rate, which may be higher or lower. The point of the product is that nobody currently knows their own number; this is how they find out.

4. "I can get this from CallRail or Twilio Insights already." Those tools report on their own traffic. This platform unifies 4 providers (Twilio, SignalWire, CallFire, CallRail) into one log with 200+ forwarding rules already mapped. A single-provider dashboard cannot show cross-channel revenue attribution because it does not see the other channels' calls.

5. "I already have a good enough close-rate estimate, I don't need attribution." Using Section 2's illustrative local-service model, the naive cost-per-call ($15.00, 6000/400) and the true cost-per-booked-job ($74.29) differ by nearly 5x once spam and close rate are both applied. A close-rate estimate that is not built on a spam-filtered, per-call revenue base is not measuring the number it claims to measure.

6. "The agency tier is too expensive for my client roster." Using Section 2's illustrative agency model, filtering to spam-free billable leads defended a 62.5% margin on an illustrative $23,080/month revenue base from a single 1,000-call/month client. The $1,497 base price is below 7% of that one illustrative client's agency revenue. The tier is priced to be justified by a single mid-size account, not the full roster.


Section 5: Risk register

Blunt, in order of how likely each is to actually sink the commercial offer.

1. Real per-call COGS is unverified. AssemblyAI transcription cost, Claude Opus analysis cost, Supabase, and Vercel usage have not been measured per call for this product. Every price in Section 3 is a value-anchored recommendation, not a confirmed-profitable number. If real COGS turns out higher than assumed, Starter and Growth tiers could run at negative or thin unit margin at volume. Mitigation: run a COGS audit (real AssemblyAI + Claude Opus + Supabase + Vercel spend divided by real call volume) before quoting any tier publicly. This is a hard gate, not a nice-to-have, per standing cost-gate policy.

2. The 42.3% spam figure is a platform aggregate, not a per-client guarantee. It comes from a mixed dataset that includes known-dead Twilio destinations (20,018 calls, 99%+ busy/no-answer). A prospect who checks their own account and sees a different rate could call the marketing claim misleading. Mitigation: always present 42.3% as "measured across our platform," never as "your rate will be X." Instrument every new account to show its own live spam rate within the first billing cycle.

3. Thirteen call flow types are fully built but never tested live. Zero calls have gone through a live flow configuration. If sales demos or promises call-flow reliability as a selling point, the first live failure becomes a credibility problem, not just a bug. Mitigation: sell flows as "included and ready to activate," not "battle-tested." Route the first live flow tests through low-stakes internal or pilot numbers before any paying agency client routes production call volume through them.

4. Revenue attribution mixes estimated and actual figures. revenue_estimated is calculated client-side by revenueRuleService.ts when the database value is $0; it is not always a measured actual. If marketing materials present the $46,000+ tracked revenue figure without disclosing the estimated/actual split, a sophisticated prospect or a skeptical agency client could challenge the number. Mitigation: any prospect-facing use of the revenue figure discloses that it includes rule-based estimates alongside actuals. Do not imply every dollar is a confirmed, invoiced transaction.

5. Raw call volume (103,000+) overstates clean, sellable volume. 20,018 of those calls are Twilio calls to dead destinations at 99%+ busy/no-answer. Leading with "103,000+ calls" without qualification risks a prospect discovering the dead-number problem and discounting every other number in the pitch. Mitigation: lead with qualifying/clean call counts in one-on-one sales conversations, reserve the raw 103,000+ figure for the general capability claim it actually supports (platform scale), not for implied lead quality.

6. No client references, logos, or case studies exist yet. FACTS.md is explicit that no client names, testimonials, or results may be invented. That means the current pitch is a pure numbers-and-mechanism argument with no third-party proof. Mitigation: prioritize landing 2 to 3 pilot accounts (even at a discounted or free trial rate, approved through the standard spend-gate) specifically to generate real, disclosed case studies before a broad paid launch. Until then, the pitch leans harder on the mechanism (Section 1) and the transparent, labeled model (Section 2) rather than on social proof that does not exist.

7. Pricing tiers are anchored to illustrative ROI models, not measured customer economics. Every dollar figure in Section 2 is a stated hypothetical. If actual customer close rates, average tickets, or spam rates diverge meaningfully from the illustrative inputs, the pricing justification in Section 3 weakens. Mitigation: re-run the Section 2 model with real numbers from the first 2 to 3 pilot accounts once they exist, and revise Section 3's margin logic against real inputs rather than the illustrative ones used here.