The project started as my idea. I work at a Czech IT company where part of my job is helping companies put AI into their processes, and I had seen a real proposal for inventory management at a fuel station network. Being Czech, I also had some feeling for how these stations actually work. It gave the team something concrete to build on instead of an invented company.
My main role turned out to be less about producing slides and more about holding the boundaries of what we were doing. I wrote the solution, workflow and governance parts, and gave feedback on the prototype, but honestly, the most useful thing I did was repeatedly saying what is inside our scope and what is not.
The pivot
The original proposal had five use cases: demand forecasting, inventory optimisation, automated ordering, dynamic pricing and expiry management. The problem was that none of it was agentic or generative. It was classic machine learning and optimisation, which the course required us to go beyond.
I drove that change, cutting it down first to three connected use cases, and then, after some research, to a single decision point: the moment when the system decides whether an order goes out automatically or goes to a human for approval.
That research surprised me most. I expected a gap and instead found that almost everything we wanted to build already exists. Blue Yonder and RELEX sell automated replenishment with machine learning forecasting as a standard product. Even more uncomfortable, MOL Group already runs station level forecasting for fresh food. The only thing that genuinely was not solved was how much decision authority you can hand over when the person approving is shift staff at a filling station, not a professional planner in a head office.
Accepting that our contribution is narrow was harder for the team than for me. There was never open disagreement, but I would explain it on one call, and then on the next call something would appear in the slides that only made sense if we were building something revolutionary. The clearest example was the baseline. An early version claimed managers spend around 110 minutes a day reviewing orders. I had to explain that nobody spends that long alongside a mostly automated machine learning (ML) system, and that we improve something that already works reasonably well. We settled on roughly 30 minutes, which is defensible.
The prototype
My colleagues built the prototype, but my feedback drove it through multiple iterations. Looking at what I was correcting tells me more about the project than any of the slides.
The first version showed orders for individual SKUs, which is not how a station orders. They order by product group, chilled food, fresh food, drinks, dry goods, tobacco, car accessories. Another version displayed improvement statistics, invented percentages about how much better things had become. That is interesting for a regional manager, but completely wrong for the screen where a station manager approves one order. Nobody had really asked who the user is.
The biggest issue was that the real world context, which is the entire point of our solution, was hidden somewhere in the interface instead of being the main thing. And some of the context examples were wrong in two different ways. Some were out of scope, like Internet of Things (IoT) telemetry from equipment across the network, which we never agreed on and which would need major hardware investment. Others were things the existing ML model almost certainly handles already, like weather, because weather is a standard input in any serious forecasting tool. Context only adds value if it is something the model genuinely cannot see: a supplier email about a delay, a road closure, a note from staff that the chiller is broken.
The design decisions I pushed hardest on
Two of them I still think are the strongest part of our work.
The first is that the agent does not touch the model’s own confidence. An earlier concept had it adjust the confidence score, and I argued against it. The model calculates its confidence from the statistics of its own forecast, and an agent reading emails has no basis to overwrite that number. The model keeps its confidence, and the agent moves the approval threshold instead.
The second is that the threshold moves asymmetrically. It can rise only when the evidence is confident and actually explains the anomaly. When the context is vague, unverified or contradictory, it goes down. Not finding a reason is not a neutral state, it is a risk. This also gives us an answer to the obvious attack, which is what happens when the language model invents something. If invented context can only make the system more cautious, then fabrication fails safe. Around that we built the rest of the guardrails: the threshold moves inside a fixed band, an absolute ceiling that no context can unlock, provenance on every adjustment, and a dead data source lowering confidence rather than being read as calm.
What I got wrong
My own failure was at the beginning. I understood the scope well, probably because of my work, and I assumed too quickly that everyone else did too. I did not properly check that we were all on the same page before we started producing content. I explained things, but not enough and not early enough, and the cost showed up as small inconsistencies throughout the project. One proper alignment session at the start would have saved much of the time I later spent correcting slides and prototypes.
Collaboration and what I take away
We never assigned formal roles. On each call people picked up work by agreement, so we ended up with domains rather than roles. It worked, but it also meant consistency was nobody’s explicit job, and it quietly became mine.
The project did not change my view of AI much, as I work with it already. What surprised me were the high expectations in the team and in the class. People assumed AI is close to magic. In reality most of what I see, and most of what we proposed here, is process automation with better inputs. There is a lot of hype on top of a smaller amount of real change, although the course did show me genuinely interesting applications, like AR glasses for car diagnostics or assistants supporting nursing care.
The strategy part is where I actually learned something new. I came in thinking the value is in the technology. By the end I understood that the AI layer itself is the commodity or how to put it. What is defensible is the data underneath it, MOL’s own escalation history, and the trust of the people who have to approve its decisions. That is a much less exciting conclusion than the one we started with, and I think it is the right one.
