# Give an AI SDR a spending policy before you give it a budget

_By Apoorv Khanna, September 23, 2026_

An AI SDR needs a decision before each paid step: does the evidence justify buying more information about this lead? Jev can supply a typed judgment, code can enforce the spending policy, and Vaaya can meter the calls. We call this proposed architecture the Gated Spend Loop. Its value depends on how much useful work it preserves while avoiding unnecessary purchases.

This is a design and test plan. We do not yet have campaign results that establish whether the gate pays for itself.

## Where the money goes

A lead can consume enrichment credits, email verification, research calls and message generation before anyone decides whether the account fits. Sequence seats and connected mailboxes add another bill. Changing the writing model affects only part of that total.

These charges have different rules. Apollo's public pricing FAQ describes seats, add-on credits and export credits consumed by activities including enrichment and CRM exports. It also distinguishes when subscription changes affect the bill. Read each vendor's terms before treating an avoided API call as cash saved. [Apollo pricing, checked September 23, 2026](https://www.apollo.io/pricing)

Suppose a company's own website already establishes that it serves a different market. The workflow should use that evidence before buying a phone number. If the website is ambiguous, a second source may be worth buying. A missing field alone does not establish that the next enrichment call has value.

Fixed seats need separate treatment. Skipping forty leads does not cancel a monthly subscription. Report marginal call spending alongside an allocated share of fixed costs, and explain the allocation.

## The Gated Spend Loop

The proposed loop separates four responsibilities:

```text
Lead + evidence already collected
              |
              v
Jev judges fit, evidence sufficiency and uncertainty
              |
              v
Policy checks threshold, allowed action and remaining budget
         /                 \
  skip or review       buy the next call through Vaaya
                              |
                              v
                   result + metered price + receipt
                              |
                              v
                    update evidence and repeat
```

Keep Jev's questions narrow. Ask whether the evidence supports a stated account criterion, whether the contact matches a defined role, and whether the next lookup would resolve a specific unknown. TypeSafe documents three output primitives: a choice, a score, or a probability for a yes/no question. Code combines the answers into a decision. [TypeSafe introduction](https://docs.typesafe.ai/introduction)

The policy owns permission to spend. It should check the allowed provider and action, a per-lead ceiling, and the remaining run budget. Reserve the maximum permitted charge before dispatch so concurrent requests cannot independently spend the same balance. Charge retries to the same lead. Reconcile the reservation with the returned price.

A failed or uncertain judgment should enter a defined review path. TypeSafe explicitly cautions that calibration applies across groups of predictions; an individual answer can still be wrong. [TypeSafe System One documentation](https://docs.typesafe.ai/concepts/system-one)

Save the evidence version, rubric version, chosen action and attempt identifier alongside the receipt and actual charge. Record skips too, with a reason code. Otherwise the spending ledger contains purchases but cannot explain what the workflow refused to buy.

## A hypothetical budget for 100 leads

Assume enrichment costs $0.10 per lead, verification $0.02, and message generation $0.03. Assume a judgment costs $0.0001 and an existing sequence subscription contributes $10 to this batch. These are invented accounting inputs, not vendor quotes or measured Vaaya prices.

In this example, the ungated workflow processes all 100 leads. The gated workflow judges all 100 and sends 40 through the remaining steps.

| Cost | Ungated | Gated |
| --- | ---: | ---: |
| Enrichment | $10.00 | $4.00 |
| Verification | $2.00 | $0.80 |
| Message generation | $3.00 | $1.20 |
| Judgment | $0.00 | $0.01 |
| Allocated sequence subscription | $10.00 | $10.00 |
| Total | $25.00 | $16.01 |

The difference is $8.99. The subscription bill stays unchanged. The example also excludes review labor and assumes no retries; a real comparison must count both. If the rejected group contains valuable prospects, the apparent saving may cost more than it saves. For workflows that also buy creative, add each image or video attempt to the same lead allowance. The [custom-image workflow](/blog/custom-image-in-every-cold-email) covers production review; the [personalized-video calculation](/blog/personalized-video-cost-for-sales-outreach) connects the additional cost to expected contribution profit.

## Experiment one: measure spending and missed leads

Predeclare a $50 variable-spend cap for each arm. Randomize eligible accounts, keeping contacts at the same company in one arm to avoid contamination. Freeze eligibility rules, providers, writing prompts, outreach timing and the reply observation window before starting. Both arms retain ordinary suppression and sending safeguards; “ungated” means no Jev spending gate.

The control buys the defined sequence of calls for every eligible lead. The treatment applies the gate. Include every billed judgment, retry and fallback within the cap. Stop dispatching when the next reserved charge would exceed it. Report how many assigned leads remain unfinished when an arm stops.

Predeclare variable spend per assigned lead, fixed-cost allocation, verified contacts, delivered messages, qualified replies, booked meetings, and cost per qualified outcome. Define “qualified” before reading replies. An arm with no qualified outcomes has no finite cost-per-outcome estimate.

Audit a random sample of skipped leads independently. Report false skips as human-qualified leads divided by all audited skips, with the sample size and uncertainty. That audit estimates qualification mistakes; it cannot establish how many skipped people would have replied. A separate, prospectively randomized holdout is needed for that claim.

## Experiment two: judge real replies against people

Freeze a reply rubric with categories such as interest, referral, objection, unsubscribe and ambiguous. Two reviewers label real replies independently without seeing Jev's answer; adjudicate disagreements. Keep a held-out set untouched while choosing thresholds.

Compare Jev with the adjudicated labels using a confusion matrix and per-category precision and recall. Inspect unsubscribe misses, ambiguous replies and low-confidence cases individually. Record disagreement between the reviewers as well, because an unclear rubric can make both people and models inconsistent.

Before the first campaign call, date and save the allocation rule, rubric, stop conditions and receipt schema. Keep that record unchanged while you run the experiment so the results can be checked against the original plan.

## Questions

**Does a cheaper AI SDR workflow produce better sales results?**

Lower spending alone does not establish that. Compare qualified outcomes and audit leads the workflow skipped, while counting the judge, retries and fixed subscriptions.

**Has this experiment produced results?**

This article describes a proposed experiment. The example costs are hypothetical, and no campaign outcome is claimed.
