Tiller
Tiller is an idea I developed while interning at an AI-native startup building commercial assistance revenue-growth software for consumer (CPG) brands. I started looking into the PE channel and the opportunity in codifying the investment pipeline processes.
I mapped the market landscape and the comparators, and spoke to a long list of people across the industry — investors, operators, deal advisers — about what they use today and whether third-party AI tooling could help at any point in the investment lifecycle.
Commercial diligence kept coming out as the place to start. It is the most method-shaped work in the lifecycle: a defined scope, the same modules deal after deal, exhibits that repeat, evidence drawn from external sources. And it is the work I had done for four years, so I have first-hand experience of what needs to be done in a CDD process.
How Tiller works. You give it a consumer target and your investment criteria, and it runs the standard commercial diligence scope module by module: market, competition, consumer demand, channel, growth and risk. One rule organises the whole engine: the LLM decides, the code computes. Judgement calls go to the LLM, one at a time and each one named; anything that has to give the same answer twice is Python, so a run is reproducible and every number on the page traces back to the input it came from.
- Code owns computation and checking. Tested Python helpers build the market model itself, the driver tree, the reconciliation of bottom-up against top-down, and the sensitivities. Others normalise pack prices onto a common unit, pull registry filings from Companies House, run the sanity checks (do the segment shares sum to the market, does a growth rate start on a distorted base year), and draw the chart geometry. No arithmetic is ever done in prose.
- The LLM owns the judgement a consultant brings. It sets the segmentation, chooses the comparable set, decides which figure to adopt when three sources disagree on market size and records why, and writes the assumptions the model then runs on. It writes the inputs, it does not do the maths, and it never gets to encode a conclusion as if it were a calculation.
- Every figure is a record rather than a sentence. Each one carries its source, retrieval date, data vintage and one of five method badges, running from reported at the strong end to proxy at the weak end. A linter blocks the report from rendering if a figure is missing any of them, and a derived figure inherits the weakest badge of its inputs.
- Exhibits are specified before the research starts, chosen from a library I built by classifying the exhibits in real diligence decks. Each one is a view onto the single frozen model rather than its own piece of analysis, so two charts reading the same quantity cannot disagree.
- Judgement is checked by judgement. The evidence is scored against your criteria row by row, then a fresh agent that knows nothing about how the report was built reads it as a sceptical investment committee partner and challenges the case, and separate blind readers try to rebuild every printed figure from the page alone. What comes back is a call, invest, dig deeper or walk, with the reasoning and the sources attached.
Tiller is in development and has run trial reports with two customers. It is on the back burner while I am on exchange at Wharton with my build focus on Diollo — the idea is not going anywhere.
If you are interested in this space, or want to discuss or collaborate, please reach out. The site is live at tiller-ai.app.