
Optimizing contract data extraction forms to accelerate insights that helped drive $170M in customer savings in 2024
Role
Product designer
Team
1 PM, 2 Devs & Head of Product
Timeline
Jan - Feb 2024
Parts of this process have been intentionally changed or omitted in this case study to comply with the conditions of my NDA.
I built a fast, reliable way to extract contract data that can uncover software overpayments with AI-driven pricing insights
Context
Companies invest significant time and resources in tools like Slack, Zoom, Asana, and Mixpanel to boost productivity. As they grow, the number and cost of these tools can become unmanageable.
Fig. 1. Examples of software contracts companies start accumulating
With the issue of increasing costs, Tropic aims to innovate it's spend management platform to help companies manage software contract expenses. One way is through AI that can check a customer’s price on a contract and see whether they are overpaying for that contract (or what we’re calling Price Checks, as seen in Fig 2.).
Fig. 2. We determine if customers are overpaying for contracts by employing statistical analysis and ML algorithms
problem
The current data extraction forms are clunky and lack the ability to add nuanced yet crucial data inputs
While price-checks have been a game-changer for our customers, our current data extraction process has been leading to inaccuracies in the data collected. This lack of data integrity could result in misleading pricing insights. After consulting with our data team, we identified the following insights
We needed to dig deeper to understand why these issues existed. What was holding up data extraction? What inputs were we missing?
Fig. 3. A look at the current form extraction form and it’s issues
process
The plan to make the extraction process faster
After learning about the pains of extraction from our data team, I embarked on overhauling our extraction workflow. Our hypothesis was by improving the form design of data extraction and adding the appropriate inputs in the form, we’d decrease time to extract.
One of the points of frustration for extractors was lack of nuance in current data inputs. Real contracts don’t just have total prices. Some have monthly pricing, some have one-off prices and others have discounts associated with them. This is just one example of inflexible data inputs that we had in the current system.
Fig. 4. The goal I wanted to reach for data extraction times
Fig. 5. Low fidelity concepts exploring different ways to input monthly prices
Regular communication with our data team was essential, as their feedback was crucial for improving the experience. In the design shown in Fig. 6, extractors could select contract information and customize their extraction forms. However, the team pointed out that while this level of customization would meet the different nuances of contracts, there might not be enough conditional fields to justify this level of customizability. As a result, we decided not to pursue this concept further.
Fig. 6. An iteration where the extractor chooses which inputs they want to extract from the jump
With a need for speed in mind, we knew there was something to be done about the larger form extraction design. In order to increase speed while still making our extractors feel confident in the decisions they were making, we aimed to simplify.
Fig. 7. Eye scanning difference between the old multi column layout and the new single column layout
We also restructured the extraction process into distinct stages. By breaking down complex tasks and introducing intuitive form patterns, we reduced extraction times.
Fig. 8. A birds eye view of breaking the form into logical steps—I wanted extractors to be able to focus on one thing at a time
solution
Final Designs
Below is a video walking through the full experience along with some stand out screens that give a better glimpse of designs.
Fig. 9. Watch me walk through a quick prototype of final designs
Fig. 10. The first step of the extraction process that asks for pricing information
Fig. 11. A review page so the extractor can check their work — I was inspired by receipt designs for this page
impact
Hundreds of contracts extracted
After finally landing on our final version, and found extractors were able to reduce their extraction time to 5 minutes. Through this model we were also able to extract hundreds more of contracts, enriching our price checks feature with a trove of granular pricing data. But don’t take my word for it, here’s what the data extraction team had to say.
“
This model is incredible. From the aha moments where things snapped into clarity to the satisfaction of seeing the automated per unit prices match exactly what’s on the order forms.
”
— Head of Extraction
Designing a Stripe Connect integration to enable easy set up of payments
Check out how I designed a way for online businesses to connect their stores to Stripe Connect via WP Engine.