Agencies and consultancies / Workflow guide

Agency unbilled work review: what needs an invoice?

Bring tasks, time and invoice evidence into one weekly review. Separate missed billing from covered work and scope changes, then give each exception an owner.

  • Asana
  • Harvest
  • Xero

A time entry marked unbilled can mean several things: a missed charge, work covered by a retainer, or an extra revision nobody authorised. Before the weekly billing review, you need to know which explanation fits each item and what evidence supports it.

An agency unbilled work review brings together Asana delivery tasks, Harvest time and invoice references, and Xero invoice records. Compare them with the agreed scope to produce a short exception queue: what happened, what is still unclear and who needs to decide. Start with one project and compare the result with the review you already do.

Keep the native invoice workflow where it works

Harvest's Xero integration can copy invoices sent from Harvest into Xero. Time entries do not sync independently; they travel as invoice line items. That existing connection may already meet your needs if the task is simply avoiding duplicate invoice entry.

Add an exception review when the unanswered question crosses delivery and commercial scope: an additional landing page, repeated revision rounds or work logged against the wrong project. First check Harvest reports and your existing project review. A clear manual checklist may be sufficient for a small workload.

Start with the agreement and exact project links

Supply the customer-approved scope baseline, its version and effective date. Record included deliverables, revision allowances, exclusions, billing milestones and how changes are authorised. A completed Asana task proves a delivery status, not permission to charge the client.

Map the Asana project ID to the Harvest client and project IDs, then the Xero contact and invoice references. Prefer recorded cross-system identifiers. Similar names can suggest a match for review but should never silently join two projects. Deduplicate Asana tasks by ID because a task can belong to multiple projects.

  • Keep each approved change linked to the relevant deliverable and approval evidence.
  • Record the agreed billing model, rate source and currency before calculating an amount.
  • Put unclear task-to-time links in a mapping queue instead of assigning them by guesswork.

Separate billing gaps from scope and delivery issues

Treat Harvest's billed flag as one piece of evidence. Compare any invoice reference with the corresponding Harvest and Xero records, invoice status, service period and line descriptions. Check whether a draft already includes the work before proposing another invoice. A missing match is a question to investigate.

For time-and-materials work, review eligible hours against approved rates, rounding rules and the billing cutoff. Hold running or unsubmitted time for review rather than including it in chargeable totals. For fixed-fee work, compare agreed milestones with invoices; extra hours alone do not establish an extra charge. For retainers, check included capacity, period, rollover and overage terms.

  • Possible billing gap: approved chargeable work with no matching invoice evidence.
  • Scope decision: additional work without sufficient change approval.
  • Delivery concern: rework or budget overrun within the agreed fee.
  • Covered or deferred: included work, a future milestone or an agreed write-off.

Show what the review could actually see

State the work-date window, timezone, invoice search window and retrieval time. Invoices can precede or follow delivery, so choose a wider invoice window using the project's billing schedule. Revisit late time entries after the cutoff rather than treating one weekly snapshot as final.

Read every required page and record permission failures, missing fields and stopped retrievals. An incomplete Asana task list or Harvest time page cannot support a clean result. Check Xero invoice detail where summaries lack line information. Label the run incomplete and withhold a no-exceptions conclusion until coverage is resolved.

Give the owner a decision pack with evidence

Each row should contain task and time IDs, the supplied scope clause, invoice references, classification, uncertainty, proposed next step, assigned owner and next review date. Keep amounts separated by currency. Delivery managers validate work and scope; finance validates invoice treatment. Customer approval remains necessary where the agreement requires it.

With configured connections and validated matching rules, OrgSDK can provide the local project for executing reusable tested actions and storing evidence and run history. Your external AI client handles the reasoning and conversation. A local review draft still needs human approval; it does not create invoices, change provider records or send customer messages.

Hypothetical example

Hypothetical example: a website project's weekly review

These invented records illustrate classification, not customer results. The approved fixed fee includes two revision rounds; a separate monthly retainer covers routine maintenance.

Illustrative evidence and reviewer decisions, not customer results
EvidenceReview findingDecision owner and next step
Four hours on a third revision round; no approval suppliedPossible scope change, no confirmed chargeDelivery manager checks approval and discusses the request
Six hours on the included homepage; fee invoice existsCovered by fixed fee despite unbilled time flagFinance verifies the milestone and excludes a duplicate charge
Two maintenance hours within the supplied retainer allowanceCovered workAccount owner records the allowance used

The review creates three explainable decisions. It does not convert all twelve hours into an invoice.

Make it measurable

Plan a small pilot

Review one agreed project across two weekly billing cycles, alongside the existing manual review.

  1. Have delivery and finance approve the scope baseline, mappings, date windows and classifications.
  2. Run the review with read-only evidence, inspect every exception and record rejected matches.
  3. Compare against the manual review, resolve disagreements and decide whether to continue, repair the inputs or stop.

What to measure

  • Reviewer minutes per run, including investigation and corrections.
  • Confirmed billing gaps, covered items and false exceptions, with unresolved cases kept separate.
  • Missing pages or approvals and billing gaps found manually but missed by the review.

Common questions

Does unbilled Harvest time mean the client owes more?

No. Check the agreement, billing model and invoice evidence first. Retainer coverage, fixed fees, deferred milestones and write-offs can all explain an unbilled entry.

Why review Xero if Harvest already copies invoices?

Invoice copying does not establish whether extra delivery was approved or included. Review both records when resolving an exception, while retaining the native connection for routine invoice transfer.

Can the review automatically invoice scope changes?

This blueprint prepares evidence and proposed decisions. The owner must approve scope changes and finance must approve invoice decisions through the agency's established process.

Sources and service documentation

Provider documentation supports the service behaviour described here. The proposed workflow and illustrative examples are OrgSDK designs.

View all workflow guides ↗