Building pricing analytics from historical matter data
A general counsel calls on a Tuesday afternoon. She wants a fixed fee for a mid-market acquisition: one target, one jurisdiction, closing in roughly ninety days. She wants your number by Friday. If you quote too high, you lose the work. Too low, and you eat the overrun. The partner asks the pricing analyst a simple question: "What did the last five deals like this actually cost us?"
That question is where pricing analytics begins. The answer is buried in years of messy time entries, half-finished budgets, and write-offs nobody wants to talk about. This lesson shows you how to dig it out and turn it into a defensible price.
The raw material: what a "matter" actually records
A matter is a single engagement: one deal, one lawsuit, one filing. Everything a firm knows about the economics of its work lives at the matter level.
Three data sources matter most.
Time entries. Every lawyer logs hours against a matter. Most large firms tag those hours with UTBMS codes (Uniform Task-Based Management System), a standard set of task and activity codes originally built for litigation and corporate work. A code like L120 means "analysis and strategy"; A104 means "review documents." These codes let you compare work across matters instead of drowning in free-text descriptions.
Billing and realization. The standard rate is what a lawyer's time is nominally worth. The realized rate is what the client actually paid after discounts and write-offs. Realization rate is the ratio: collected divided by billed at standard rates. If a partner bills at 900 dollars an hour but the firm collects 720, realization is 80 percent. This number is the single biggest reason historical data lies to you if you read it naively.
Matter budgets. The original estimate, if one existed, and the final actuals. The gap between them is your teacher.
Step one: find true comparables
You cannot price the M&A deal against "all past deals." You need comparable matters. Build a filter on the attributes that drive cost:
- Deal type (asset purchase vs stock purchase vs merger)
- Deal size band (enterprise value bucket)
- Jurisdiction and regulatory complexity
- Whether it was competitive (auction) or bilateral
- Financing involved (debt, equity, none)
Pull the matters that match on most of these. For our scoping call, say you find seven past acquisitions in the same size band and structure. That is your comparable set.
A warning: sample size is small in legal work. Seven matters is normal, not luxurious. Treat the output as a range, not a point estimate.
Step two: normalize the messy hours
Raw hours are contaminated. Someone staffed a junior associate who took three times as long as needed. A partner wrote off 40 hours because the client complained. One deal blew up in diligence and doubled in scope.
Clean the data before you trust it.
Strip write-offs and non-billable time so you see the work that was actually valuable, not the work that was performed.
Group by UTBMS task code to see where hours concentrated. On M&A deals, diligence and drafting the purchase agreement usually dominate. If one matter shows huge hours under a code the others do not, investigate before averaging it in.
Flag outliers. A matter that ran 2.5x the median is telling you something (scope creep, a difficult counterparty, a novel issue). Decide deliberately whether to include or exclude it. Do not let the average silently absorb it.
Here is a simple normalization view in SQLSQLSales Qualified Lead: a prospect the sales team has validated as ready for direct outreach and a proposal, having passed clear qualification criteria.View full definition →-style pseudocode:
SELECT
m.matter_id,
t.utbms_task_code,
SUM(t.hours) AS billed_hours,
SUM(t.hours * t.standard_rate) AS standard_value,
SUM(t.collected_amount) AS collected,
SUM(t.collected_amount) / NULLIF(SUM(t.hours * t.standard_rate),0) AS realization
FROM time_entries t
JOIN matters m ON t.matter_id = m.matter_id
WHERE m.matter_type = 'M&A_ACQUISITION'
AND m.deal_size_band = 'MID_MARKET'
AND t.written_off = FALSE
GROUP BY m.matter_id, t.utbms_task_code;This gives you, per comparable deal, where the hours went and what the firm actually collected.
Step three: rebuild the price from the components
Now reconstruct a fee from the parts instead of guessing a round number.
1. Build the effort profile. Take the median hours per UTBMS task code across your clean comparables. Sum them into a total expected hours figure by staffing level (partner, senior associate, junior associate, paralegal).
2. Apply standard rates to that effort profile. This is your gross standard value: what the deal "should" cost at rack rate.
3. Apply realized economics. Multiply by the historical realization rate for this work type. If mid-market M&A historically realizes at, say, 88 percent, that is the revenue you can actually expect to collect at standard billing. This step is what separates a real analyst from someone reading a rate card.
4. Add a contingency band. Because the sample is small and deals vary, express the result as a range. The median comparable might land at one figure, the 75th percentile higher. A fixed fee should sit somewhere you can defend against the upside cases, not just the median.
Step four: check profitability, not just price
Revenue is not profit. To know whether the fixed fee is worth taking, layer in cost.
Firms track profitability per matter using a cost rate for each timekeeper: roughly salary, benefits, and allocated overhead divided by expected billable hours. Subtract total cost from expected collected revenue to get matter margin.
A fixed fee can look attractive on revenue and still lose money if it is staffed heavily with expensive partners doing work an associate could do. Your effort profile from Step two tells you the staffing mix, so you can model margin before you quote.
The American Bar Association's overview of alternative fee arrangements and practice economics is a useful free primer on how firms think about AFAs (alternative fee arrangements: any pricing other than pure hourly, including fixed fees, caps, and success fees).
🎬 [VIDEO: "Legal Project Management and Pricing" — youtube.com — an overview of how firms scope, budget, and price matters using historical data]
Knowledge check
1. Why does the lesson warn that historical billing data 'lies to you if you read it naively' when standard rates are used?
2. What is the primary analytical purpose of UTBMS codes in building pricing analytics?
3. A firm bills a partner's time at standard rates totaling $100,000 on a matter but collects $75,000. What does this tell a pricing analyst about that matter?
4. Select ALL correct answers about why the gap between a matter's original budget and its final actuals is valuable for pricing analytics.
Select all the correct answers.
5. Select ALL correct answers describing what data lives at the 'matter' level and why it is the right unit for pricing analysis.
Select all the correct answers.
Making it defensible
A price is only useful if you can defend it: to the client, to the partner signing off, and to yourself six months later when the deal is running hot.
Show the derivation. "We priced this from seven comparable mid-market acquisitions, normalized for write-offs, at the 65th percentile of historical effort." That sentence wins internal approval far faster than a number with no story.
Track scope assumptions explicitly. The fixed fee assumes one target, one jurisdiction, no antitrust filing. Write those assumptions into the engagement letter so that scope creep triggers a change order (a documented expansion of fee and scope) rather than an awkward argument later.
Close the loop. After the deal, feed the actuals back into the comparable set. Pricing analytics is not a one-time model; it improves every time a matter closes. Firms that do this well build a living dataset that gets sharper each quarter.
Common failure modes
- Averaging dirty data. Including write-offs and outliers pulls your estimate in random directions. Normalize first.
- Ignoring realization. Pricing off standard rates alone overstates revenue by 10 to 20 percent in many practice groups. Estimates vary widely by firm and practice.
- Confusing revenue with margin. A well-priced fee staffed badly still loses money.
- Over-trusting small samples. Seven matters give you a range, not a guarantee. Communicate the uncertainty.
- Never updating. A pricing model that does not ingest closed matters decays fast.
Key Takeaways
- Price from components, not gut. Rebuild a fixed fee from normalized UTBMS-coded effort, standard rates, and historical realization, then express it as a range.
- Realization rate is the truth serum. Standard rates tell you what work is nominally worth; realization tells you what you will actually collect. Always apply it.
- Clean before you calculate. Strip write-offs, group by task code, and handle outliers deliberately so your averages mean something.
- Model margin, not just revenue. Layer timekeeper cost rates and staffing mix onto the effort profile to see whether the fee is actually profitable.
- Close the loop every matter. Feed actuals back into the comparable set so the model sharpens over time and every price becomes more defensible.