I Used Claude to Forecast My Apps a Year Out. It Took Two Goes.
This is the second in my running series on what it is actually like to build a small business with AI in the loop. Last time it was Google indexing. This time it was forecasting. Same pattern — a useful answer in the end, after I caught the AI doing the wrong kind of maths and made it redo the work.
What I set out to do
I run three apps. Starting Lineup, Netball Lineup, and Golf Handicapp. To keep an eye on them I built myself a local dashboard that pulls live numbers from App Store Connect, Google Play, Search Console, Analytics, our Supabase backend, and RevenueCat — all into one screen so I can see at a glance how each app is doing.
This week I asked Claude to forecast where the apps would be in 12 months. I wanted real numbers I could plan against. Not vibes. A model.
What it nailed
The plumbing was done in minutes. Claude wrote a script that pulled the last 30 days of Apple Sales Reports for all three apps and broke down installs and subscription events per app. Then it gave me a forecast. Three apps, low / mid / high scenarios, seasonality factored in for football and golf, even a cost-per-acquisition reality check on the Apple Search Ads campaign I had just paused.
It was confident. The table was tidy. It read like a finished piece of work. Which is partly why what happened next was worth writing down.
The answer that didn't sit right
The Golf Handicapp line said I would end the year with about 77 paying subscribers.
I already have nearly 50 paid-or-on-trial after one month of real traffic. The install count had grown 2 in February, 4 in March, 11 in April, 52 in May, and was on track for roughly 350 in June. That is not a line. That is a curve heading up sharply.
I called it out. The forecast was straight-line — take the last 30 days, multiply by twelve, apply a conversion rate. That is how you under-predict an early-stage product by an order of magnitude.
So I pushed back and asked Claude to pull the actual monthly trajectory it should have used in the first place:
| Month | Golf Handicapp iOS installs | | --- | --- | | Feb | 2 | | Mar | 4 | | Apr | 11 | | May | 52 | | Jun (projected) | ~350 |
With the curve in front of it, the revised forecast came in around 180 to 230 paying subscribers by next June. Different conversation entirely.
Same data, two different answers depending on whether the model assumed linear or compounding growth. The default was linear. I would not have known unless I argued with it.
Where the AI got it wrong (this part matters)
The forecast was not the only number it had fed me that week that turned out to be misleading.
A few days earlier I had been looking at the dashboard and noticing a stat labelled New customers 28d: 226 on the Golf Handicapp tile. I had felt good about it. Two hundred and twenty-six paying customers in 28 days is a healthy run-rate.
Then I opened the RevenueCat customer list directly. It showed 30 customers. Thirty. Not 226.
I asked Claude to figure out where the gap came from. It turned out RevenueCat's new_customers field is literally identical to its active_users field — RevenueCat creates a customer record for every install that boots the SDK, paying or browse-for-free. The 226 was installs. The 30 was paying-or-trialling customers.
Claude had wired that field into the dashboard and labelled it Net new paying customers acquired in the last 28 days. Wrong by a factor of seven, in a confidence-inspiring tooltip. I made it relabel the stat and write a proper tooltip explaining what the number actually was.
So in the same week the AI both under-predicted by 3× on the forecast and over-stated by 7× on a headline stat. Both errors came from the same root cause — it defaulted to the most plausible-sounding interpretation of a number without checking what the number actually measured.
I am not knocking Claude for it. It is the same shape of mistake I would make in five minutes if I were trying to be helpful and not paying close attention. The point is just that I had to be the one paying close attention.
What I would tell you
- Do not ask an AI for a forecast. Ask it for the curve. When I asked for "a forecast", I got linear extrapolation dressed up as analysis. When I asked for monthly installs broken out per app, I could see the curve myself and the forecast fell out instantly. AI is great at pulling and shaping the data. The judgement about which line to draw through it is yours.
- When the AI gives you a confident-looking number, ask what is actually inside it. Specifically: "what does this metric measure, in the underlying API's own words." Half the pain of any dashboard is metrics that sound like one thing and measure another, and an AI will happily inherit that confusion and dress it up in a clean label for you.
- The default model in an AI's head is linear. Early-stage growth is not linear. Seasonal businesses are not linear. Network-effect products are not linear. If the AI answers a "next 12 months" question with
weekly × 52, push back. - Keep your own context loaded. Claude did not know I had paused an ads campaign that morning. It did not know May had been the inflection month. It did not know I already had 49 active subscribers. The minute I supplied any of that, the conversation got useful. AI is fast but not omniscient — your judgement is part of the pipeline, not an optional extra.
The forecast I am working from now is one I trust. The conversation that produced it was a fight. That seems to be how this kind of work goes.
If you are building something and you want a second pair of eyes on the dashboard you have stitched together, or on the numbers your platform is feeding you, get in touch — and the quote generator is the easiest way to get a feel for how we work.