Voice Agent Reporting Hub: the thinking.
A reporting system that turns raw voice-agent call logs into client-ready weekly reports — built for a voice AI agency and used on real client accounts.
The starting point.
What made this worth building.
An agency running voice agents for several clients has the raw material for a good weekly report — thousands of call rows — and no way to turn it into one. Counting by hand is slow and inconsistent, and each client wants different agents, tabs and thresholds. Meanwhile the numbers in front of a client have to be right the first time.
The direction I chose.
The approach taken.
A password-gated internal hub that pulls call logs, classifies each call by tier, outcome, intent and hang-up reason, computes every metric deterministically, and renders a client-facing report. Each client is a YAML file — agents, tabs, column aliases and thresholds — so onboarding a client or an agent needs no code change.
How the pieces connect.
Each stage exists because the one before it cannot be trusted on its own.
- 01Raw call logs
- 02Classification · tier, outcome, intent
- 03Deterministic metrics
- 04Draft report
- 05Human review
- 06Published client report
The decisions behind it.
The constraints I set deliberately, and would defend.
- Configure clients in YAML rather than code, so adding a client or an agent is a config change.
- Keep all counting deterministic — the model classifies, it never computes a number that reaches a client.
- Label synthetic demo rows in a visible banner rather than ever showing unlabelled placeholder data.
- Keep generated output and real client data out of version control entirely.
- Treat a report as reviewed-then-published, never generated-and-sent.
What has to hold true.
How I would know it works — and how I would know it does not.
- A 511-test suite covering classification, metric counting and report rendering.
- Verification rules check pulled data before it can reach a report.
- Every metric is traceable to the rows it came from.
Where this stands today.
Stated plainly, with nothing implied.
This project is complete.
Designed and built the hub — the data pull, the classification layer, the metrics engine, the report renderer and the review flow. Built for a voice AI agency alongside my QA analyst work. No client names, call recordings, transcripts or caller details appear here or anywhere in this portfolio.
Keep going