We can now say why a lead was lost, in the customer’s own words
Every lost lead now carries a cause and the sentence the customer said, so any conclusion can be checked against the recording.
UK coding education business · Co-Founder & CEO
I co-founded this business and I run it at CEO level. The explanation was sitting in thousands of recorded sales calls and onboarding notes. Parents talk about their children on those calls, so none of it goes to a third-party API. Listening to them by hand was never going to happen, so we built something that could.
Live platform counts, August 2026.
Recognised2nd of 100, Club Hub UK Top 100 Children’s Activity Providers 2026 · Innovate UK funded · Xero Beautiful Business Fund global winner 2024 · STEAM Impact Awards 2026 winner · National Autistic Society Autism Inclusion Award 2025 · Code Awards accredited by STEM.org · 5.0/5 from 128 Reviews.io reviews
The situation
The business teaches coding to 6–16 year olds online and in person, across ten club locations and a virtual club.
The reporting could say how many leads didn’t convert and nothing in it could say why.
My role
Founder and CEO, and the engineer on the commercial systems.
I co-built the platform with my fellow founder and I manage the technical team, so I decide what the business needs and then build it.
The platform is shared work and I’m not going to claim it alone (my co-founder would have something to say about that). The systems described on this page are mine, design and build.
How the pipeline runs
Every stage inside the dashed boundary runs on hardware I own. Nothing inside it goes to a hosted API.
What the numbers did
Both lines are up, and revenue is up faster. The two smaller figures multiply to the large one: 18% more customers, each worth 14% more, is 35% more revenue.
Recurring revenue and customer count over the year to 1 March 2026, both indexed to the start. Both rise and revenue rises faster, ending the year 35% up against 18% more customers. Growth is gradual through the autumn and steepest over the winter. Both lines dip in the middle of the window, which is the summer holidays in a school-term business and happens every year.
What changed
Every lost lead now carries a cause and the sentence the customer said, so any conclusion can be checked against the recording.
The calls are transcribed and interpreted on a machine we own, and no family detail goes anywhere near a third party.
The conversion rate used to depend on who pulled it. The board pack, the dashboards and the headline now read from the same place, so when somebody claims a change worked the argument is about whether it worked and no longer about whose figure is right.
An unfinished month always looks better than it is, so the reporting now says when a period is too young to judge.
Everyone here works with an AI assistant. Ours answer from the business systems, under the permissions those systems already enforce.
Decisions worth explaining
Directional briefs run through two backends over identical input, a local model and a cloud one, writing a side-by-side comparison for human judging. Local is used because it measured good enough here. That won’t hold everywhere, and if it hadn’t here I’d have paid for the cloud one.
The rubric requires quoted evidence and tells the model to under-emit, because a false flag harms a real family and a real mentor.
The pipeline defaults to a local database. Targeting production requires an explicit flag and a typed acknowledgement before any write, because a mis-pointed run would change live data straight away.
Stack. C# / .NET and MongoDB, local speech-to-text and open-weight models on owned hardware, a hosted model for comparison only, and MCP servers over the business systems.
Work with me
Tell me the problem you’re trying to solve.