Blog · Board and management reporting · Accounting
Explain accounting practice revenue changes by client, engagement and service. Build a fee-revenue bridge that separates new work, lost work, service volume and realized fees.
Accounting firm revenue analysis explains a practice's fee changes through new engagements, lost work, service volume and realized fees. Start with comparable billing exports, reconcile them to the revenue basis you intend to report, and match each client-service engagement across periods. A larger total can conceal a shrinking recurring book or the loss of an important engagement.
Export invoice and credit lines with client ID, engagement ID, service code, service period, posting period, work pattern, units and net fee revenue. Add the general ledger's revenue adjustments when the billing export does not represent earned revenue. Keep sales tax and amounts collected on behalf of others outside the fee comparison.
Billing, earning and collecting are separate events. For tax accounting, IRS Publication 538 distinguishes cash and accrual income timing; that distinction is a useful reminder to state your report's basis, although it does not replace your practice's financial reporting policy. Do not call a collection movement a revenue movement.
Use stable client and engagement IDs rather than names. Preserve service codes when a client buys both bookkeeping and tax work. The broader customer revenue analysis addresses the client rollup; the engagement detail here identifies what actually changed inside that relationship.
Compare the same quarter in consecutive years when tax filing work is seasonal. Investigate engagements that move between periods before calling them wins or losses. Mark recurring work according to its agreement, not simply because similar invoices appeared twice.
The following fictional US practice compares the third quarters of 2025 and 2026. Fees are net of credits and already reconciled to recognized revenue. A bookkeeping or payroll unit is a service month; a tax unit is a return; an audit or advisory unit is an engagement. Compare units only within the same service.
| Engagement | Work pattern | Prior units | Prior fee per unit (USD) | Current units | Current fee per unit (USD) | Prior revenue (USD) | Current revenue (USD) |
|---|---|---|---|---|---|---|---|
| A: bookkeeping | Recurring | 3 | 2,000 | 3 | 2,200 | 6,000 | 6,600 |
| B: tax returns | Project | 4 | 1,500 | 5 | 1,600 | 6,000 | 8,000 |
| C: audit | Project | 1 | 18,000 | 0 | 0 | 18,000 | 0 |
| D: advisory | Project | 0 | 0 | 1 | 24,000 | 0 | 24,000 |
| E: payroll | Recurring | 3 | 1,000 | 3 | 1,000 | 3,000 | 3,000 |
| Total | 33,000 | 41,600 |
Zero units mean the engagement was confirmed absent in that period; they do not represent missing data. Revenue increased by $8,600, or 26.1%, rounded to one decimal place: 41600/33000-1.
For a workbook table named Billing, aggregate the prior amount into column G using the engagement key in A2:
=SUMIFS(Billing[NetRevenue],Billing[EngagementKey],$A2,Billing[Period],"2025-Q3")
Use the same formula with "2026-Q3" in column H. Microsoft documents SUMIFS as summing rows that meet multiple criteria. Include entity and currency criteria when the export covers more than one reporting group.
Put the status in I2, using the table's columns G and H:
=IF(AND(G2=0,H2=0),"Inactive",IF(G2=0,"New",IF(H2=0,"Lost","Retained")))
This shortcut assumes nonnegative engagement revenue and no credit-only periods. For those exceptions, use confirmed engagement activity instead of the revenue sign. Client C's lost audit engagement is not automatically a lost client; other work may continue elsewhere in the practice.
For retained engagements only, calculate volume in J2 and realized fee effect in K2:
=IF(I2="Retained",(E2-C2)*D2,0)
=IF(I2="Retained",E2*(F2-D2),0)
The order matters: volume uses the prior fee; fees use current units. Their interaction is included in the fee effect. This is one consistent attribution convention, rather than the only possible split.
| Movement | Calculation | Revenue change (USD) |
|---|---|---|
| New advisory engagement | Current revenue for D | 24,000 |
| Lost audit engagement | Negative prior revenue for C | -18,000 |
| Retained tax volume | (5 - 4) × 1,500 | 1,500 |
| Retained bookkeeping fee | 3 × (2,200 - 2,000) | 600 |
| Retained tax fee | 5 × (1,600 - 1,500) | 500 |
| Total movement | 24,000 - 18,000 + 1,500 + 600 + 500 | 8,600 |
The proof is exact: $33,000 plus $8,600 equals $41,600. The flux analysis workflow provides the wider ledger reconciliation; this bridge supplies the engagement explanation.
Recurring revenue was $9,000 and is now $9,600, a $600 increase. Project revenue was $24,000 and is now $32,000, an $8,000 increase. Both movements come directly from the work-pattern groups in the engagement table, and together they equal $8,600.
Treat these as a different view of the same movement. Adding another $8,000 project-mix effect to the engagement bridge would count the same revenue again. The partner responsible for recurring services should review renewals; the project leader should confirm whether the advisory win can repeat.
A realized unit fee is net revenue divided by comparable delivered units. It reflects scope and concessions as well as pricing. For whether fees are appropriate for a client's size, use fee per client against the norm. Revenue growth alone also says nothing about delivery economics; that belongs in accounting firm cost analysis.
Covirage is not affiliated with Microsoft.
Bring a billing export with client, engagement, service and period fields, plus the revenue adjustments needed for reconciliation. Covirage maps the columns; its tools compute and check the comparisons, and the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for tax and accounting firms for the practice context.
Use recognized revenue for a financial revenue bridge and billed fees for a billing performance review. Label the basis clearly. Reconcile unbilled work, deferred amounts and other accounting adjustments before treating an invoice export as recognized revenue.
No. An annual tax engagement may be billed in a different month, or a completed project may have no expected renewal. Confirm the engagement status and compare equivalent service periods before labeling a client or engagement as lost.
Tag each engagement with a consistent work pattern and compare the same periods. Keep recurring monthly services separate from one-time advisory and project work, then show each group's contribution to the total revenue movement.