Vitruvi
Critical Problem Resolution
Configurable pricing engine · Product Manager
Project Summary
Vitruvi was a hyper-growth SaaS startup building construction management software for telecom and utility builders. I joined just before the Series A, stayed through 10× revenue growth, and left after the private equity acquisition. I started by leading product operations and went on to lead one of the core platform squads.
This case covers one problem from that time. Several large customers at risk of churning named the same feature request as their top issue. Instead of building it as asked, I traced it to a limitation in our pricing engine and shipped a smaller fix that solved the underlying problem.
20%
Reduced churn risk in at-risk customers
<10 min
To update pricing, down from 30–90
$100K+
ARR retained
The Request
Several large customers who were at risk of churning kept raising the same request as their number one issue: a way to see progress and reporting across multiple Vitruvi instances at once. Together they represented a meaningful share of our revenue, which made the request worth digging into. Building it as asked would have been a large project. It would also have added complexity to the product and pushed customers to use it in a way it wasn’t designed for.
From Request to Root Cause
- The request See projects across multiple instances at once
- Why? Customers had split projects into multiple instances
- Why? It was a workaround to keep their pricing accurate
- Root cause Conditional pricing had limitations and didn’t scale
- The fix Rate cards
Pulling the Thread
Before scoping it, I wanted to know why these customers had multiple instances in the first place. Customer Success had been splitting their work into separate company instances as a workaround for a limit in our pricing engine.
Pricing worked as one base price per labour or material item, with conditional rules on top. Many prices were agreed contractor rates, like $5 for every foot of cable placed for a given region. Rules were set as a percentage of the base price, so when a base price changed, every rule built on it changed too. To keep paying contractors their agreed rates, someone had to find and recalculate each of those percentages. Our largest customers had 500+ prices and many rules, so it was easy to miss one. It was also hard to see the full set of prices for a given situation, which made auditing difficult.*
Separate instances kept pricing accurate, but customers lost combined progress and reporting. They had to choose between easy project tracking and accurate pricing. New government grant programs were adding even more pricing complexity, so the problem was growing.
The Solution: Rate Cards
Customers already received pricing as rate cards, a full price list for each contractor or program. So I made the product work the same way. Customers copy in a rate card and choose where it applies. Each card stands on its own, so changing one price never changes another.
This cut pricing updates from 30 to 90 minutes down to under 10 for larger customers, and it removed complexity from the product instead of adding to it.
Updating Pricing: Before and After
Before
- Create a conditional rule for every price variation, often 50 or more
- Find and apply the right rule to each item, from a list of hundreds
- When a base price changes, find and fix every rule built on it
Usually 30–90 min · Mistake-prone
After
- Create a rate card and choose where it applies
- Paste in the prices from the contractor’s rate card
- When a price changes, edit it on that card
Usually under 10 min · Errors uncommon
Results
Customer Success made rate cards part of its standard setup and helped customers move back from split instances to a single one, which gave them combined reporting again. It removed the main churn risk for 20% of our at-risk customers, which was a key driver in retaining over $100K in ARR with Vitruvi.
It also took one-sixth of the development resources of the original request, saved customers significant time on pricing updates, and drove adoption of the expenses module.
*Vitruvi’s product has come a long way since. These issues reflect a moment in time, not the more mature product they have today.