Job Profit & Recovery
Miel De Rycke avatar
Written by Miel De Rycke
Updated over a week ago

The Job Profit & Recovery report gives you insights into the service level against jobs, clients, account managers and jobs types. It gives you insights into over servicing and profitability.

In this article:

This report only includes completed and archived jobs, because it is simply impossible to measure profitability on an ongoing project. If a job in progress was billed in advance, it would look highly profitable, if it was billed in the end it would look like you're making a loss. By including only completed and archived jobs, we make sure the work in progress doesn't skew the results.

The report has three points of focus:

  • Recovery by job, client, account, job type

  • Gross Profit by job, client, account, job type

  • Contribution by job, client, account, job type

What is recovery?

Recovery can best be described as the return you get on the amount of work delivered. wayahead looks at the invoice total compared to the total sell value of the job. The total sell value is the sum of all time entries (at sell value) plus the sum of all (non declined) expenses and orders on the job (again at sell value).

The sell value of our time entries, represents the theoretical sell value of the project, according to our price book. If my price book says Design is sold at $100/hr and I log 10 hours of it, the value of the job is $1,000. If I invoice the job for $1,000, I will have a 100% recovery. If I sell it for $900, I will have a 90% recovery and if I sell it for $1,100 then I have a 110% recover.

Recovery = total sell value / invoice value

Another way of putting it is that recovery looks at the blood sweat and tears you poured into a job and how much of that was recovered in billing.

Note that there are no cost figures included in the recovery, not for the time entries, not for the expenses. The job cost doesn't have any influence on the recovery what so ever.

Some examples:

In the example below, we spent €5,263 on a job and we billed it out for €7,550.

The recover is 143% because we billed 43% more than the value produced.

In the net example, I have a recovery of 87%. We billed out €4,061 less than the work delivered. We consider this the unrecovered value. This job was basically over serviced (or under charged) by 13%.

It should be clear that we are aiming for a recovery of 100% or more on every job. A job with a recovery less than 100% could be considered over serviced. Although you could equally consider it under sold.

The columns highlighted in yellow are used to calculate the recovery

Gross Profit vs Contribution.

The gross profit is a different way to evaluate your work. wayahead shows you a couple of figures you can also view in Streamtime, such as the gross profit and the profit margin. But it also shows you the gross profit per hour: How much profit have you made per hour worked.

The colours highlighted in yellow are used to calculate the gross profit data

You can also choose to see the contribution instead of the gross profit. Contribution is the job revenue - the cost of third party services.

The numbers explained

  • Total Sell: total sell value of all time entries + sell value of all expenses and orders.

  • Invoiced: sum of all issued invoices on the job

  • Expenses Cost: sum of the combine cost of all expenses and purchase orders

  • Time Cost: sum of the cost of all time entries on the job.

  • Gross Profit: Invoiced - Expense Cost - Time Cost

  • Gross Profit / Hr: Gross Profit / hours worked

  • Profit Margin: Gross Profit / Invoice total

  • Hours Worked: Total time recorded on the job

  • Unrecovered: Total Sell - Invoiced. How much of the job was not recovered in billing? A positive value means you missed out. A negative value means you billed more than the time spent. The percentage is the unrecovered value / total sell value (what % of the job was unrecovered).

  • Recovery: 100% - Unrecovered %. You want to have 100% or more. For example, 95% means you only got paid for 95% of your efforts, so 5% less than what you delivered. 106% means you got paid 106% of your efforts, so 6% more than what you delivered.

With a simple example. We design a book and charge the client $10,000 for the work delivered, here are the details of the job.

Cost Value

Sell Value

Design (time)



Photography (expense)



Printing (order)






  • Invoiced = $10,000

  • Gross Profit = $10,000 - $4,870 - $1,100 - $2,230 = $1,800

  • Profit margin = $1,800 / $10,000 = 18%

  • Contribution = $10,000 - $1,100 - $2,230 = $6,670

  • Unrecovered = $10,920 - $10,000 = $920

  • Unrecovered % = $920 / $10,920 = 8%

  • Recovery = $10,000 / $10,920 = 92%

You can find the job details for any job in the Used Time & Expenses modal in Streamtime.

One swallow doesn't make a summer!

While it is good to see the recovery for individual jobs, the focus of the report is to show the average recovery across multiple jobs for a client, account manager or job type. So we step back and zoom out a little. If my average recovery for a client over the last 25 jobs is 90% it means I have over serviced or under charged the client by 10% on average. We need to have a chat with this customer OR we need to get our act together about how we manage and perform their jobs.

Page Navigation

This report has 4 tables, listed one after the other and then a series of graphs. To help you navigate through the page quicker, you can use the buttons on the side of the page:


You can modify the configuration for this report directly in the reports page using the button at the top right. Note that your changes will only take effect after you refresh the page.


Remember the report only includes completed and archived jobs. But we don't necessarily want to include completed from years ago. So we define a date range, e.g. jobs completed in the current financial year or in the last quarter.

By default, wayahead uses the job completion date field from Streamtime. This date is populated automatically when the last item on a job is completed OR when a job is archived. You can modify the completion date yourself from the job details.

Using a different date field.

Changing the due date on a job wasn't always possible. There was a time when the completion date was locked forever. So wayahead offered the alternative of using the start date or due date for his report. Some companies still use this today, but most can just ignore this.

Account manager labels

Label each of your jobs with an account manager label in Streamtime. Go the to configuration and add a comma separately list of labels used.

Note that – even if you assign a job to multiple account managers – every job is only ever assigned to a single account manager, usually the based on the first label wayahead finds.

Job Type labels

Label each of your jobs with a job type label in Streamtime. Go to the configuration and add a comma separate list of labels used.

Note that – even if you assign a job to multiple job types – every job is only ever assigned to a single job type, usually the based on the first label wayahead finds.

Exclude Jobs

To exclude jobs, simply label them in Streamtime and add a comma separate list of all jobs to be excluded in the configuration.

Excluding jobs from the report.


You may wish to exclude certain jobs from this report. For instance, a company who has only started using Streamtime in the recent months, may have jobs that were billed in the old system, but worked on in Streamtime. Or the other way around. Such jobs would look like they have a very high or very low recovery, because some of the data is missing from Streamtime. As a result they would skew the summaries.

Similarly, we may wish to exclude retainer jobs from this report. With retainers, some of the work may happen in one job while the billing happens on another. But unless both jobs are included in the report, the result will be skewed again. It is best to exclude retainers from the Job Profit & Recovery report all together. There is a separate retainer report that can give us profitability for each retainer.

Excluding jobs temporarily

Sometimes you may have a single job that skews the results. Let's say we did 20 jobs for a client. 19 of them went pretty well, but we kinda screwed one of them up completely. Looking at the average for this client, the total will be skewed because of this one bad job.

So you may want to see the result with or without that one job to see what difference it makes. To do so, just untick that job in the table at the top of the page. Every other table and the graphs will be adjusted accordingly, ignoring the result for this individual job. Toggle any one job on or off to see the totals with or without that job included.

Excluding jobs permanently

Of course, we can't be manually excluding every exceptional jobs every single time we run the report. To resolve this, we simply label the jobs to be excluded in Streamtime and then add those labels in the configuration, wayahead never fetches those jobs from Streamtime to begin with. This doesn't only make the summaries more reliable, it also makes fetching the data faster.

Did this answer your question?