Sign in

Blog · Board and management reporting · Professional services

Professional services revenue analysis by practice

Explain professional-services revenue changes through billable hours, realized rates and practice mix. Build an exact bridge from matched time and revenue exports.

The short answerProfessional services revenue analysis explains changes through delivered billable hours, realized revenue per hour and the mix of practices or engagements. Match time and revenue to the same service periods, then calculate a bridge that reconciles to the ledger. Keep fixed-fee and contingent arrangements separate when their revenue does not follow hours.

Professional services revenue analysis explains fee changes through billable hours, realized rates and the mix of practices delivering the work. Match time and revenue by engagement and service period, reconcile to the ledger, and build a bridge whose movements add to the revenue change. An increasing revenue total can coexist with a falling average hourly rate.

Match the time and revenue periods

Export approved time with employee, client, engagement, practice, work date, billable status and hours. Export net revenue with the same engagement keys, service period, fee arrangement, credits and recognition adjustments. Keep reimbursable expenses separate from professional fees so they do not increase the apparent hourly yield.

Distinguish earned fees from invoices and cash receipts. IRS Publication 538 explains the difference between cash and accrual income timing for tax purposes. Your financial reporting policy determines recognized book revenue; the analysis should follow that policy and reconcile any billing-to-revenue differences rather than substitute collection dates for service dates.

Join the comparison at client, engagement and practice level before rolling up. If a project moves between practices, preserve a consistent mapping or show the reclassification explicitly. Law firms should also retain matter and fee-arrangement details; a contingency matter should not become an hourly pricing observation.

Use professional services financial analysis for the broader financial review. This workflow answers a narrower question: which delivery and fee changes explain the movement in earned professional revenue?

Work the same rows through both periods

The fictional US consulting firm below compares two quarters of time-and-materials work. Revenue is net of engagement credits, all hours belong to the corresponding service period, and fixed-fee projects are excluded from this particular bridge.

Practice Prior billable hours Prior realized rate (USD/hour) Current billable hours Current realized rate (USD/hour) Prior revenue (USD) Current revenue (USD)
Advisory 4,000 200 3,300 210 800,000 693,000
Implementation 2,000 150 3,300 155 300,000 511,500
Total 6,000 6,600 1,100,000 1,204,500

Revenue rose by $104,500, or 9.5%: 1204500/1100000-1. Billable hours rose from 6,000 to 6,600. Yet average realized revenue per hour fell from $183.33 to $182.50, rounded to cents, using total revenue divided by total hours.

Put the headers in row 1 and the two practice rows in rows 2 and 3, using columns A through G. Prior and current revenues in F2 and G2 are:

=B2*C2
=D2*E2

For actual exports, aggregate earned revenue by practice with a table named Revenue:

=SUMIFS(Revenue[NetRevenue],Revenue[Practice],A2,Revenue[ServicePeriod],"Current")

Aggregate matched approved hours from a table named Time:

=SUMIFS(Time[Hours],Time[Practice],A2,Time[ServicePeriod],"Current",Time[Billable],"Yes")

Then divide the revenue result by those hours to calculate the realized rate. Microsoft documents SUMIFS for totals meeting multiple criteria. A zero-hour practice with revenue requires investigation or separate treatment, not a zero rate.

Split total hours, practice mix and rates

Change total hours first, practice mix second and rates last. Using that order, additional hours are valued at the prior blended rate; changes in practice weights use prior practice rates; and rate changes use current hours. The order assigns interaction effects consistently.

At prior practice weights, 6,600 current hours would mean 4,400 advisory hours and 2,200 implementation hours. Those allocations come from multiplying current total hours by each practice's prior share, using the original table without rounding the shares.

Revenue movement Calculation Effect (USD)
Total hours (6,600 - 6,000) × (1,100,000 / 6,000) 110,000
Advisory mix (3,300 - 4,400) × 200 -220,000
Implementation mix (3,300 - 2,200) × 150 165,000
Advisory realized rate 3,300 × (210 - 200) 33,000
Implementation realized rate 3,300 × (155 - 150) 16,500
Total movement 110,000 - 55,000 + 49,500 104,500

Calculate the firmwide hours effect in one cell:

=(SUM(D2:D3)-SUM(B2:B3))*SUM(F2:F3)/SUM(B2:B3)

Calculate each practice's mix effect in H2 and realized rate effect in I2, then fill down:

=(D2-SUM($D$2:$D$3)*B2/SUM($B$2:$B$3))*C2
=D2*(E2-C2)

The proof is $1,100,000 plus $110,000, less $55,000, plus $49,500, which equals $1,204,500. Both practice rates improved; the firmwide rate fell because more hours went to the lower-rate implementation practice.

As another check, Microsoft's SUMPRODUCT function multiplies corresponding values and sums the products. SUMPRODUCT(D2:D3,E2:E3) must equal the current revenue total. Use unrounded rates for real exports; display rounding should not create an unexplained bridge residual.

Turn the bridge into operating decisions

The practice leaders own the hours and delivery mix explanation. Engagement owners investigate the realized rate movement: scope, discounts, credits, staffing grades and contract changes. Finance owns the ledger reconciliation and confirms that the service periods align.

A positive rate effect is not proof of a price increase. A different client or employee mix within a practice can change its realized rate. Drill into matched engagements before assigning a pricing action; customer revenue analysis provides the client view. Keep new and closed engagements visible rather than inventing prior rates for work that did not exist.

For fixed-fee work, compare recognized engagement revenue separately and explain milestone, scope and delivery changes. Add that segment's movement to the hourly segment only after both reconcile to their ledger totals. Use professional services cost analysis to evaluate the labor cost behind the delivery change, and professional services revenue forecasting when converting the findings into future assumptions.

Where it goes wrong

  • Invoice month paired with work month. Late billing creates an artificial realized rate swing unless earned revenue is matched to delivery.
  • Unweighted rates averaged. The firm rate is total revenue divided by total billable hours, not an average of practice percentages or rates.
  • Fixed fees called hourly prices. Hours can measure effort without determining earned revenue.
  • Mix added twice. A client view and a practice view describe the same movement; do not sum their separate bridges.
  • Nonbillable time included silently. Keep capacity and utilization questions separate from the billable-hours revenue calculation.

Covirage is not affiliated with Microsoft.

Explain your practice's revenue in Covirage

Bring matched time and revenue exports with engagement, practice, service period and fee-arrangement fields. Covirage maps the columns; its tools compute and check the figures, 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 professional services for the business context.

Questions people ask

Is realized hourly rate the same as the standard billing rate?

No. Realized hourly rate divides matched net revenue by billable hours. Standard billing rate is the rate listed for a person or service. Discounts, credits, contractual caps and scope changes can make realized rates differ from those listed rates.

How should fixed-fee projects enter revenue analysis?

Keep their recognized revenue in the ledger reconciliation, but analyze their movement separately from time-and-materials work. Revenue per hour can describe delivery economics on a fixed-fee engagement, yet its movement is not necessarily a negotiated price change.

Can revenue grow while the firm's average hourly rate falls?

Yes. More work can move into practices with lower hourly rates even when every practice raises its own rate. Separate total hours, practice weights and practice rates before concluding that firmwide price realization deteriorated.