I forecast revenue for DTC and subscription brands for a living. Earlier this year I built a half-year forecast for a subscription client, and I did it with Claude.
Claude is the best tool I've used for this. It's fast, and I'd tell any founder to use it. I write Claude here because it's what most of the founders I work with have, though the same traps show up on any AI.
But across that one project, Claude was confidently wrong about a dozen times. Never with an error message. Always with a clean, reasonable-looking number that was quietly off, almost always in the direction of making the business look better than it was. And a forecast that runs 20% high is worse than no forecast. You over-order inventory, over-hire, and miss your plan.
So here's what actually happened, and how to keep it from happening to you. You don't need to be a finance person to catch this. You need to know what to distrust.
One thing fixes half of it. Claude is fast, and it wants to be helpful. That means it rounds toward optimism, and it takes shortcuts when a step gets hard. Running the math is the easy part. Catching where it went wrong is the job.
Done. The checklist is on its way to your inbox.
The first number Claude handed me was a customer acquisition cost of about $330. Mine was $250. We weren't disagreeing. It had quietly used website-only ad spend, and I track spend blended across every channel. Two definitions, one of them not mine, and the better part of an hour lost chasing a gap that was never real.
Every core metric has more than one honest definition. Cost to acquire a customer can be website-only or blended. A "new customer" can be counted per order or per person. Claude picks one and runs, and it's often not the one your dashboard uses.
"State the exact definition you're using for [metric], the top and the bottom of the ratio, before you calculate anything. Then match the one we use internally: [spell out yours]."
Do this once per metric, up front. It saves days.
This is the one that got me first, and it's the clearest example of what I mean.
I told Claude, in plain words, that I didn't have Meta ad spend for the first few months of the data. I didn't have it. What I never said was "assume the spend was zero."
It assumed zero anyway. It didn't ask. So for those months my blended acquisition cost came out around $45, which looked fantastic, and then "jumped" to about $80 the week the real Meta numbers started. That jump wasn't the business changing. It was the data finally showing up. If I'd trusted it, I'd have planned the whole back half of the year around a number that never existed.
Claude reads an empty cell as a zero, not as "we don't have this yet." A sharp jump in a metric is usually the data changing, not the business.
"Before you use any series, tell me which date ranges have complete data for every input. Do not fill missing periods with zero. Drop them, and flag any sudden jumps so we can check whether they're real."
A zero usually means the data is missing, not that nothing happened.
Claude split my revenue into tidy buckets, website versus marketplace, new versus returning, and assumed they were clean. They weren't. About 20% of what it labeled "website returning" was actually wholesale orders sitting inside that line. I'd asked for a separate wholesale line on top of it, which would have counted that 20% twice and inflated the whole forecast.
Buckets look clean, and Claude assumes they don't overlap. Often one quietly contains part of another.
"Show me that these revenue buckets don't overlap and that they add up to our reported total. For each one, tell me whether it already includes wholesale, one-off, or marketplace orders."
The check is simple. Do the parts add up to the whole?
This is the big one, and it showed up three different ways in my model.
First, Claude projected revenue from my existing customers as flat, and in one version rising. A fixed group of customers with no new sign-ups can only shrink as people leave. Flat was impossible.
Second, it "deseasonalized" the starting point. It decided the current weeks were an artificial low and lifted the whole forecast to start about 10% above what the business was actually earning that month. That's six figures of revenue the business wasn't making.
Third, it built a retention curve from years of old data and applied it straight. Older data means weaker retention and stale prices, so it lagged where the business actually was.
All three lean the same way. They inflate the number. One defies business logic, one invents revenue, one uses the past to describe the present.
"Revenue from existing customers with no new acquisition should decline over time. Show me the decline rate you measured and the window you used. Anchor the forecast's starting level to our actual recent run-rate, not a deseasonalized or historical-average level. If your near-term number sits above our recent actuals, explain why in plain words."
The cleanest single check: is the first month of your forecast about equal to last month's actual? If it's higher, ask why until you're satisfied.
Claude wanted to put a seasonal factor on every line, including subscription re-orders. Those mostly don't follow the calendar.
For a subscription base, how many customers reorder in a given week depends on when they first signed up and when their renewals land, not the season. And how much each one spends barely moved with the calendar in my data, a couple of percent at most. Force a seasonal curve onto that and you've invented a pattern, and you'll mistime your inventory.
"Don't assume seasonality applies to retention. Test it. Measure spend per customer by week of the year and show me the size of the swing. If it's small, keep retention flat. Keep seasonality only where it's real, like acquisition cost, and show me the evidence."
Ask what actually drives each number. The calendar, or something else like sign-up timing and ad spend.
Partway through, Claude and I agreed on a method for aging the newer customers. When that math got noisy, it swapped in a simpler method without telling me. I only caught it because one assumption cell was sitting there unused, not wired into any formula. That orphan cell was the only clue the model had drifted off the method we agreed on.
It also liked to hand me results as typed-in numbers I couldn't trace.
When a step gets messy, Claude reaches for something easier, and it doesn't flag the switch.
"Build this on live formulas, not pasted values. Put every assumption in its own labeled, editable cell. Confirm the method still matches what we agreed. And check that every input cell actually feeds a formula. Flag any that don't."
Two-second audit: click a headline number. If it's typed in instead of calculated, you can't defend it.
When I asked Claude to validate the model, it showed me the model recreating the same numbers it was built from, and called it validated.
That proves nothing. Reproducing your own inputs is guaranteed by the math. It checks the arithmetic, not whether the method predicts anything.
"Run a hold-out test. Rebuild the model using only data through [an earlier date], then predict the period after that, which we already know, and compare week by week. Show me the raw method and, if you adjust it, the adjusted version, both against actuals."
This is the most convincing thing in any forecast. Did the method predict a stretch of reality you hid from it? When I finally ran it honestly, the raw method missed by about 20%, and the anchored version landed within about 7%. That told me exactly how much to trust it.
Demand this test. It's your best defense.
None of this means Claude is bad at finance. It's the best tool I've used, and I use it every day. But a forecast is a stack of judgment calls about your business, and Claude will make those calls for you, quietly, in the direction of looking good. Running the model is the easy part. Knowing which numbers to distrust, and why, is the part that takes the years.
That's the work I do for DTC and subscription brands. If you've built a forecast with AI and you're not quite sure you can trust it, that instinct is usually right. Send me the model you built. I'll tell you where it's lying to you.
Everything above, condensed to a single page you can hold your own forecast against. Leave your email and I'll send it to you.
Done. The checklist is on its way to your inbox.
The checklist arrives straight away. I'll also send new guides when I publish. One click to unsubscribe.