Guide
Legal project management in Notion: phases, budgets, scope and status reports
Legal project management in Notion: phases, matter budgets against actual hours, scope-change control and a one-page client status view.
By Raghav R Handa, practising lawyer18 min read
TL;DR
- Treat a matter as a project: phases, milestones, a budget, a scope and a status you can report.
- Roll Time entries up to the matter to compare hours with budget automatically, and compare burn with progress to get an early warning.
- Log scope changes explicitly. Scope creep is a project-management problem and a billing problem at once.
- Produce a one-page client status view from the same data, and learn from estimates versus actuals across matters.
Legal project management in Notion means treating each matter as a project: phases and milestones, a budget, a defined scope and a status you can report. Build it on the databases you already have (Matters, Tasks, Time entries): add a budget to the matter, roll time up to it, and let a formula tell you when you are running over. The result is a matter that delivers on time and on budget, and a client who is never surprised. For the general discipline see legal project management. This guide gives the schemas, the estimating method, the formulas, the capacity view, the weekly rhythm and the client status page.
The six project controls, applied to a matter
| Control | Question it answers | In Notion |
|---|---|---|
| Scope | What are we doing and not doing? | Scope and exclusions text; scope-change log |
| Schedule | When will each stage be done? | Phases and milestones with target dates |
| Budget | What will it cost, and what has it cost? | Budget hours and fees; rollup of time entries |
| Risk | What could go wrong? | Risks database with likelihood and impact |
| Communication | Who needs to know what, when? | Client status view, cadence |
| Change | How are changes handled? | Scope changes with approval |
The databases
| Database | One row is | Key properties |
|---|---|---|
| Matters | The project | Budget hours, budget fees, estimate link, scope summary, phase, RAG, target close, % complete (rollup of phases) |
| Phases | A stage of the matter | Name, order, target date, weight (share of work), status, estimated hours, Matter |
| Milestones | A key event within a phase | Name, date, done, Phase |
| Tasks | A piece of work | Owner, due, phase, estimate (hours), status, Matter |
| Time entries | Hours worked | Matter, phase, date, hours, rate |
| Scope changes | A change in scope | Date, description, impact on fees and time, approved by client, Matter |
| Risks | A thing that could go wrong | Description, likelihood, impact, owner, mitigation, status, Matter |
Building an estimate that you can learn from
A good estimate is the foundation of a good budget. Build it from phases, state the assumptions, and keep it with the matter so you can compare it with reality later.
| Phase | Partner hours | Associate hours | Paralegal hours | Total | Assumptions |
|---|---|---|---|---|---|
| 1. Fact-finding and strategy | 4 | 10 | 6 | 20 | Client provides documents promptly |
| 2. Drafting | 3 | 16 | 4 | 23 | Two rounds of comments |
| 3. Negotiation | 8 | 10 | 2 | 20 | Counterparty responds within a week |
| 4. Completion | 2 | 6 | 6 | 14 | No unexpected issues |
| Contingency (15 percent) | 11 | For unknowns | |||
| Total | 88 |
The figures are illustrative. The discipline is to list phases, tie hours to assumptions, and say what would change the estimate. When actuals diverge, you can see which assumption failed.
Budget, burn and forecast: the formulas
Roll Time entries up to Matters as Hours logged, and compute percentage of phases complete from the phase weights. Then:
// Percentage of budget used
if(prop("Budget hours") > 0,
round(prop("Hours logged") / prop("Budget hours") * 100), 0)
// Percentage complete (from a rollup of weighted completed phases, 0 to 100)
prop("Percent complete")
// Estimated hours at completion
if(prop("Percent complete") > 0,
round(prop("Hours logged") / (prop("Percent complete") / 100)), 0)
// Variance at completion (positive = over budget)
prop("Estimated hours at completion") - prop("Budget hours")
// RAG status: compare burn with progress
if(prop("Budget hours") == 0, "",
if(prop("Estimated hours at completion") > prop("Budget hours") * 1.1, "Red",
if(prop("Estimated hours at completion") > prop("Budget hours"), "Amber", "Green")))Two cautions. These are estimates, not billing. And the forecast is only as good as your percentage complete: base it on completed phases and milestones, not on how you feel.
RAG thresholds, defined
| Status | Budget | Schedule | Risk |
|---|---|---|---|
| Green | Forecast within budget | On or ahead of milestone dates | No open high risks without a mitigation |
| Amber | Forecast over budget by up to about 10 percent | A milestone slipped but recoverable | A high risk with a plan |
| Red | Forecast materially over budget | Key milestone missed | A high risk without a plan |
Define your own thresholds, write them in the wiki, and apply them the same way across matters, or the colours mean nothing.
Scope control in practice
- Write the scope and the exclusions into the engagement (see the engagement tracker).
- When the client asks for more, record a Scope change row, estimate the impact, and tell them.
- Get written approval before doing the work, then update the budget and the engagement.
- At each milestone, ask: is the scope still what we agreed?
Capacity: who has room?
Group open Tasks by owner and sum their estimates to see load per person; filter by due date for next week and next month. A view of hours remaining by phase across matters shows where the team is bottlenecked. This turns "I am swamped" into a number you can plan around.
A risks register, kept light
| Risk | Likelihood | Impact | Mitigation | Owner |
|---|---|---|---|---|
| Key witness unavailable | Medium | High | Take a statement early; identify a backup | Associate |
| Counterparty slow to respond | High | Medium | Set response deadlines; agree a timetable | Partner |
| Scope expands after disclosure | Medium | Medium | Review scope at the document-review milestone | Partner |
The weekly rhythm
- Open a view of matters sorted by percentage of budget used.
- Check each amber and red matter: re-plan, re-scope or tell the client.
- Review milestones due in the next two weeks and tasks overdue.
- Review the risk register for changes.
- Update status and send the client view where agreed.
A one-page client status
Build a view with the matter's phase, milestones done and next, budget status and any decisions needed from the client. Share it by controlled access or export it. Keep privileged commentary off the client view. See client status reports.
Learning across matters
After each matter closes, record estimate versus actual by phase. A quarterly view of variance by matter type shows where you consistently under-estimate, so you can adjust templates and pricing. This is the part most firms skip, and the part that makes the next estimate better.
| Measure | Why |
|---|---|
| Estimate accuracy by matter type | Improves pricing |
| Phases that most often overrun | Where to add contingency or change process |
| Scope changes per matter | A sign of unclear scoping |
| Realisation per matter | Link between project control and profit |
Common mistakes
- A budget set once and never compared with actuals.
- Percentage complete guessed, making the forecast meaningless.
- Doing out-of-scope work first and discussing it later.
- RAG colours with no definitions.
- Over-engineering a small matter with a full project plan.
Related: matter management, billable hours, a firm financial dashboard and the best way to use Notion for lawyers.
Frequently asked questions
How do I track a legal matter budget in Notion?
Add a budget (hours or fees) to the matter, relate Time entries to it, roll the hours up, and add a formula for the percentage of budget used. A view of matters over 80 percent shows trouble early.
What is legal project management?
Applying project-management practice (phases, milestones, budgets, scope control and status reporting) to legal matters so they are delivered on time and on budget, and clients know where they stand.
Can Notion produce client status reports?
Yes. A filtered view of a matter's milestones, tasks and budget status can serve as a one-page report, which you can export or share with the client through a controlled page.
How do I build an estimate in Notion?
Break the matter into phases, estimate hours per phase and timekeeper, add contingency, state assumptions, and store the estimate on the matter. Compare actuals against it as the matter runs, and use the variances to improve the next estimate.
What is a RAG status?
Red, amber, green: a simple traffic-light summary of a matter's health on budget, schedule or risk. Define the thresholds in advance so the colours mean the same thing across matters.
How do I forecast whether a matter will go over budget?
Divide hours logged by the percentage of work complete to estimate total hours at completion, and compare with the budget. The estimate is only as good as your percentage complete, so use milestones, not gut feel.
How do I control scope creep?
Write the scope and exclusions down, log every request outside it as a scope change with a price, get approval before doing the work, and review scope at each milestone.
Is legal project management only for large matters?
No. Even a small matter benefits from a defined scope, a few milestones and a budget. The overhead should match the size: a lightweight phase list and a budget check are enough for most small matters.
Related guides
- How to build a litigation case tracker in Notion: chronology, issues, evidence and hearings
- Contract lifecycle management in Notion: a lightweight CLM for small legal teams
- An engagement letter and fee agreement tracker in Notion: no work without a signed scope
- Legal knowledge management in Notion: a precedent bank and firm wiki that stays current