Initiative
RenoRun is an on-demand construction material delivery startup based in Montréal, Canada. I served as Product Manager for the Supply Squad. Overlooking Merchandise and Pricing.
RenoRun operated in 5 cities (2 in Canada, and 3 in the US). Launching new cities was the mandate. One big blocker however was the speed and accuracy of pricing updates.
Updating prices required series of compounding excel formulas. Using 4 data sets across 4 different platforms. This was a specialized workflow that no one else could cover if anything went wrong.
Our only Pricing Analyst spent 7-13 hours per pricing update (per country). Thus, each country received 2 pricing updates per week. Leaving Friday to cover any uh-oh moments.
On top of that: A typo or empty column in our "Merch Sheet" could — and did on few occasions — take down the entire shopping experience on our e-com site, mobile app and internal tools.
Data Sets
GSheet: Canadian Assortment
GSheet: USA Assortment
GSheet: Warehouse Costs & Inventory
CSV: Scraped Prices from Mindrest (a data scraping service)
Platforms
G-Sheet
Excel
Plytix — Product Information Management System (PIM)
Mindrest
Flow of Catalogue Data
RenoRun's totally disjointed workflow around pricing updates not only limited our ability to launch new cities, but also risks major system failure and thus, financial harm—which happened on occasion due to the fragility of the system.
The entire company ran on these Google Sheets: Sales, warehouse teams, data, finance, and merchandise teams. Replacing parts of a running engine is risky and requires surgical precision, effective communication and a deep understanding of the entire business.
For H1 2022, our squad had 3 OKRs. Relevant to this case study is the following.
Objective
Achieve accurate lightning speed pricing updates.
Key Result
Reduce time to update 100 prices and push them to production by 80% per Pricing Analyst from approx 7-13 hours to 1.4-2.6 hours.
Existing Workflow Benchmark
Getting store prices = 0h
Validate data = 1h per 100 SKUs
Calculate Prices = 1h per 10-25 SKUs
Validate Prices = 1h per 100 SKUs
Make prices go live = 1 hour
Existing Pricing Logic
If our product (or equivalent) is available at the big box stores, match their pricing. If no equivalent: Move to step 2.
Apply a margin OR markup % to the product (based on the average margin of the category)
If a manual price for the item was provided by merchandisers, then use that price.
Total Time Variation
The variation in total time depend on several key factors.
How many items per country. US had significantly more products than Canada
How many blanks or errors is returned by the scraper — which leads to manual website searches and manual price overrides.
How smoothly were the previous days' pricing updates. If there are rolling issues or corrections from the previous update, then this squeezes the window for the current update. Often rushing to beat the clock.
It's crucial that each release delivers value to the end-user or business. Strategy begins with a vision. And the vision here was price automation. Leaving human involvement to overseeing any anomalies or anything else machines can't do well.
After articulating the "Ideal Flow", I broke out each story into subsequent releases. Carefully connecting each release given the many dependencies at play, while ensuring some value being released each time.
Release timelines are meant to detail the near future. This view served to keep everyone aligned on what's upcoming and was used to prototype different outcomes and timelines with my squad and stakeholders.
Our squad had 4 separate tracks to manage, each represented by a colour.
Green = Pricing Automation
Yellow = Product Information Management (PIM)
Blue = Integration with eZdia (content scraper)
Pink = Inventory Automation
Videos are a great way to showcase new features and drive engagement and excitement within the company.
Here's a demo of the culmination of our 5th release: Pricing Automation for Benchmarked Products 🎉
Result
The culmination of the first 5 releases resulted in this feature.
Reduce time for price updates for benchmarked products by 80%
Increased quality of life for our Pricing Analyst. No longer needing to work evenings and weekends.
Enabled RenoRun to launch new cities without pricing updates being the bottleneck.
The 🍒 on top: We improved the stability of business-critical catalogue updates from 75% to 99%
Note for readers who care about the nitty gritty: Without going into too much detail — "Benchmarked products" are items commonly sold at big box stores (Home Depot, Lowes, Rona). The remaining products to automate are specialty and warehouse items where pricing is inherently more complex. We started with benchmark products because it consisted of 80% of our catalogue assortment.
BEFORE
7-13 h
AFTER
1.5-2.5 h (-80%)
💭 Final Thoughts
I'm very proud of my team, the work we've done and our collaboration across the organization. Personally, this was a massive challenge of coordination, understanding the entire business through shadowing, interviews and mappings. Not to mention release planning that allowed us to unlock incremental value on our way to a "complete" feature.