Harvest provides a time tracking solution allowing customers to invoice their clients, manage their teams, and facilitate incoming payments. Over the years, customers have frequently requested help with outgoing payments, payroll reporting, and managing contractors specifically. However, it’s new for the team to explore a contractor management solution or how outgoing payments would work in Harvest.
There’s a distinct trend towards more remote work and companies who utilize a distributed workforce, and we know that in Harvest 50% of our team-sized customers have at least one contractor on the team. We feel that we’re in a good position to provide valuable contractor management solutions for this growing market, and with this project I set out to understand the problem space fully and identify the customer pain points that we could try to solve.
Over the course of four weeks, I interviewed 12 Harvest customers and one non-Harvest customer to understand their process for reviewing time and paying contractors.
Problem to solve and research insights
The user journey diagram above shows the responsibilities of different user types along the timeline of reviewing time and paying contractors. Also included are questions asked in the process of completing their tasks.
Problem to solve: Harvest customers struggle with the manual steps required to review their contractor’s time and create payments, which is often complicated further with the additional step of matching contractor invoices.
From a contractor’s perspective, they want to receive regular payments for their time tracked. Finance managers want to be able to easily pay contractors for their time tracked. This is not a simple process while using Harvest, in fact multiple steps make the workflow tedious and time-consuming.
Most Harvest customers receive external invoices from their contractors in order to initiate payment. Even though the contractors have tracked time in Harvest, there isn’t currently a clear area for customers to find their contractors hours over a given timeframe and calculate the amount due, so the process of reviewing time or matching invoices becomes tedious.
Key payment information varies by company but always requires a view of just that contractor’s hours within a given timeframe, and the total amount due. For some companies it’s required to see which hours have been approved, so some indication of approved hours will be necessary for our contractor management solution.
Most often, finance managers at the company are running a detailed time report per individual (rather than the whole team) then exporting to CSV in order to calculate the total amounts due. This process happens outside of Harvest in other payroll or accounting software. One thing to keep in mind is that accountant types will want an exported spreadsheet regardless of the in-app view, so allowing for a contractor report export would be a needed feature as well.
A data model diagram helped me to visualize functionality and redundancies in Harvest reports separate from the current UI. I included potential solutions for contractor management in the data model that would help Harvest customers get the information they need when they need it.
Reasons why the current in-app reports views in Harvest don’t give customers the info they need for contractor payments:
1. Projects does provide costs but only provides reporting for one project. If contractors are on multiple projects, or have any overtime hours this area isn’t useful for contractor payments.
2. Team doesn’t allow a custom timeframe to specify pay period, and doesn’t provide costs.
3. Reports doesn’t include employee’s costs.
4. The detailed time report (and export) doesn’t provide hourly totals. It only provides individual time entries so manual work is required in order to get hourly totals and cost per employee.
Initial design explorations
My initial ideas for a contractor management solution revolved around customization of the exported detailed time report and automation of payment reporting using customer pay period. Additionally, for the companies that do use timesheet approvals we could aim to simplify the payment workflow by using the timesheet approval as the gateway to payment. For example, we’d send an email notification of how much is due for contractor payments, based on approved hours within their set pay period.
Instead of going in this direction, which would require the creation of a new data point in Harvest, we decided to focus our efforts on a solution that utilizes existing data. The sketches above are explorations around providing an in-app checkpoint for paying contractors that could reduce the need for the detailed time report export.
In this first phase of the project we’re focusing on creating an in-app checkpoint for teams, then the next phase will involve support for payout and payroll integrations to allow teams to complete the full payment workflow within Harvest. Further in the future, we’d like to create more contractor-specific functionality to allow for two-way visibility into amount due and payment status.
Harvest’s design and development cycles are 6 weeks, so one of the constraints was establishing what could be designed and built within that timeframe.
1. Individual cost reporting
From the research there’s more evidence of our customers pulling individual reporting for each team member rather than a full team cost report. This solution would provide cost info for one person at a time from the Team or Reports tables.
In another project at Harvest, we're exploring an Actions dropdown in reports tables. From there, we could offer a "Cost Report" for that individual. This would open up a card overlay that offers key payment information and in the future be connected with payment integrations.
The main tradeoff with this solution is that it’s not easily discoverable. Our customers don’t regularly use the Team section of Harvest, and especially not to find financial information.
2. Dedicated Contractor Report
This solution provides a dedicated area of Harvest where customers can go to find total time and payment information for only their contractors. This is an opportunity to think of a future state where all reporting on your team can be accessed in one place.
One tradeoff with creating a dedicated report just for contractors is that there are various different types of reports in Harvest and it’s already unclear as to where customers should go to get the information they need. Are we just adding another view of Harvest, adding to the fragmentation and making reporting even more confusing for customers?
3. Internal cost reporting
With a contractor management solution we’re using the data in Harvest to provide total amounts due for contractors. Cost reporting could also relate to the company overall, or to combinations of projects, people or tasks. How do we decide which of this information to provide for this particular use case, and which to leave out?
Harvest doesn’t currently have any way for customers to understand their internal costs at a higher level than employees and projects. There’s the chance that if we provide any type of cost report, customers will expect to be able to use it for all of their cost reporting purposes.
The issue with exploring a cost reporting solution is that customers use Harvest reporting in a multitude of different ways, so further research would be required to be able to offer the most useful solution for the greatest number of people. For example, internal employees often have a different cost rate than contractors that includes layers of internal costs specific to the company.
4. Adapting existing Harvest reports
Given the six-week timeframe for the project I also explored a solution that would tweak the existing reports in Harvest to add another data point for team member costs.
This updated view provides an easy reference of cost amounts per team member at the row level in Harvest Reports in the Team tab, and the total cost summary view at the table level in the Detailed Time Report. Also, this adds the ability to filter by employee type and by approved hours.
The tradeoff with this solution is that it’s less discoverable as a new feature specifically for the contractor use case. There is already a lot of data provided in the Reports area that one more column for costs could be easily missed. Also, I’d hesitate to replace any existing data with costs without fully understanding how much it’s needed by customers.
Solution - A dedicated contractor report
For the final solution to explore for this project, we decided the best way to achieve our goals would be with the dedicated contractor report (#2 above) in the Reports section of Harvest.
This solution will solve for all of the top use cases I discovered in research. For the finance manager/accountant on the team, they can answer the following questions: I want to know how many hours a contractor has worked on a project within a certain timeframe, how many hours have been approved, and how much the contractor needs to be paid (total costs).
Why a dedicated contractor report?
We feel confident that there will be a strong enough use case to provide a report with a dedicated view of only contractors for customers. In addition to the business case of providing a clearer way to explain this new functionality, it’s easier to discover for Harvest customers and it’ll give us more flexibility to implement future enhancements like payments in the future.
Providing this information for customers in-app will give us data to learn from in terms of whether this simplifies their workflow by eliminating or reducing the need for the detailed time report export.
Who to present the report to?
The report will be available to all Harvest customers, whether they have contractors or not. If a customer has contractors in their account, they'll be listed here. If not, they'll see an empty state. The thinking here is that we're aiming to attract new teams with more contractors to Harvest, and this is a nice way to educate existing customers about this new feature.
Since more than half of our customers will see the empty state in their account, I spent some time on working with our illustrator, Kim Ku, on a beautiful and engaging empty state that could educate people about the new feature. We wanted to tell a story about how customers can begin to manage their contractors in Harvest, and to highlight that there's an entirely new function (outgoing payments) they can begin to use Harvest for.
Next, in order to begin designing the report layout I wanted to learn how many items will most customers see in the report if they do in fact have contractors in their account. In an initial data query we learned that we have a total of 9,372 paid active accounts with contractors. The number of contractors varies for each account in the following ways:
- 9.6% or 902 teams (active paid) have 10 or more contractors
- 76.38% or 7, 158 teams (active paid) have 5 or less contractors
- 48.27% or 4,524 teams (active paid) have 1 or 2 contractors
This means that almost half of these teams will see the report with only one or two contractors in their account.
Design Explorations - Contractor Report
With the contractor report we’re presenting a new view of existing data in Harvest, and presenting it in such a way to offer a solution for the specific use case of managing contractors. The view will be limited to only the most essential information that was determined from research - the contractors total hours and amount due within a given timeframe.
Almost half of our customers will view this report with only one or two contractors, and if we go with a table that would mean only one or two rows. Considering that the main purpose of a table is to allow for the easy reference of multiple items and data points, I began to explore cards as an alternative to tables. Cards can be more versatile than tables in terms of showing more information on each item, and can feel more flexible when you don't need to save space.
For example, in the card layouts above I played around with adding a payment button (a future goal for the project) but the card could also include detail text on projects, tasks or clients they're working on, as well as other information that would be useful for customers to see about their contractors at a quick glance. Also, the card layout could lend itself well to grouping by project, client or role.
I moved forward with the table layout for the following reasons:
1. Given our 6-week timeframe and the scheduling constraints of the team, we won’t have time to explore alternatives to the table as the table provides the most simplicity in development. Also, exploring alternatives would also require a larger design discussion that would take time.
2. We’re making a bet on this use case as something that will be valuable for teams with contractors. Following that line of thinking, we may be building something that teams with more contractors will want to start using Harvest for. We can start with a table view and continue to improve upon this view over time as we learn how customers are using it.
3. Considering that our admin users will most likely be comfortable in excel and data grids in general, and especially the finance types making contractor payments, we can confidently present the data in the easily scalable format of the table.
In the future and depending on what we learn from this first solution it might be worthwhile to explore alternatives to a table such as the card layouts above or the ability to toggle between the two.
Rollout and Next Steps
The contractor report shipped to all Harvest customers on May 1st, 2019. I had established a success metric that over time, 20% of teams with contractors access the report on a monthly basis. This would mean that a decent percentage of teams are finding the report useful to know how much to pay their contractors during each pay period.
To introduce the new feature, I wrote a blog post and turned on an in-app announcement. Within the first week, we saw 40% of teams with contractors visit the report but it’ll be interesting to see how this levels out over time.
To capture some qualitative feedback for the rollout of the report, I included a two question survey for one week. Our goal was to make it easier for Harvest customers to review time and know how much to pay their contractors. Fortunately, 90% of survey respondents said that the reports helps them with (either or both) reviewing their contractors time and knowing how much to pay them.
In terms of next steps, the biggest improvements we could make the report more useful for customers are to include hourly and cost totals, breakdowns by projects and tasks, and support direct pay to contractors from the report.