Where the July 2026 bill goes, and what each lever is worth. Numbers are pulled read-only from Twilio usage records (July = last full month) and Firestore prd; savings are monthly at July unit prices, ± 15%.
Two lines are 84% of spend: renting 2,728 phone numbers ($3,098) and toll-free SMS ($3,560). Around 2,000 of those numbers have no tenant, no calls in 90 days, or belong to churned accounts, and office texts average 3.9 segments because each carries a 130-character recording URL. Releasing stale numbers and shrinking the texts are worth $4,360/mo in the likely case (−57%, ≈ $52k/yr); the SMS and dead-recipient fixes are already implemented on this branch.
Voice is already cheap — SIP trunking to Retell is $632 for 144k minutes. The money is in rentals and texts.
Twilio's channels line ($3,555) is the parent bucket for SMS outbound + carrier fees + inbound, not an additional charge; the itemized lines above sum to the $7,639 total. Not in use anywhere: Lookups, Verify, Studio, Conference, transcription, AMD, CNAM, trunk recording.
Conservative vs likely, $/month. Stale-number release and the SMS body format are ~85% of the opportunity between them.
Bill composition today against the likely case.
2,728 numbers in Twilio; only 1,919 have a tenant document, and 1,215 of those (63%) have had no call in 90 days. Number rental is 40% of the bill, and nothing in the platform releases a number today — the only intentional release path is the A/B variant delete.
| Tier | Who they are | Numbers | $ / mo | Gate |
|---|---|---|---|---|
| A | Twilio-only, no numbers doc. 806 route to GoHighLevel/LeadConnector; 691 were bought on 2025-12-19 in a three-minute window — residue of the "7,503 accidental purchases" incident. About 57% are fully idle. | 813idle ≈ 460 | $935idle $530 | Confirm GHL ownership with sales/marketing first |
| B | accountHealthExclusions — operator-marked test line or dead account — with no call in 90 days | 366 | $421 | Safest cohort; release first |
| C | unlisted (no HubSpot company) with no call in 90 days, minus A/B-linked numbers | 802 | $922 | 128 have a CRM configured — spot-check; 202 were never called at all |
| D | unclassified with no call in 90 days | 12 | $14 | CSM check |
| E | cancelled (churned) with no call in 90 days. 11 of the 31 churned numbers still receive calls. | 8 | $9 | Offer forward or port-out; 30–60 day grace |
| Conservative | A idle + B + E | ≈ 830 | $960 | |
| Likely | A – E | ≈ 2,000 | $2,300 |
disableSelfServeNumber only blanks the voiceUrl and keeps billing. Clones carry no isClone marker and docs have no created-at, so Twilio dateCreated is the only age signal.abtestNumber / isABTestNumber. Releasing one without unlinking sends callers to a dead number through decideNumberToUse; run clear-abtest-link.ts first.removeRetellNumber leaves orphaned retellData and Retell phone objects — 95 already exist.apps/backend/scripts/release-stale-numbers.ts to fleet-write conventions: dry-run by default, --apply plus a --cohort file, re-verify each number immediately before release (last call, class, A/B link, deny-list), write AuditTrail/{phone}/logs with the Twilio SID, detach from the Retell trunk and delete retellData. Script the revert first — the doc can be restored; the number cannot be re-bought.voiceUrl and detach the trunk for 30 days, watch inbound attempts, then release.provisionedAt / expiresAt on demo, test and clone numbers so they auto-qualify.Audit script and output: /tmp/archer-audit/audit-stale-numbers.ts, /tmp/archer-audit/number-audit.json (2,732 rows).
SMS is $3,560 all-in, about $0.0123 per segment. Office lead texts averaged 3.9 segments because shortenUrl() was a stub returning the full ~130-character recording URL, alongside a duplicated summary line. 8.5% of messages failed outright — to the same landlines and dead numbers, call after call — and Twilio bills the failed segments too.
| # | Lever | Cons. | Likely | Effort | Status · risk |
|---|---|---|---|---|---|
| 1 | Shrink office SMS: real URL shortener (/r/:token redirect, ~50 chars), drop empty values and the summary line when the reason field already carries it, collapse blank lines. Measured 8 → 5 segments on real messages. | $900 | $1,500 | Low | builtSummary drop is a product call; one constant to tune. |
| 2 | Drop the Premium Support plan (4% of spend) to Developer | $294 | $294 | Trivial | Slower Twilio support SLA. Console change, no code. |
| 3 | Suppress dead SMS recipients: auto-disable after 3 consecutive permanent failures (landline 30006, dead 30005, invalid 21211, opt-out) or 10 transient; visible in the call log and Settings → Post Call with one-click re-enable. | $150 | $245 | Low | builtSavings ramp as the webhook accumulates history. |
| 4 | Negotiate committed-use / volume pricing (~$7.6k/mo, mostly numbers and toll-free SMS) | $500 | $1,200 | Sales cycle | 12-month commitment; shrinks once the levers above land. |
| 5 | Move office SMS from toll-free to 10DLC senders (carrier fee ~$0.003 vs $0.0042 per segment) | $200 | $290 | Medium | Campaign vetting, per-number daily caps, carrier filtering. |
| 6 | Delete 67,959 legacy pre-Retell recordings (92k minutes; none created since May 2026) | $59 | $59 | Low | Export to GCS first, or accept losing playback on old call docs. |
| 7 | Merge after-hours lead + action texts; route monitoring.ts error SMS (with stack traces) to Slack | $40 | $80 | Trivial | None. |
| 8 | Transfers via SIP REFER instead of Retell bridging (21.6k bridged minutes a month) | $50 | $75 | Med–High | Twilio-side saving is small; the real win is ~$1,000–1,500/mo on the Retell bill. Unverified that Retell supports REFER on custom trunks. |
| — | Retell-purchased numbers instead of Twilio | — | — | Not recommended: Retell numbers cost more per number. |
Outbound campaign calls originate from a Retell-owned number, so the $214 termination line is transfers and after-hours dial-outs only.
| Bucket | Conservative | Likely |
|---|---|---|
| Stale-number release | $960 | $2,300 |
| SMS format + failed recipients + after-hours / error texts | $1,090 | $1,825 |
| Support plan + recordings | $353 | $353 |
| Toll-free → 10DLC, SIP REFER (Twilio side) | $250 | $365 |
| Total, excluding negotiation | $2,650 | $4,840 |
| Volume-pricing negotiation — overlaps; apply to the residual bill | $500 | $1,200 |
The headline figures ($2,460 / $4,360) are these totals with lever overlap removed — 10DLC and part of the SMS savings shrink once the SMS body shrinks — and negotiation excluded.