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 tool I use most for this work. It's fast, and I'd tell any founder to use it. I say Claude because it's what most founders I work with have. The same traps show up on any AI.
Across that one project, Claude was confidently wrong about a dozen times. Never with an error message. Always with a clean, reasonable number that was quietly off, usually in the direction of making the business look better. A forecast that runs 20% high is worse than none. You over-order inventory, over-hire and miss your plan.
Here is what happened, and how to stop it 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 wants to help. So it rounds toward optimism and takes shortcuts when a step gets hard. Running the math is the easy part. Catching where it went wrong is the job.
Pitfall 01
It defines your numbers its own way
The first number Claude handed me was a customer acquisition cost of about $330. Mine was $250. Both were right by their own definitions. 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.
Why it happens
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.
How to steer it
"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.
Pitfall 02
It treats missing data as zero
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. 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. The jump 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.
Why it happens
Claude reads an empty cell as a zero, not as "we don't have this yet." When a metric jumps sharply, check the data first.
How to steer it
"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.
Pitfall 03
It counts revenue twice
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.
Why it happens
Buckets look clean, and Claude assumes they don't overlap. Often one quietly contains part of another.
How to steer it
"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?
Pitfall 04
It flatters your existing customers
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.
Why it happens
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.
How to steer it
"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.
Pitfall 05
It adds seasons that aren't there
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. 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.
How to steer it
"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.
Pitfall 06
It quietly swaps in simpler methods
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.
Why it happens
When a step gets messy, Claude reaches for something easier, and it doesn't flag the switch.
How to steer it
"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.
Pitfall 07
It "validates" against its own data
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. It says nothing about whether the method predicts.
How to steer it
"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 the test properly, the raw method missed by about 20%, and the anchored version landed within about 7%. That told me exactly how much to trust it.
Ask for this test every time.
A last word
Running the model is the easy part.
None of this means Claude is bad at finance. 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. Knowing which numbers to distrust, and why, is the part that takes years.
That's the work I do for DTC and subscription brands. If you've built a forecast with AI and aren't sure you can trust it, that instinct is usually right. Send me the model. I'll show you where it's off.
The one-page checklist
Check your own model.
Everything above on a single page you can hold your forecast against. Leave your email and I'll send it.
It arrives straight away. I'll also send new guides when I publish them. Unsubscribe in one click.
Let's compare notes on your numbers.
Bring your model, your last P&L, or the decision that's keeping you up. You'll leave knowing what I'd look at first.