Photo by petr sidorov on Unsplash
Two models. One predicts sales almost perfectly, yet gives disastrous business advice. The other is a terrible forecaster, yet gets the decision exactly right and boosts profit.
What's going on?
Every data science model review seems to eventually arrive at the same slide: MAPE, R², backtesting and holdout accuracy. These are all measures of how well the model predicts. If the accuracy is good, the data scientists are happy. The model is accurate, so surely we can now use it to make data-driven business decisions? How much to spend, what to price, where to take action.
But accuracy metrics grade exactly one skill: given what we observed, how close was the prediction to what happened? That's the wrong exam for data science designed for decision making. It's passive.
Business decisions are active: if we take action, what happens? To those inexperienced in causal thinking, these might sound like the same question. But they're very different. And a model can ace one while failing the other completely.
Everyone knows that correlation does not imply causation. But data scientists often don't acknowledge the close cousin of that trap: predictive power does not equal causation either. A model can forecast beautifully and still be worse than useless for deciding what to do.
Graded by MAPE, R², holdout accuracy. As long as no action is taken and the world stays as it is, the model is fine.
Graded by causal thinking and reality, after you act. The world changes because you moved a lever. The model needs to be able to handle that.
We can show this with a very simple case: just three variables and a simulation. Both examples that follow are deliberately minimal toy models, stripped down to abstract away the clutter of a real system, so the mechanism stands out sharply and nothing hides behind complexity.
If we simulate the world, we know what is actually going on. It's our ground truth. We can use the simulation to generate data from a known process, then fit our models to it and see how well they understand what's going on.
So when a model claims "acting on A does nothing to the outcome C", we can check it against a ground truth that no real dataset ever gives you. We know the real answer to check against.
A simple three-variable example shows that this is not because of complexity. Rather, it's a fundamental mismatch between predictive models and their understanding of the world in which we need to act to change outcomes, rather than just predict them given no action.
Case 1


In causal inference we call B a variable on a bad control path, here a consequence of the outcome used as a predictor. Conditioning on something downstream of sales lets the model "peek at the answer", which makes accuracy look wonderful and makes every coefficient about levers meaningless. Here the wiring flips the estimated effect of A to the wrong sign outright; other wirings merely shrink it towards zero. There are other bad controls too, but the point here is that accuracy doesn't care about bad controls, and will actively use them if it gets better predictions. That creates bad decision-making algorithms.
Case 2

The ML model fitted to the simulated data predicts units sold from discount depth alone. As a result its forecasts are poor. The scatter graph of predicted versus actual is a cloud. MAPE is terrible, R² is low, and in any accuracy / predictive-power bake-off this model finishes dead last. It's not a good forecaster.

For each case, the accuracy score told you nothing about the decision-making ability of the model. Case 1 would be near-perfect on MAPE, R², every holdout and backtest, yet got the lever's sign backwards. Case 2 was terrible on those metrics, yet would nail the best action to take exactly. High accuracy sat with a disastrous decision; low accuracy sat with the right one.
An accurate model tells you what tomorrow looks like if you change nothing. Only a causal model tells you what tomorrow looks like because of what you do. Don't let the first one grade the second one's exam.