Every entry now has a line in the ledger behind it
Over 79,000 so far, and the history behind each one can be audited line by line.
Confidential client · Technical Co-Founder
I came into this as technical co-founder. Thousands of records were being posted as ordinary sentences in chat, and nobody could say what they added up to. People were acting on the totals anyway. Then it had to price outcomes better than the tool the market already trusted.
Platform counts, August 2026. Client, sector and product withheld at the client’s request.
The situation
Interpreting each entry, attributing it to the right person and reconciling the totals was a manual job.
The third-party pricing tool the team depended on was badly miscalibrated: on some measures it was an order of magnitude away from what the wider market said. Acting on its numbers lost money, and nobody could open it up to find out why. I still don’t know.
My role
Technical co-founder. Idea to production, including the decisions about what not to build.
Nobody handed me a specification, because writing one was the first piece of work. The product didn’t exist, so a large part of the job was deciding what it should be: which problems were worth solving, which were interesting and commercially irrelevant (there were a lot of those), and what order to build the rest in.
From there it was mine end to end: the architecture, the parsing, the pricing model and its backtesting, the AI layer and the tenancy boundary.
The outcome
The platform’s value rests on whether its figures can be trusted, so the result worth stating is about auditability rather than volume. Totals that used to be taken on faith can now be checked, and the pricing decisions the team once took from a tool nobody could open are taken from a model they can test against what happened.
What changed
Over 79,000 so far, and the history behind each one can be audited line by line.
The team runs a whole historical period through the model with the outcomes hidden, then compares it against what the market said at the time.
Every call is logged with its own cost. Over 42,000 calls and 433 million tokens have gone through it across four distinct workloads, split between two providers so no single vendor is a dependency.
A language model will produce a confident number whether or not it’s right, so answers about money are checked against the underlying record to a penny on value and 0.1% on rate. A run that reports a gain where the ledger shows a loss fails outright.
I treated the boundary between tenants as a security surface: isolation, state-change gating and privilege changes were reviewed adversarially, and what that found was fixed before launch. It’s a code review practice. Where a client needs certified assurance, the answer is an accredited penetration test by people who do only that.
Decisions worth explaining
A general model can talk about this domain fluently and still can’t price it. This one learns from what happened, and how it does that is the client’s product.
The relevant history is handed to the model with the question, so a conclusion can be traced and corrected, which anything baked into weights can’t be.
Pricing is modelled from independent data feeds the team can inspect, so when a number looks wrong somebody can see why it is what it is.
Stack. C# / .NET, MongoDB, chat-platform bot integrations, third-party data providers, a fine-tuned model with a retrieval layer, and a hosted model for the analysis layer.
“Ashley has taken our product from an idea into a real, scalable software platform. He’s been able to translate what we wanted to achieve commercially into the product, architecture and technology needed to make it work, while personally leading the development and AI side of the platform. Having someone who can think like a technical co-founder but still be completely hands-on with the engineering has allowed us to move incredibly quickly without compromising on where we want the product to go.”
Work with me
Tell me the problem you’re trying to solve.