Procore - Creating Flexibility For Construction Budget Fund Transfers

Procore, the #1 most-used construction management software, was focused on building features for enterprise construction firms because they generated more revenue, but this caused us to neglect other customers. I challenged our team to consider them by reducing the time to complete fund transfers.
Role
Product Designer
Timeline
Apr '18 - Jan '19 (10 months)
Core Responsibilities
Product Design, Visual Design, Research

Problem

Creating fund transfers is cumbersome for Project Managers when managing construction budget reports

Our users are Project Managers, who manage costs and progress of construction work. Out of several hundred user requests, this was consistently the #1 most-requested feature for over 2 years, yet was continually forgotten.

Fund transfers are similar to concepts like moving money from savings to checking or Venmo transactions

There are 3 different types of fund transfers within Procore's budgeting features — one to many, many to one, and one to one

The previous fund transfer experience was tedious and didn't not allow construction Project Managers

Limited flexibility: Can only make fund transfers one at a time (no bulk transfers to accommodate one to many or many to one transfers)
Inconvenient scrolling to make fund transfers: Construction project managers have to search through several hundreds of cost codes (items to the right)

Long loading time: Given that users can only make one fund transfer at a time, the process of waiting per fund transfer is exhausting.

Research

Through searching through user feedback forums, I discovered that the most popular complaint about the fund transfer feature is that users are limited to only one-to-one transfers

- It is time-consuming to complete make 2+ more fund transfers at once
- Project Managers feel that budget modifications in Procore are redundant because they can only create one transfer at a time when they need to create multiple at once

Customer Support receives a massive volume of complaints about how Procore's fund transfer feature is time-consuming and tedious

The problems above affected not only early and mid-market companies but also enterprise; this was my key to prioritizing this project, which had been ignored for several years, on the roadmap. Procore was prioritizing enterprise markets at the time.

Based on analyzing page insights, Project Managers are prone to accidents due to struggling to locate line items or costs associated with them

- High number of clicks on the close button: Project Managers needing to constantly reference how much money is in their line items
- Line item dropdown requires Project Managers to scroll: Results in users accidentally clicking the incorrect line item
Based on user session recording on FullStory

Gained insight into the severity of our fund transfer feature — most users are making 2+ at a time, and it takes a significant amount of duration each time

My product manager and I collaborated with our data analysts to gather database queries.

Identified our fund transfer feature's primary pain points — focused on a lack of context and flexibility when creating fund transfers

Lack of context when creating transactions: Users don’t know how much money they are transferring from one line to another. After a transaction, they don’t know the revised amounts.

Lack of flexibility: Users could only make one-to-one transfers but not one-to-many or many-ton one, which resulted in inconvenient workarounds

Goals

Reduce time to complete fund transfers by creating a fast and flexible system for creating a variety of fund transfers

The user impact was to lower time inefficiencies so that project managers could work on more impactful tasks compared to the mundane task of managing fund transfers. This can help improve engagement and retention for all market segments rather than just enterprise customers.

- Flexibility: We needed to accommodate the 3 types of fund transfers.
- Automation: Auto-calculate based on the type of budget modification to increase user convenience.
- Context: Provide helpful information needed to complete various types of fund transfers.
- Clear fund transfer flow: Project Managers should know how to initiate any type of fund transfer they wish to make, such as many to one or one to many.

Ideation

Exploring how we might encourage users to make various types of fund transfers, such as by prompting users to create another one

Validation/Iteration 1

By adding a search field, automated calculations, and context on $ amounts per line item, users were able to create fund transfers faster and more accurately

Instead of having users calculate how much line items are receiving or transferring, I decided to automate the math process for user convenience. However, vertical addition of values was too confusing for "One-to-Many" fund transfers. It was hard to understand the mathematical relationship. Overall, 4/5 usability rating across 4 Project Managers. *Design based on Procore's design system

Validation/Iteration 2

Simple to maintain context on $ amounts for line items but unclear how to initiate all types of fund transfers

I moved components to a drawer design to increase the user's ability to see more budget line items at a time compared to being constricted to a small modal. Users didn't understand how to initiate the workflow for "one-to-many" or "many-to-one" budget modifications due to confusion about hover states. Table makes users move left to right instead of adding rows based on the type of fund transfer.
One-to-one transfer
Many-to-one transfer
One-to-many transfer

Validation/Iteration 3

Users understood how to use "Add Line Item" action to add another row and move left/right after making these actions more discoverable

4/5 rating on usability across 3 test participants. Though we had some issues with creating flexible fund transfers, the overall paradigm of moving left to right and adding rows was clear to users.

Having the ability to add multiple line items in one sitting was the first step in helping our Project Managers right away; for this reason, we proceeded with an MVP.

MVP

Making fund transfers in bulk as the first critical step in decreasing time inefficiencies while enabling different types of fund transfers

I worked with the engineers to develop a 10-step plan to Iteration III in order to get engineering estimates and assess technical feasibility

Cutting scope

Due to an unforeseen company reorg, our team cut technical scope and only had 2-days to build the majority of our MVP

Though this project was cut due to a company reorg, I kept fighting for our users. We pitched this feature at an 2-day company hackathon. We couldn’t build the intended MVP (upper right) due to time so we cut scope:

- We couldn’t remove or adjust the pop-up box, such as add scrolling
- The pop-up box limited the amount of information we could add
- Our solution was to limit the number of fund transfers per action to 7 since quantitative data showed that most users made around 10 or less within an hour

Results

After launching our MVP, we reduced the time it took to create 10 fund transfer/hr (avg. amount per user) by 39%

At most, we reduced time by 172%. However, a significant portion of users easily overlooked the +Add Line Item, though it’s an app-wide pattern that adds a new row.

Vision Of the Future

Increasing discoverability and flexibility for creating all types of fund transfer

I realized that the ability to add a new budget line item was not discoverable, so I explored the process of creating fund transfers more deliberate by having users first select a type of fund transfer. You can view a demo at 4.74/5 usability rating across 4 test participants (Project Managers)Users quickly understood that they could make different types of fund transfers

Conclusion

Persistence and framing an opportunity are key to fighting for users

Initially, I felt discouraged when our team didn’t prioritize this feature. I learned to leverage quantitative metrics to make a stronger case for change. I realized that it’s more than just persistence; it requires empathy for team members and understanding what other stakeholders want.