Automation · Case study
A changing market. A daily view.
The same searches a customer would run, every day, on around 15 broker sites.
Situation
A car rental business prices its fleet against a market that moves every day. Around 15 broker sites sell rentals at its locations, each quoting its own prices, car classes and currencies.
Challenge
Pricing the fleet needed each day's market, location by location.
Pricing a rental fleet against the market means knowing what around 15 brokers are quoting, at which locations, for which car classes, in which currency, today.
Our approach
We automated the customer's own search and lined every result up like for like.
A pricing decision is only as good as the comparison behind it, and around 15 brokers each quote in their own car classes and currencies. We recommended automating the customer's own search rather than relying on a data feed, and lining every result up like for like before comparing it. The searches run every day, and at 08:00 a report shows where the business stands in each market, which prices to lower or raise at each location, and the coverage gaps per country. Any location can be re-checked on demand rather than waiting for the next day.
- Automated collectionStandardised searches run daily on around 15 broker sites, at fixed rental lengths and booking times; a daily record shows which sites answered, because not all of them do.
- Price comparisonSupplier names, car categories and currencies lined up, so listings from different brokers compare like for like.
- Pricing actionsLower and raise recommendations per location and category, with the comparison they came from.
- Reports and full dataScheduled reports for the daily decision, and every underlying price for anyone who wants to check them.
- Visibility trackingWhere the business appears in each marketplace, and where it does not appear at all.
- Coverage gapsLocations and categories where the market is quoting and the business is not.
- Price historyEvery observation is kept, so today's price can be read against the same price last month.
- Live researchA single location re-checked on demand rather than waiting for tomorrow's run.
How it works
One flow, start to finish.
Workflow
Select a stage to see what it does, what it receives and what it hands on.
Select a stage to see what it does, what it receives and what it hands on.
- Sources: Broker sites. Receives from: Nothing. Hands on to: Automated collection.
- Capture: Automated collection. Daily searches across broker sites Receives from: Broker sites, Live research. Hands on to: Price comparison.
- Capture: Price comparison. Supplier names, car categories and currencies lined up, so listings from different brokers compare like for like. Receives from: Automated collection. Hands on to: Price history.
- Record: Price history. Every observation is kept, so today's price can be read against the same price last month. Receives from: Price comparison. Hands on to: Pricing actions, Coverage gaps.
- Work: Pricing actions. Lower and raise recommendations per location and category, with the comparison they came from. Receives from: Price history. Hands on to: Reports and full data.
- Work: Coverage gaps. Locations and categories where the market is quoting and the business is not. Receives from: Price history. Hands on to: Reports and full data.
- Outcome: Reports and full data. Scheduled reports for the daily decision, and every underlying price for anyone who wants to check them. Receives from: Pricing actions, Coverage gaps. Hands on to: Nothing.
- Control: Live research. A single location re-checked on demand rather than waiting for tomorrow's run. Receives from: Nothing. Hands on to: Automated collection.
The product is mostly the 08:00 email: market position per country, the actions it implies, and the gaps. The portal behind it is where a location gets re-checked now, where a category's history is read, and where a daily record shows which sites answered this morning and which did not.
What changed · As at September 2026
The day's market, reported at 08:00.
The 08:00 report carries the comparison behind each lower or raise recommendation, so a recommendation can be checked against the market rather than taken on faith.
Live. 12 of the around 15 broker sites searched were returning data, and 80 suppliers had been seen in the past week.
For technical teams
Engineering decisions
How it was built.
Automate the customer's own journey rather than scrape a feed: standardised searches (one-, three-, seven- and fourteen-day rentals at fixed lead times) for every tracked pick-up point, normalised on the way in, because the comparison is worthless if two comparison sites' listings can't be lined up.
Collection runs as 19 scraper modules covering around 15 broker sites, in a container separate from the application, so a broker changing its markup breaks one scraper and nothing else. Supplier, category and currency are normalised on the way in to a single observation table in USD, which makes both the daily comparison and the historical series possible from the same rows; the report is generated from those rows rather than maintained alongside them. A deploy gate refuses to ship an uncommitted tree and keeps its own audit trail.
Built with
Checked against its own output
An audit of the system's own output found a classification test excluding valid comparisons; the fix followed four days later. The audit was ours, and the finding is in the repository. Systems that make recommendations need to be checked against their own output, and that check has to be scheduled rather than hoped for.