> For the complete documentation index, see [llms.txt](https://help.agencydesk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.agencydesk.io/jobs/recon.md).

# Recon

Review a Job’s tracked time, resource costs, supplier expense, meetings and estimated or billed margin. Includes cost visibility, currency controls, PDF printing and Excel export.

**Recon** brings a Job’s tracked time, supplier expense, meetings and billing together so you can review its delivery costs and margin. On a Job still in progress, some figures use estimated value against costs so far. Read the summary’s billing label before treating a margin as a finished result.

Most agencies assemble that review in a spreadsheet after the work is finished. Because Agencydesk was built exclusively for agencies, Recon sits inside the Job and uses its recorded hours, stored resource rates, Cost lines and billing. It helps you investigate where a campaign or retainer’s margin went while the work is still visible.

## Opening Recon

{% stepper %}
{% step %}

### Open the Job

Open the campaign, retainer or project you want to review.
{% endstep %}

{% step %}

### Choose Recon

Select the Recon tab and wait for its figures to load. It is available to Managers, Finance, Admins, Super Users and the Account Owner.
{% endstep %}

{% step %}

### Read the figures

Compare the headline cards, User Time Recon and reconciliation tables. Hover the small info icons beside explained figures, then check whether the summary says Total Estimated or Total Billed.
{% endstep %}
{% endstepper %}

## What Recon answers

### Did we actually make money on this Job?

Recon brings recorded hours, supplier expense, meeting cost and billing into one review. Use it to investigate overruns or a thin margin, then check the estimates, stored rates and contributing records before deciding what the Job earned.

### What is our true nett on this Job?

Gross Margin is the summary’s income basis less resource cost and supplier expense. Nett Margin also deducts meeting cost. When the summary uses Total Estimated, both margins compare that estimate with costs to date; they are not a final profit forecast or cash received.

### Is a high-turnover client building the agency or quietly hurting it?

Revenue and profit are not the same thing, and a client can be your biggest biller while sitting near the bottom on margin. Running [Multi-Job Recon](/admin/reports/multi-job-recon.md) across that client's Jobs shows whether the volume is carrying the agency or absorbing it.

### Who is carrying this Job, and who is eating the margin?

Time Recon shows every assigned person's tracked time against their estimate and what share of the Job they hold. A senior sitting inside their estimate and a junior at triple theirs on the same deliverable is visible immediately, whether the cause is a skills gap, a briefing problem, or work that was underscoped from the start.

### What did the team's collaboration on this Job actually look like?

A Job costed for two people that ended up touching nine is a different Job. Recon shows how the work distributed, which is often the first sign that scope moved without anyone raising it.

### How much are the resources on this Job costing?

Task Reconciliation prices tracked time at the resource rates stored on Task assignments, separately from the charge-out rate used to bill the client. The Account Owner / Super User can inspect these staff-cost figures.

### How much did procurement contribute to the profit?

Cost Reconciliation separates what you paid suppliers from what you resold it for. On production-heavy work, procurement margin can quietly outperform studio margin, and knowing which is which changes how you quote the next one.

### What did our meetings on this Job cost?

Meetings are the easiest cost in an agency to ignore. Agencies routinely put four or five people in a client call to show presence, and nobody prices it. Meetings Reconciliation totals the attendee hours and costs them at each attendee's rate, so the price tag on that presence is visible.

{% hint style="info" %}
**Great for** the conversation before the next scope. A retainer that looks healthy on paper but shows R18,000 of meeting cost a month is not a pricing problem, it is a meeting problem, and it is fixable once someone can see it.
{% endhint %}

## The headline cards

Hours Variance and Billing Efficiency sit across the top of Recon. The Account Owner / Super User also receives the staff-cost **Time Variance Value** card. Managers, Finance and Admin do not see that staff-cost card.

### Tracked vs Estimated

Tracked hours against estimated hours for the Job, counting billable and non-billable Task time together. The card shows how much of the estimate has been used, rather than labelling all unworked hours as a saving.

On an open Job, the remaining hours are labelled left. On a closed or archived Job they are labelled under estimate. An overrun reads over estimate and turns pink; figures within the estimate remain green.

{% hint style="info" %}
Example: a Job estimated at 50:00 with 37:30 tracked shows 75% used and 12:30 left while it is open. The unused time may still be needed to finish the work. On a closed Job, the same difference reads 12:30 under estimate.
{% endhint %}

### Time Variance Value

The labour-cost value of estimated Task hours not yet worked, calculated from each person’s stored resource rate. Tasks with nobody assigned use their Department’s average rate.

One person’s overrun can cancel out another’s unused estimate. A positive figure is unused estimated labour cost; a negative figure is labour cost over the estimate. The info icon explains the calculation.

This is staff cost, rather than charge-out value or an amount still available to invoice. Unworked estimated hours also do not prove free capacity elsewhere.

### Billing Efficiency

Billed Task hours compared with all tracked Task hours, including non-billable tracked time. It is an hours ratio, rather than a margin or payment measure.

{% hint style="info" %}
Billing Efficiency % = Billed Task hours ÷ All tracked Task hours × 100

For example, 37:00 billed against 33:12 tracked gives 111.4%. Above 100% means billed hours exceed tracked hours; below 100% means tracked hours exceed billed hours. Non-billable time contributes to the tracked denominator.
{% endhint %}

If the card says No time tracked yet, inspect the time records before reading the percentage. Missing resource rates are explained in Task Reconciliation; they do not establish whether hours have been billed.

## User Time Recon

User Time Recon lists the people included on this Job, with their Department beneath their name. This is the Job’s people-and-hours view; the separate [User Time Recon report](/admin/reports/user-time-recon.md) compares people across months.

Each row shows a progress bar, their **tracked time against their allocated time**, a **Progress** percentage, and **% of Job**, which is the share of the Job's total estimated hours that person carries.

{% hint style="info" %}
**Great for** spotting where a Job is really being delivered. Two people holding 33% each and two holding 2% each tells you this is a two-person Job with two people lightly attached, which may or may not be what was sold.
{% endhint %}

### Labour cost

For the Account Owner / Super User, the **Labour cost** row at the bottom of User Time Recon compares the cost of time committed so far with the projected cost of the estimated time. It covers the whole Job, including billable and non-billable Task time. Each person can also have a small cost line beneath their hours when their cost data is available.

The amounts read so far / estimated, with a Progress percentage. The row turns pink when labour cost so far exceeds its estimate. Unassigned estimated work can still contribute through Department average rates; hover the info icon to read what each amount means.

{% hint style="info" %}
**Great for** a studio budget review. If a campaign has used R18,000 of a R24,000 labour estimate, check the work still to be delivered before treating the R6,000 difference as profit.
{% endhint %}

### Read a person’s labour cost

With cost figures shown, the small amount beneath a person’s hours reads **so far / estimated**. It turns pink when the cost so far exceeds the estimate. **No rate set** means hours are present without a cost rate. The figures use rates stored on the Task assignments, which do not automatically change when a profile rate is edited.

The people’s estimated costs may not add to the Job-wide estimate: unassigned Task hours can use a Department average rate. Check the underlying assignments and estimates before treating the amount as a final budget. The largest person’s bar fills the available width and other bars scale proportionally; the labelled percentage remains the person’s real share of the Job’s estimated hours.

### Hide or show cost figures

{% stepper %}
{% step %}

### Find the eye icon

The Account Owner / Super User has an eye icon at the top right of the User Time Recon card.
{% endstep %}

{% step %}

### Hide costs before sharing

Choose Hide cost figures to conceal staff-cost amounts and the related margins and values. The Labour cost row, Margin Allocation and Refresh user rates action disappear; other affected values show -.-.
{% endstep %}

{% step %}

### Check the output

Print and Excel follow this choice. Hidden staff-cost columns or sections are left out of Excel, and other hidden values remain -.-.
{% endstep %}

{% step %}

### Show costs again

Choose Show cost figures when you want the full view. This preference is remembered in this browser for your account and user; a different browser or unavailable storage can return to the default, with costs shown.
{% endstep %}
{% endstepper %}

The eye is a display preference for screen sharing. It does not change your role or another person’s access. Check the visible figures before sharing a screen, PDF or spreadsheet.

Staff-cost totals, Gross / Nett Margin and the meeting Value are not shown to Managers, Finance or Admin. Their billing, supplier Cost and hour views remain available. For the Account Owner / Super User, the eye is shared with **Multi-Job Recon** in this browser, and print and Excel follow its choice.

## Task Reconciliation

{% hint style="warning" %}
The Task Reconciliation table is available to people who can open this Job’s Recon. Resource Cost and Margin show -.- unless you are the [Account Owner / Super User](/company-settings/users.md) and cost figures are shown.
{% endhint %}

The studio side of the Job is grouped into Billable and Non-Billable rows:

| Column           | What it shows                                                                                    |
| ---------------- | ------------------------------------------------------------------------------------------------ |
| Actual/Estimated | Tracked hours against estimated Task hours                                                       |
| Resource Cost    | Tracked time costed at the resource rates stored on Task assignments                             |
| Margin           | Billable estimated Task value less resource cost; for non-billable work, minus its resource cost |
| Total Estimated  | Estimated Task value; non-billable internal value is shown in grey                               |
| Billed Amount    | Task billing supplied to Recon, or a Non-Billable tag                                            |

Total Estimated less Billed Amount is an estimated billing balance. It does not prove that all the remaining work has been delivered. Billable Task Margin compares estimated value with resource cost so far; more time tracked can reduce it. Non-billable work earns no client charge, so its margin is the negative of its resource cost.

## Cost Reconciliation

Cost Reconciliation shows the supplier Expense, the Markup added, the Total Estimated resell value and the Billed Amount. Read Expense as the recorded Cost-line amount, rather than confirmation that a supplier has been paid.

This is where [Costs](/jobs/costs.md) earn their place as a revenue line rather than an administrative one. Print, promo, outsourced production, and licensing all report their own contribution to the Job's profit, separately from the hours.

## Meetings Reconciliation

Meetings Reconciliation separates Total Hrs (meeting duration) and Combined Hours (attendee hours). The **Value (Rate × Hrs)** column uses attendee resource rates and appears only for the Account Owner / Super User with cost figures shown. Managers, Finance and Admin do not receive that Value column.

### How meeting cost is calculated

Meeting cost uses attendee hours rather than clock duration. Every included attendee’s time is priced at their resource rate:

{% hint style="info" %}
Three people attend one one-hour meeting. Total Hrs is 1:00; Combined Hours is 3:00. Each attendee’s hour is costed at their resource rate, and those amounts are summed. A weekly one-hour status call with five attendees uses twenty attendee hours over four weeks.
{% endhint %}

{% hint style="info" %}
**Great for** a habit worth breaking. Agencies invite extra people to client meetings to show commitment, and the cost lands nowhere. Pricing it per attendee makes the trade-off explicit: two people who need to be there, or five who make it look good.
{% endhint %}

## Job Recon

The **Job Recon** panel is the summary, covering **Tasks + Costs + Meetings** together:

* Costs to Date / Total Costs & Expenses — tracked resource cost plus the Job’s supplier expense, including billable and non-billable work.
* Total Estimated / Total Billed — the summary’s income basis. Read the displayed label before comparing margins.
* Gross Margin — that income basis less the displayed costs, as an amount and percentage.
* Nett Margin — Gross Margin less meeting cost.

If estimated billable Task and Cost value is greater than their billed value, the panel shows Total Estimated with an Estimated tag and Costs to Date. When billed value reaches or exceeds the estimate, it uses Total Billed and Total Costs & Expenses. Job status alone does not choose this basis.

{% hint style="info" %}
An Estimated margin uses estimated income less costs recorded so far. It does not include all the time still needed to finish the Job, so it can fall as more time is tracked. Billed means invoiced rather than paid. The same estimated-versus-billed distinction also applies in [Multi-Job Recon](/admin/reports/multi-job-recon.md).
{% endhint %}

### Choose the currency

{% stepper %}
{% step %}

### Find the currency controls

When the Job’s currency differs from the account’s home currency, the controls sit beneath the Job Recon summary title. Same-currency Jobs have no switch.
{% endstep %}

{% step %}

### Choose the view

Use the switch between the home and Job currency codes. The default view uses the Job’s currency, and the displayed amounts change together.
{% endstep %}

{% step %}

### Check or adjust the rate

Read the conversion rate, for example R18.00 = $1. Choose the pencil icon to edit it, enter a number greater than zero, then choose the tick or press Enter. The cross cancels the edit.
{% endstep %}

{% step %}

### Check before exporting

Confirm the currency code and conversion rate before printing or exporting. Both outputs follow the displayed currency. A rate edit changes this view; it does not save a new rate on Invoices, Costs or the account.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The view uses the conversion rate supplied with the Job. If no usable rate is supplied, it can fall back to 1:1. Verify the rate before relying on a foreign-currency result; a $ symbol alone does not identify which dollar currency is shown.
{% endhint %}

## Margin Allocation

For the Account Owner / Super User with cost figures shown, the Margin Allocation doughnut splits billable estimated value into these four parts:

* Task Costs — the resource cost of billable Task time so far.
* Task Margin — billable estimated Task value less that resource cost.
* Cost Expense — billable supplier expense.
* Cost Markup — the markup on billable Costs.

The slices use this Job’s figures. A negative component draws as zero so it can be shown in a doughnut, but its tooltip and Excel row retain the actual negative amount. Read the centre Nett Margin separately: the slices do not divide nett profit and do not include non-billable work or meetings.

{% hint style="info" %}
**Great for** understanding what kind of agency a Job made you. Two Jobs can return identical nett margin, one built almost entirely on studio hours and the other on marked-up production. They demand different teams, carry different risk, and should be quoted differently next time.
{% endhint %}

## Resource Cost: the number everything depends on

Resource Cost uses the hourly resource rates stored on Task assignments. Current user rates are maintained under [Users](/company-settings/users.md) as Cost to Company Rate and Cost to Company Overtime Rate. These are internal costs, separately from the [Rate Card](/company-settings/rate-card.md) charge-out rates used to bill the client.

A missing or incorrect resource rate can make staff cost too low and margin too high. Updating a user’s profile does not automatically reprice the whole Job history. Use Refresh user rates on a particular Job only when you intend to replace the rates stored on its Task assignments.

### Refresh user rates

{% stepper %}
{% step %}

### Check the intended rates

Review the current user cost rates and the Job you intend to recalculate. Refreshing can change past staff costs and margins on this Job.
{% endstep %}

{% step %}

### Open the confirmation

With cost figures shown, the Account Owner / Super User chooses Refresh user rates in the Task Reconciliation header.
{% endstep %}

{% step %}

### Confirm or cancel

Choose Refresh rates to replace the rates stored on this Job’s Task assignments with each person’s current rate. Choose Cancel to leave them unchanged.
{% endstep %}

{% step %}

### Check the result

Wait for the refresh to finish and the report to reload. A success message confirms the refresh; an error message means you should not assume it completed successfully.
{% endstep %}
{% endstepper %}

### Four ways agencies set it

| Method                                 | How it is calculated                                                                     | What it misses                                                                                     |
| -------------------------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **Salary only**                        | Salary converted to an hourly rate                                                       | Every overhead the agency carries. Jobs look far healthier than they are                           |
| **Flat average, whole team**           | Total agency expenses divided equally across all employees                               | Puts overhead recovery on people who cannot bill, and prices a director the same as a junior       |
| **Flat average, timesheet users only** | Total expenses divided across the people who track time                                  | Better, since recovery sits with the people who can bill it, but still prices everyone identically |
| **Per person, per department**         | Salary, plus a share of departmental overheads, plus a share of general agency overheads | Nothing material. This is the model worth building                                                 |

### The recommended model

Build each person's rate from three parts, and divide the overheads only across the people who can actually put hours on an [Invoice](/jobs/financial/invoices.md):

```
Resource Cost per hour =
  ( Salary
  + Departmental overhead share
  + General agency overhead share )
  ÷ ( Daily hour quota × working days per month )
```

* **Departmental overhead share** — that department's own tools, software, and AI credits, divided by the number of people in that department who track time.
* **General agency overhead share** — rent, insurance, general software, and the salaries of everyone who does not track time, divided by every timesheet user in the agency.
* **Daily hour quota** — the hours a person is realistically expected to deliver in a day, not the hours they are at work. Six is a common figure. Dividing by eight assumes nobody ever attends a meeting or answers an email.

### Worked example

An agency with eight people who track time, three in Design and five in Copy.

**General agency overheads**

| Item                                         | Monthly          |
| -------------------------------------------- | ---------------- |
| Expenses (rent, insurance, general software) | R145,000         |
| Salaries of non-timesheet staff              | R130,000         |
| **Total**                                    | **R275,000**     |
| Divided across 8 timesheet users             | **R34,375 each** |

**Departmental overheads**

| Department | Tools             | Monthly | Timesheet users | Share each |
| ---------- | ----------------- | ------- | --------------- | ---------- |
| Design     | Adobe × 3, Artlis | R4,440  | 3               | R1,480     |
| Copy       | Notion, ChatGPT   | R1,190  | 5               | R238       |

**Resulting rates**, at a 6-hour daily quota across 21 working days, so 126 hours a month:

| Name   | Dept   | Salary  | Dept share | Agency share | Total cost | Rate/Hour   |
| ------ | ------ | ------- | ---------- | ------------ | ---------- | ----------- |
| Jim    | Design | R28,000 | R1,480     | R34,375      | R63,855    | **R506.79** |
| Betty  | Design | R30,000 | R1,480     | R34,375      | R65,855    | **R522.66** |
| David  | Design | R26,000 | R1,480     | R34,375      | R61,855    | **R490.91** |
| Sally  | Copy   | R45,000 | R238       | R34,375      | R79,613    | **R631.85** |
| Graham | Copy   | R28,000 | R238       | R34,375      | R62,613    | **R496.93** |
| Russel | Copy   | R26,000 | R238       | R34,375      | R60,613    | **R481.06** |

Enter the calculated hourly cost in **Cost to Company Rate** under [Users](/company-settings/users.md#cost-to-company-rates), and review **Cost to Company Overtime Rate** separately where it applies. Clearing either field saves 0.00. Existing Task assignment rates still need a deliberate **Refresh user rates** if you want that Job recalculated.

### Why this model is worth the effort

**Overhead recovery sits with the people who can recover it.** Only users who put hours on an Invoice carry the agency's overheads. Management, admin, finance, and new business are funded by the billable team rather than diluted across a headcount that cannot bill.

**Seniority shows up.** A senior at R632 an hour and a junior at R481 are genuinely different propositions on the same Task. Recon prices the difference, so putting your most expensive person on routine work becomes visible instead of invisible.

**Departments reveal their real margin.** A department carrying heavy software, licensing, or AI credits costs more per hour to run. When that lands in the rate, Recon shows which departments are structurally thinner and therefore need higher [markup](/company-settings/rate-card/cost-types.md#markup-methods) or higher rates rather than more hours.

{% hint style="info" %}
**Great for** the annual pricing review. Rebuild cost rates against current overheads, then decide which Jobs should retain their historical rates and which should be recalculated. A rate refresh changes the comparison, so keep that decision separate from simply opening Recon.
{% endhint %}

## Print or save Recon as a PDF

{% stepper %}
{% step %}

### Prepare the view

Wait for the Job’s Recon to finish loading. Check the currency, the Estimated / Billed basis and, if available, the eye setting.
{% endstep %}

{% step %}

### Choose Print

Choose the printer icon at the top right of the Recon tab.
{% endstep %}

{% step %}

### Check the preview

The internal copy includes the Job name and number, Client, agency name, printed date and currency. It fits the report to one page sized for its content; it is not necessarily A4. Action buttons and info icons are left off.
{% endstep %}

{% step %}

### Print or save

Choose your printer or Save as PDF in the browser’s print dialog. Check the visible costs and margins before sharing the file, then save. Cancel closes the dialog without saving a PDF.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Great for** an internal campaign close-out. Save the reviewed Recon with the Job’s records so the next estimate can be compared with the hours, procurement and meeting cost that actually contributed.
{% endhint %}

## Export Recon to Excel

{% stepper %}
{% step %}

### Prepare the figures

Check that the correct Job has loaded, then choose the currency and whether cost figures should be shown.
{% endstep %}

{% step %}

### Choose Export

Choose the download icon at the top right, labelled Export recon to Excel. The file name includes the Job number and name, ending in Recon.xlsx.
{% endstep %}

{% step %}

### Read the workbook

The .xlsx contains the available Insights, User Time Recon, Labour Cost, Task, Cost and Meetings Reconciliation, Job Recon summary and Margin Allocation sections. Staff-cost columns and sections follow your access and eye setting.
{% endstep %}

{% step %}

### Compare like for like

Job Recon exports numeric money values and decimal hours. For example, 1.50 hours means one hour and thirty minutes. Compare the file with the same currency and estimated-versus-billed basis on screen; hidden values do not become available through export.
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.agencydesk.io/jobs/recon.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
