"Why did that call cost $2?"
One developer was surprised that a 10-minute call came to $1.50–2.00 once STT, LLM, TTS and telephony were added up.
Tally adds up your transcription, LLM, voice and phone bills for each call, and shows what each customer really costs you and what you earn on them.
A voice agent bills you in minutes, tokens, characters and carrier minutes, from four or five vendors, on different cycles. Your customers pay you per minute or per month. Nothing connects the two.
One developer was surprised that a 10-minute call came to $1.50–2.00 once STT, LLM, TTS and telephony were added up.
A team running LiveKit on its own servers, paying three provider invoices, asked exactly that. No single bill can answer it.
Teams wire up Postgres and Grafana by hand, count TTS characters one by one, or open every provider dashboard and match timestamps.
Anyone paying several voice vendors and charging customers for the result.
Know what every call cost and what every client earns you before you renew a contract.
See which customers cost more than they pay, and price the next plan on real numbers.
Cost per call from the metrics LiveKit or Pipecat already emit, reconciled against each invoice.
Most useful between 10,000 and 500,000 minutes a month.
Open source, Python standard library only, runs next to your agent with SQLite.
Three lines for LiveKit Agents or Pipecat. It reads the usage metrics the framework already produces: audio seconds, tokens, characters, minutes.
Default rates per provider and model, your own rates on top. Real costs reported by a provider replace the estimate. Unknown models are flagged, never counted as $0.
Cost per call, per customer and per agent next to what you charge. Reconcile against each invoice to see the money no call explains.
No accounts, no API keys. The demo writes 30 days of sample calls for three fictional customers.
# install and run the demo pip install -e . # from the repo: source code coming soon tally demo tally report --by customer tally serve # dashboard on http://127.0.0.1:8787 # in your LiveKit agent from tally.collectors.livekit import attach attach(session, HttpSender(), call_id=ctx.room.name, customer_id="acme", defaults={"stt": "deepgram/nova-3", "llm": "openai/gpt-4o-mini", "tts": "cartesia/sonic-3"})
| Customer (demo data) | Calls | Minutes | Cost | $/min | Revenue | Margin |
|---|---|---|---|---|---|---|
| Harbor HVAC | 141 | 714 | $63.07 | $0.0884 | $57.11 | −10.4% |
| Lumen Realty | 193 | 398 | $37.37 | $0.0939 | $309.63 | 87.9% |
| Northside Dental | 259 | 699 | $26.98 | $0.0386 | $125.90 | 78.6% |
Synthetic demo data, fictional customers.
Provisional launch pricing. It may change before general availability.
Self-hosted, Apache-2.0. Collectors, price table, dashboard, reports, invoice reconciliation.
Free up to 10,000 minutes a month, then $49/month minimum, capped at $499/month.
Default provider prices are a starting point; check them against your own contracts.
We are looking for 2–3 agencies or multi-tenant voice SaaS teams to try it on their own calls.
We only use your email to contact you about this. Privacy.