Tov Law Grow Your Autonomous Law Firm Free AI Resources for Lawyers
§ 44 · Practice management

Build a Law Firm KPI Dashboard With AI in a Weekend

Most law firm owners do not have a dashboard. They have a practice management system that produces reports, an ad account with its own numbers, an accountant who sends something monthly, and a general feeling about how the firm is doing. The numbers exist. They just never sit next to each other, which is the only arrangement in which they mean anything.

I run 10 firms and I do not touch daily operations. That only works because I can see seven numbers every morning without asking anyone for them. Here is what belongs on that screen and how to build it without hiring a developer.

The seven numbers

New leads. How many people raised their hand yesterday, by source. This is the top of everything and it moves fastest.

Contact rate. The percentage of those leads someone actually reached. This is the single most neglected number in law firm operations, and it is usually the cheapest thing to fix. A firm buying more ads while reaching 40 percent of the leads it already has is setting money on fire. Speed to lead is where that fix starts.

Signed cases. Retainers executed, by day and by source.

Cost per signed case. Ad spend divided by signings, per source. Not cost per lead. Cost per lead flatters channels that produce garbage, and every marketer who reports it knows that.

Active matters per staff member. Your early warning for both burnout and idle capacity. When this climbs, quality drops about a month later, and clients start calling about status.

Average days from signing to resolution. Your cash conversion cycle. Firms obsess over signing more cases while quietly getting slower at finishing them, which feels like growth and is not.

Collections against billings. What you actually got paid against what you earned.

That is the list. The temptation is to add fifteen more, and the result of adding fifteen more is that nobody looks at any of them.

Why the reports you already have do not work

Your practice management system reports on your practice management system. It knows about matters. It does not know what you spent on Meta yesterday, and it cannot see whether intake called back the lead that came in at 6pm.

Your ad platform reports cost per lead and has no idea which of those leads signed, which is the only question worth asking.

Your accountant reports on last month, accurately and too late to change anything.

The dashboard’s job is joining those. That is genuinely all it does, and it is why no vendor sells you one that works: the join is specific to your stack.

How I built mine

Claude Code, a weekend, and no developer. The honest version of that story is in build vs buy, including where building is the wrong call.

The shape is simple. Each source system has an API or exports a file. A script pulls from each on a schedule, normalizes the numbers into one table, and a single page renders them. That is the entire architecture. It is not clever and it does not need to be.

What made it work was not the code. It was deciding what the numbers meant before building anything. “Signed case” has to mean one specific thing, dated one specific way, or the number changes depending on who counts it. Spend the first hour writing those definitions down. Every dashboard that fails, fails there.

What it actually takes

Expect the first version to be wrong. Mine was. Numbers that did not match what the team believed, a source that double-counted, a date field that meant something different than I assumed. That reconciliation is the real work and it takes longer than the build.

Expect maintenance. Systems change their APIs, someone renames a field, a number silently stops updating. A dashboard showing a stale number is worse than no dashboard, because you will act on it. Build in a visible last-updated timestamp on every panel so a frozen feed is obvious.

And expect resistance, quietly, from anyone whose performance becomes visible for the first time. That is not a reason to skip it. It is a reason to introduce it as a tool for seeing the business rather than as surveillance, and to look at systems before you look at people.

Do this today

Write down your seven numbers and, next to each, which system holds it and how it is defined. One page.

That page is most of the work. Once you have it, whether you build it with Claude Code, have someone assemble it in a spreadsheet, or ask your BI person to wire it up is a detail. The firms that never get a dashboard are not blocked on tooling. They are blocked on never having decided what they wanted to see.

Questions lawyers ask

What KPIs should a law firm owner track?
Seven cover most of it: new leads, the percentage you actually reach, signed cases, cost per signed case, open matters per staff member, average days from signing to resolution, and collections against billings. Everything else is a breakdown of one of those. If you track twenty numbers you will watch none of them.
Why not just use the reports in my practice management software?
Because they report on what lives in that one system. Your leads are in your ad platform and your phone system, your matters are in case management, and your money is in accounting. A useful dashboard joins those, and no single vendor's reporting tab can, since it cannot see the other systems.
Can I really build a dashboard without a developer?
Yes, for an internal dashboard fed by your own systems. You describe what you want and Claude Code writes and debugs the code while you watch. I am not a programmer and I run a dashboard across 10 firms. What it requires is patience during setup and someone who understands what the numbers mean.
How often should the numbers update?
Daily is right for intake numbers, because a bad week is only fixable if you see it on day two. Financial numbers can update weekly. Anything you look at less than weekly should not be on the dashboard at all, it belongs in a monthly review.

Go deeper