Overview
Every two weeks, a pharma pricing team reprices 100+ products under real margin pressure. We built the system that backs every call.
The Challenge
Every tender hides the same trap
A pharmaceutical company competes in medicine tenders that run every fourteen days. In this market, the lowest bid usually wins the entire volume, so every two weeks the pricing team has to reprice more than one hundred products, each with thin margins and real money riding on the outcome.
The problem is harder than it looks. Bid too high and you lose the volume outright. Bid too low and you give away margin you didn't need to. And there's a hidden third cost: every price cut also devalues stock already sold into pharmacies, so a bid that looks safe on its own can quietly damage the wider supply chain.
The team was doing all of this by hand: reviewing market data, estimating competitor positions, modelling scenarios, and making calls under real time pressure. The process was slow, inconsistent, and hard to improve. Worse, there was no feedback loop, so nothing learned from one cycle carried forward to the next.
The Solution
A recommendation the team can read, question, and trust
We built a bid intelligence platform that gives the pricing team AI-generated recommendations, with full reasoning and hard guardrails, for every product, every tender cycle. The team reviews and decides. What used to take hours now takes under a minute per product.
The real engineering challenge wasn't building an AI that could recommend a price. It was building one the team could trust. An LLM left to its own devices will write a fluent, confident answer that's completely wrong, and in tender pricing, a wrong answer costs real margin. We solved this by building the system in layers, so the AI is never the source of the facts it reasons from.
Trustworthy by design
Costs, stock position, market position, and historical prices are computed from the underlying data using plain code, never guessed by the AI. The AI reasons on top of those verified facts. Its output then passes through hard business rules that can override any recommendation it makes. Every result is fully traceable, from raw data to final bid, so the team can follow the logic, challenge it, and understand exactly what drove it. That traceability is what makes it trustworthy enough to run on live tenders.
Real pharmaceutical data is also messy: missing costs, placeholder values, gaps in demand history. Rather than papering over those gaps with a guess, the system says so, explicitly. A system that admits what it doesn't know is far more useful than one that confidently fills the gap with noise.
Four layers, one trustworthy recommendation
Each product gets its own predictive model, selected from around twenty machine learning models tested against that product's specific data, because different products behave differently under price pressure. The system picks the model that fits that product, not the one that looks best on average.
The LLM then takes those verified facts and writes the actual recommendation in language the pricing team can read and challenge: why the AI recommends what it does, how confident it is, which market signals drove it, and the price and competitor history behind it. It's not a number handed down. It's a reasoned position the team can agree with, override, or push back on, and every one of those decisions feeds back into the system.
Rather than a single recommended price, the platform shows win probability across a range of price levels using Monte Carlo simulation, so the team sees the trade-off between price and probability of winning instead of being asked to simply trust a number. Guardrails sit above the AI layer throughout: a price cut that would devalue stock already in the pharmacy channel gets blocked, regardless of what the models suggest. These rules don't bend.
The platform improves itself. After every cycle, the team's decisions and the real tender outcomes feed back in, and a second AI agent turns that history into structured context for the next round, capturing how the team prices, how competitors move, and how the market shifts over time. Two years of cycles, decisions, and outcomes now inform every new recommendation, and improvements ship every two weeks, timed to the tender cycle itself.
Layer 1: Plain code computes the facts
Costs, stock, market position, calculated deterministically, never by the AI.
Layer 2: AI reasons on verified facts
Around twenty ML models per product, plus an LLM that writes the recommendation with full justification.
Layer 3: Hard business rules override the AI
Economically unsafe bids are blocked, no matter what the model suggests.
Layer 4: The team reviews and decides
Every recommendation traceable from raw data to final bid, in under a minute per product.
Transformation timeline
Layer 1
Plain code computes the facts
Layer 2
AI reasons on verified facts
Layer 3
Hard business rules override the AI
Layer 4
The team reviews and decides
The Results
Not a finished product, a compounding capability
The pricing team now reviews AI-generated recommendations with full reasoning and decides in under a minute per product, across more than one hundred products, every fourteen days. What used to be manual is now systematic, consistent, and improving on its own.
The platform runs on live tenders. Every cycle produces new data. Every decision the team makes sharpens the next recommendation. It isn't a finished product, it's a capability that compounds.
100+
products repriced every 14 days
8 years
of tender market data feeding the models
<1 min
per product for team review
4-5x
estimated profit impact vs. ML predictions alone
Live,
running on real tenders every two weeks
