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.