Guide

Tracking billable hours in Notion

A two-database setup that captures time at the moment of work, rolls up to matter totals, and produces an invoice without a separate billing tool.

By , practising lawyerPublished Updated 10 min read

TL;DR

  • Time entries live in their own database, related to matters.
  • Rollup properties show total hours and value per matter, automatically.
  • Invoices are Notion pages generated from a template, with the line items pulled in by relation.
Free downloadLawyerOS — Matters, Clients, Billing & AIGet it

Who this is for

A solo or small-firm lawyer who bills by the hour, the half-hour, or the fixed fee with hourly tracking for write-offs. You want time to be captured at the moment of work, not reconstructed on Friday from memory. You do not want to pay for a separate billing tool when the same data should live next to the matter.

The problem

Hourly billing breaks for two predictable reasons. First, capture is too far from the work. The timer lives in a separate app, the app is not open when the call happens, and the entry never gets logged. Second, the invoice is its own project. At month end you reconcile entries, hunt for missing time, guess at write-offs, and lose a Friday afternoon. Then you do it again next month.

The solution in Notion

Two databases. Time entries is where every block of work gets recorded. Invoices is where they get summed and sent. Both relate to your existing Matters database.

Time entries database

Properties:

  • Description (title), what you did, in plain language
  • Date (date)
  • Hours (number, two decimals)
  • Rate (number, currency), defaults from the matter
  • Value (formula: Hours × Rate)
  • Matter (relation to Matters)
  • Billable (checkbox, default true)
  • Status (select: Unbilled, Invoiced, Written off)
  • Invoice (relation to Invoices, single value)

The trick is capture. Pin the Time entries database to the sidebar. When you finish a call, a draft, a review, anything, hit New and type a one-line description. Date defaults to today. Pick the matter from the dropdown. Enter hours. Move on. The whole entry takes ten seconds.

Matter rollups

On the Matters database, add two rollup properties. The first rolls up Hours from related Time entries where Status is not Written off. The second rolls up Value with the same filter. Now every matter shows current unbilled time and current value at a glance. Open a matter and you know exactly where it stands financially without leaving the page.

Invoices database

Properties:

  • Number (title), INV-0001, INV-0002, etc.
  • Date (date)
  • Matter (relation to Matters)
  • Status (select: Draft, Sent, Paid, Overdue)
  • Total (rollup of related Time entries Value)
  • Due date (date)

Build an Invoice template page with the firm letterhead, the matter number, a heading, and a linked database view filtered to Time entries where the Invoice relation equals the current page. Notion handles the filter automatically. The template page is now an invoice that pulls in its own line items by relation.

Generating an invoice

On the matter page, find unbilled Time entries. Select them all. Set the Invoice property to a new Invoice. Notion fills in the relation on every row. Open the Invoice. The line items are there, the total is calculated, the formatting is what you set in the template. Export to PDF and send it. Mark Status as Sent. When the money arrives, mark Paid.

Common mistakes

  • Trying to capture time inside the matter page using inline entries. They never roll up cleanly. A separate Time entries database is non-negotiable.
  • Storing rate on the Time entry directly without a default from the matter. You will forget to set it. Use a formula that pulls Rate from the related matter.
  • Treating write-offs as deletions. Mark them Written off and keep the row. You need the audit trail.
  • Generating one invoice per month per client and then trying to split it across matters. One invoice per matter is cleaner and easier for both sides to argue over later.

Related framework

Time entries are the A in MATTER. Every billable Action is a record. Read more at /matter-method.

The structure in full

Notion does not replace a billing engine. It does a good job of capturing time and showing what is unbilled, which is where most revenue leaks.

PropertyTypeWhy
MatterRelationTies every entry to a matter
DateDateWhen the work was done
DurationNumberHours or minutes, one unit throughout
NarrativeTextClient-ready description
Rate noteSelect or textHourly, fixed fee, capped; your arrangement
BilledCheckbox or selectUnbilled, Invoiced, Written off
Invoice refTextReference from your billing tool

Build it step by step

  1. Create a Time entries database with the properties above and a quick-entry template.
  2. Add a rollup on Matters for unbilled hours.
  3. Create views: Today, This week by matter, Unbilled by matter, Missing narratives.
  4. Choose your billing tool for invoices and payments; record the invoice reference back on the entries.
  5. Add a monthly billing checklist: review unbilled, finalise narratives, invoice, record write-offs.

Views worth creating

ViewWhat it shows
Unbilled by matterYour month-end work list
Missing narrativesEntries needing a client-ready description
Week summaryHours by matter for your weekly review

Mistakes we see

  • Reconstructing time at month-end from memory.
  • Mixing units (hours and minutes).
  • No record of what was written off and why.
  • Rebuilding invoicing in Notion rather than using a billing tool.

Where Notion stops

  • Invoicing, payments and e-billing formats belong in a billing or accounting tool.
  • Trust accounting is a separate, regulated function. See why it stays out of Notion.
  • Check your regulator's rules on fee agreements and on describing AI-assisted work.

Related

A free starting structure is in the LawyerOS Starter Kit. Nothing here is legal advice; check your regulator's rules for anything you depend on.

Frequently asked questions

Can I invoice from Notion?

You can produce an invoice-ready export or a document, but a billing or accounting tool is better for payments, tax and records.

How do I stop losing billable time?

Capture as you work, review unbilled time weekly and keep a Missing narratives view.

Does this work for fixed fees?

Yes. Record time anyway to see which matters are profitable, and note the fee arrangement on the matter.