Early access — Windows

HourEngine — time tracking that gets billable hours right.

Local-first time tracking for consultants and firms that bill for their time. Built by a practicing CPA/consultant.

Free during early access. Your time data never leaves your machine — no account, no cloud, no telemetry.

Built around getting billable hours right

Not just a stopwatch — a billing engine that matches how consultants and firms actually invoice.

The 50-minute billable hour

Actual minutes worked convert to billable hours using your minutes-per-hour setting — 50 by default, configurable to whatever your firm bills on.

Dual concurrent timers

Run two timers at once — a billable matter plus a personal or overhead bucket — without losing track of either.

A passive activity watcher, built in

Replaces a separate tracker app: it quietly records the window and app you were actually using, so nothing worked-but-unlogged slips through.

End-of-day reconciliation

Untracked stretches the watcher noticed surface in a safety-net list — assign them to a client in one click before you close out the day.

Per-task minimums, without the compounding

Law-firm-style minimum blocks apply per task, on clusters of related work — clustering logic keeps quick task-switching from artificially multiplying the minimum.

One rounding pass a day

Quarter-hour rounding happens once, at the day level. Weekly and client totals are the sum of already-rounded days — client-favorable and easy to audit against an invoice.

Premium-hours tracking

Flag time worked in premium windows separately from standard hours, without changing how the rest of the day is billed.

A per-day Activity audit timeline

A colored, hoverable timeline of the day — assigned time by client, untracked time, and away time — so you can see exactly where the hours came from.

Everything stays local

Every timer, entry, and activity record lives in a single SQLite file on your machine. Nothing is uploaded anywhere.

How the billing math works

Four steps, in plain English — designed so the week total always matches what an invoice would say.

Convert actual time to hours

Actual minutes worked on a task are divided by your minutes-per-hour setting (50 by default) to get an unrounded billable-hour value.

Apply per-task minimums, on unrounded clusters

A minimum bill (0.25 hr by default) applies to a cluster of related work on the same task — before any rounding — so switching tasks quickly can't inflate the minimum multiple times.

Round once, at the end of the day

Quarter-hour rounding is applied a single time per day — never per task, never per entry.

The week is the sum of the rounded days

Weekly and client totals add up the already-rounded daily numbers, so the Week report matches what an invoice would say — line for line.

Worked example

55 minutes of work on a task on Monday, and another 55 minutes on the same task on Tuesday. Each day converts and rounds on its own: 1.00 billable hour Monday, 1.00 billable hour Tuesday. The week total is 2.00 hours — not 2.25. Rounding the week instead of each day would bill a quarter hour that was never actually worked in one sitting.

Your data stays yours

No cloud, no account, no telemetry. It's built to be trusted by the same firms whose billing depends on it.

  • Your time data never leaves your machine
  • No telemetry, no account, no cloud
  • The only network call is an optional daily update check
  • Everything is stored in a single local SQLite file

Local by design

0 accounts required to use it
1 optional network call — a daily update check
100% of your billing data stored on your device

Get early access

Early access is invite-only for design partners right now, free during early access. Email matt@msoflow.io and we'll get you set up.