Article
AI sales forecast: 9 traps so far
Yesterday I could not tear myself away from the computer. When I lifted my head, it was half past eight in the evening. I had been sitting alone upstairs for about three hours.
I was teaching an AI agent that can work independently with data and code. The task: a short-term sales forecast, a predictive view of incoming orders and revenue.
The plan was simple.
Give the agent the data, the campaigns, the context, and let it forecast orders for the next thirty days, every morning. And teach it to understand why the number lands where it lands on a given day.
I decided to build this more robustly than this particular output strictly requires. The reason is broader than one prediction. Once the agent understands what revenue is made of (the tail of a season, a short-term push, an unexpected outage, the effect of overlapping campaigns), a whole field of possibilities opens up for what else I can put it to work on.
One thing was clear from the start. Throwing a pile of numbers at the agent is not enough. For the result to be usable, it has to understand the connections between them. It has to be able to answer "if that seasonal campaign were not running, what would the chart look like?". It has to say "this mid-month peak we are expecting because of a retention campaign ending in two weeks". It has to answer what-if questions and return believable simulations.
The goal is clear.
Another step toward the state when your AI agent joins the team. Get the agent to a level where someone else can say "fine, you take this over, I will do something else". It is not easy.
THE NAIVE FIRST VERSION
The starting position was this. The data warehouse keeps daily order aggregates. The project management tool stores campaigns with tags, start and end dates, types. The marketing plan provides year-on-year growth assumptions.
I gave it to the agent and it produced a formula:
baseline(2026-D) = actual(2025-D, weekday-aligned)
forecast(2026-D) = baseline × growth_target × campaign_multiplier
The multiplier (the number you multiply the baseline by to reflect the impact of a campaign) it pulled from history. A day at the peak of a particular campaign historically had some multiple of revenue compared to the state when no campaign was running. A different multiple for seasonal holidays.
At first glance it looked decent. Close enough to be worth tuning. I started building a dashboard so I could visualise the result while tuning it.
When I asked it to explain the logic and visualise the data, a several-hour battle began.
ROUND 1: WHY WERE MY PROFILE MULTIPLIERS LYING?
One of the campaigns the model flagged as the strongest. That was wrong.
I wrote to it: "That is completely off. This thematic week is one of the weaker ones. The other campaign running in parallel has a much bigger impact."
The problem was in the baseline (the reference state against which campaign impact is measured). The multiplier was being computed as the ratio of (median of days when the campaign ran) to (median of other days). But "other days" included other parallel campaigns. The baseline was artificially inflated. The lift attribution (the increment in revenue assigned to a campaign) was distorted in both directions. Some campaigns overstated, others understated, depending on which other campaigns happened to be running during their inactive days. In overlap periods, which is most of the year, the attribution was completely off.
After I objected, the agent rewrote the baseline definition to "median of days when no push campaign was running". But the result was not suitable as a starting point for analysis. There were few clean days. For some markets and weekdays I did not even have five examples. Campaigns overlap almost continuously.
ROUND 2: WHY IS AD ATTRIBUTION ONLY THE TIP OF THE ICEBERG?
Then came the attempt to add more context. Measurable campaign impact via ad attribution (assigning orders to a specific ad), conversions from the ad platforms.
The agent could not interpret it correctly again.
I wrote to it: "But you did not account for consent rate. How many people refuse cookies."
Through the ad platforms only a portion of orders gets matched. The rest goes through non-consent customers who refused cookies. They do not show up in the ad platforms, but they do in the order records. The agent knew about this gap, but did not include it in the prediction method.
After recalculation the campaign numbers rose to more realistic values.
And straight away we hit another layer.
ROUND 3: HOW DOES ON-SITE COMMUNICATION CHANGE CONVERSION RATES?
I wrote to it: "A campaign does not have impact only through ads. When a campaign appears on the website, conversion lifts for everyone who arrives, not just clicks from ads. Including those from search referrals, direct, and so on."
Join the Library
Full access to my findings, personal stories, and what I learn from the people I meet.
Join the Library · €29.99 per year How a small business, creator or politician can be… What should I study in the age of AI?… I Left My Job for Several Months to Read… How I Fell in Love With Her, at First… How do you stop depending on social media? Can… How to Start With AI in a Company: Automating…Get the full article by email and feel free to reply if you want to discuss it further.
Summary
Common questions on this article's topic
Can an AI agent forecast sales and orders?
How do you build an AI sales forecast?
What is the consent gap in ad attribution?
How do you measure the impact of a marketing campaign on conversion rate?
Can an AI agent replace a marketing analyst?
How do you forecast orders for a market with no history?
Related articles
Are you a content creator playing by the rules of YouTube, Instagram or Google? Are you a small business owner whose business model depends on how often Amazon recommends you, how expensive Facebook ad impressions will be or how expensive Google Ads clicks will be? If all or most of your contact with your audience or customers depends on a big platform showing you to them, you are not in a strong position.
AI produces the graphic, the newsletter and the product page faster than a person. What is left for the one who used to do it is the judgement, knowing whether the output is good. But most people have worse judgement than AI. And whoever cannot judge quality cannot delegate either. How do you tell whether yours is the judgement a company relies on, or the kind it can replace?
In April, in the first part of this series, I wrote about an AI prediction system I had started building on my own machine. At the time the software was a few hours old and the prediction record was empty. The record since then has shown one thing: the system does not yet understand the market it is being asked to forecast. It can pull macro context, book value, earnings. But it cannot put those together into something that helps it understand the price.
More articles
The development of artificial intelligence changes how we look at which paths in life make sense. Which studies and which profession to choose.
It was Thursday, 31 March 2022, when I handed over the last of my responsibilities to my colleagues, closed my laptop and went to the library. I left my job for several months and immersed myself in philosophy. And I am immensely grateful for it. Today I am, like most people, on a merry-go-round, and it is hard for me to stop and think about the fundamental questions of my own life.
It was September 2023. My life, my work, everything was completely different from now. It was simpler. I owned almost nothing. I needed to film an advert, I went up to a floor inside the company where the product I needed for that advert was, and there I noticed her for the first time. She laughs at me when I describe it like this, but at that moment the universe told me, that is her.
How and why I am gradually leaving social media and the big platforms. When I read that Meta is testing a new way to charge for organic posts that link outside its platform, it confirms how right I was to become steadily less dependent on the big platforms and on social media. It does not mean I have left them completely. It means that whether or not I stay in touch with my readers depends on them less and less, and today almost not at all.
One of my family members described a firm that has its data in several different tools, and its employees still join it by hand, in spreadsheets. That is the ordinary state of firms. When somebody tells such people not to do it by hand and to use AI, they will not understand. Most firms do not even have the basic connectors between the tools they use. These firms need help with AI transformation.
The same task, two models. Fable 5 against Opus 4.8. On paper Fable is the better model, with a larger context and stronger specs. And still it lost. Opus handled the task with a single round of checking for 721,000 tokens, while Fable needed nine rounds and burnt through 2.78 million tokens. The difference was not in the model, but in how I set the task. And I know it, because I measured it.
A few weeks ago I installed a small local AI model on my laptop that watches a live camera feed. I turned the webcam on in the dark, and in near total darkness it recognised me and the objects in the room. That such things exist, I have known for a long time. What opened my eyes was the accessibility. I installed it in one prompt, free, and it runs entirely on my machine, sending data nowhere.

I once wrote about building my own privacy-friendly analytics tool. It had bot detection from the first version, yet it was not enough. Direct visits took a strangely high share of my traffic. When someone claims that 20% of their visits are bots and 80% are humans, I used to think the same. Today I would say the opposite ratio is closer to the truth. This is how I got there.

I have Heidegger and my notebook beside me. I am asking where all of this is heading, where artificial intelligence is taking us.

Four days in Catalonia. No computer, no AI, almost no social media. I bought this notebook so that I could write down what I would think about, and what I would come across and learn on the trip.

