Time recorded where the work already happens
FigsFlow is time and billing software for accounting firms — timers, work in progress and invoices on the same client record your proposals, engagement letters and jobs already run on. Time attaches to the job it belongs to, so the bill is built from what happened rather than from what somebody remembers on the last Friday of the month.
G2 reviews
Google reviews Verified reviews Trustpilot reviews
- Recorded14.5 hrs across 4 people · every entry on this job
- Agreed fee$4,500 fixed · from the signed letter
- Scope1 out-of-scope request · flagged, not silently absorbed
- InvoiceDrafted from this job · nothing re-keyed
the write-off is visible before the invoice goes out — not discovered in a report three months later
The same recorded hour, seen two different ways
A preparer opens FigsFlow and sees one screen: what they worked on today, and what is still untracked. A partner opens the same system and sees the practice — what is sitting in work in progress, what is about to be written off, and which jobs are earning. Switch between the two, then move through the sections to look around.
| Person | Job | Recorded | Billable | State |
|---|---|---|---|---|
| Tom Hewitt | Beaumont Retail · year-end | 6.75 | 6.75 | Timer on |
| Lisa Reynolds | Hartwell LLP · review | 5.50 | 5.50 | Submitted |
| Amanda Banks | Across 4 clients | 7.25 | 4.00 | Submitted |
| Priya Raman | Colwyn Inc. · bookkeeping | 3.25 | 3.25 | Under target |
| David Fitzwilliam | Advisory · Marren & Co | 2.00 | 2.00 | Submitted |
| Job | Recorded | Agreed fee | Against fee | Aged | State |
|---|---|---|---|---|---|
| Marren & CoAdvisory · retainer | $9,860 | $6,000 | 64 days | 164% of fee | |
| Hartwell LLPPartnership return · 2025 | $7,240 | $6,500 | 38 days | 111% of fee | |
| Beaumont RetailYear-end accounts · YE 31/03/2026 | $4,500 | $4,500 | 9 days | Ready to bill | |
| Colwyn Inc.Bookkeeping & GST/HST | $1,850 | $2,400 | 12 days | In progress | |
| Delaney TrustTrust return · 2025 | $980 | $1,800 | 5 days | In progress |
| Line | Source | Recorded | Billed |
|---|---|---|---|
| Year-end accounts preparation | Fixed fee · signed letter | 11.5 hrs | $4,500 |
| Taxable benefits reporting | Out of scope · approved | 2.0 hrs | $650 |
| Opening balance cleanup | Write-off · first-year client | 3.5 hrs | − $1,580 |
| Service | Recorded | Billed | Realization | |
|---|---|---|---|---|
| Advisory | $61,400 | $59,200 | 96% | |
| Year-end accounts | $148,900 | $130,000 | 87% | |
| Bookkeeping and GST/HST | $92,600 | $74,100 | 80% | |
| Personal tax | $77,300 | $50,300 | 65% | |
| Opening balance cleanup | $31,800 | $17,800 | 56% |
| Client | Invoice | Amount | Age | State |
|---|---|---|---|---|
| Hartwell LLP | INV-0871 | $6,500 | 41 days | Overdue |
| Marren & Co | INV-0866 | $6,000 | 34 days | Overdue |
| Beaumont Retail | INV-0884 | $5,150 | 2 days | Sent |
| Colwyn Inc. | INV-0879 | $2,400 | 12 days | Sent |
| Delaney Trust | INV-0882 | $1,800 | 6 days | Viewed |
Illustrative sample data in Canadian dollars, shown excluding GST/HST. Starting a timer, approving a write-off and sending an invoice run in the live demo rather than here.
Nobody decided to give the work away.
It leaked, one small honesty at a time.
The partner reviewing the bill has a different problem. Nineteen hours are recorded against a $4,500 fee, but they cannot tell what was actual work and what was the client’s fourth revision. So they bill the fee, absorb the difference and move on. Neither is a discipline failure. It happens when time is recorded separately from the engagement, scope and fee.
“I rebuilt the week on Friday. I rounded down, because I would rather be wrong in the practice’s favour.”
Where it sits in the flow
The fee, the hour and the invoice are one record
This is what makes it practice management rather than a timesheet with an invoice button. The reconciliation between the price, the work and the bill is not shortened. It is gone.
- Fee agreed
- Scope signed
- Work scheduled
- Hours recorded
- Invoice assembled
- Payment lands
A loop, closed by a person
The fee sits on the proposal, the scope in the signed letter, and the hours on the job those two created. That is what lets each recorded hour be measured against the right work. What the work actually cost shows whether the price was right, and correcting it at renewal is a decision someone makes, not something the system does behind you.
Recovery is one read of the records four other modules are already keeping.
Reporting and analyticsRealization by service line
- Advisory96%
- Year-end accounts87%
- Bookkeeping and GST/HST80%
- Personal tax65%
- Opening balance cleanup56%
Two ways to record an hour, because half your firm will never use the other one
Some people start a timer and forget it is running. Others reconstruct the day at five o'clock and would resent a timer on principle. A system that only serves one of them gets partial data, and partial data cannot be used for pricing.
Both routes land in the same place with the same detail — attached to a job, with what was done written next to how long it took.
Start it from the job
The timer lives on the job someone is already inside. One click, no client picker, no job code to look up. It keeps running across tabs and survives a closed laptop.
Or write the day up after it
A week grid where hours are typed straight into the day and job they belong to. Duplicating yesterday's pattern takes one action, because most weeks in an accounting practice are not novel.
The system shows you the gap
If someone has recorded four hours of an eight-hour day, the missing block is surfaced while it is still recoverable — not four weeks later when the honest answer is a shrug.
The number that matters is the one you see before the job is finished
Every job carries the fee it was sold for. As time is recorded, the job is measured against it — continuously, not at month end. That turns a write-off into something you can still prevent.
At sixty percent of the fee with the work half done, somebody can act: raise the out-of-scope request, reallocate the reviewer, or decide knowingly to absorb it. At a hundred and forty percent on the day you bill, the only choice left is how much to swallow.
What has been done and not yet billed
Work in progress is the least examined number in most practices. It is recorded time that has not become an invoice, which makes it either a billing run somebody has not got to yet or revenue quietly ageing out of reach — and from a distance those look the same. This screen separates them.
Eleven jobs ready to bill is not a data problem, it is an unbilled month. Sixty-four days of ageing on a single engagement is a conversation nobody has had. Both are visible on the same screen as the job, the owner and the client — so acting on them does not require exporting anything.
| Job | Recorded | Agreed fee | Against fee | Aged | State |
|---|---|---|---|---|---|
| Marren & CoAdvisory · retainer | $9,860 | $6,000 | 64 days | 164% of fee | |
| Hartwell LLPPartnership return · 2025 | $7,240 | $6,500 | 38 days | 111% of fee | |
| Beaumont RetailYear-end accounts · YE 31/03/2026 | $4,500 | $4,500 | 9 days | Ready to bill | |
| Colwyn Inc.Bookkeeping and GST/HST | $1,850 | $2,400 | 12 days | In progress | |
| Delaney TrustTrust return · 2025 | $980 | $1,800 | 5 days | In progress |
Realization
Which work is actually earning
Realization is recorded value against billed value. It is the only number that answers the question a partner actually has, which is not “are we busy” but “which of the things we sell are worth selling again”.
Most practices see it once a year, in a report, after the pricing decisions it should have informed have already been made. Two lines carry this practice and two dilute it. Cleanup work at fifty-six percent is not a staffing problem — it is a pricing problem, and it is only visible because the recorded time and the agreed fee sit on the same record.
The same view runs by client, which is a harder conversation and usually a more useful one.
Illustrative, in Canadian dollars, excluding GST/HST · recorded value against billed value
Out of scope · approved $650 2.0h
Write-off · first-year client − $1,580 3.5h
Every line traceable to the job it came from · nothing re-keyed
Billing
The invoice is assembled, not written
A draft invoice is built from the job it belongs to. The fixed fee comes from the signed letter, approved out-of-scope work comes in as its own line, and anything being written off is named as a write-off rather than quietly deducted.
You still decide what to bill. The difference is that the decision is recorded, with a reason, against the job — which is what makes next year’s fee conversation an evidence-based one.
Clients pay by card through Stripe, and the payment lands against the invoice and the job it came from. Collection closes the loop on the same record instead of in a second system somebody reconciles later.
What it does
The parts you will actually use every day
Ten things, stated plainly. If one of them is not in this release it is on the next fold, not buried here.
Timers and manual entry
Start a timer from the job or enter time after the fact. Both land in the same place with the same detail, because a practice where half the staff write up the day at five o’clock is still a practice with complete data.
Timesheet review and locking
Entries are submitted, reviewed and locked on the cadence your practice chooses. Once a week is locked, the hours behind every invoice and report stop moving.
Budgets on every job
The fee from the accepted proposal becomes the job’s budget, so drift is measured continuously rather than discovered at billing.
Out-of-scope flagging
Work outside the signed letter is marked when it happens, so it can be raised, approved or absorbed knowingly rather than by default.
WIP by job and by age
Every open job carrying time, ranked by exposure and aged from the date the work was done rather than the date it was reviewed.
Invoice drafting from the record
Bills assembled from recorded time and the agreed fee, with each line traceable back to the work behind it.
Write-off capture with reasons
A short required reason on every reduction. It takes four seconds and it is the entire basis of next year’s pricing conversation.
Realization by client and service
Recorded against billed, broken down by client and by service line, available in-year rather than in a year-end report.
Rates by person and role
Billing rates are held by person and by role at practice level, so an entry is valued correctly without anyone having to remember a number.
Export for the ledger
Billed values leave cleanly for Xero or QuickBooks Online. FigsFlow runs the practice around your ledger rather than replacing it.
Your stack
Works with what you already run
Timesheets and billing touch the two things a practice cannot afford to run twice — the ledger and the payment rail. Sign-in, storage and invoice delivery stay inside the Microsoft tenant you already administer.
- Microsoft 365
- Entra ID SSO
- SharePoint
- Outlook
- Stripe
- Xero
- QuickBooks Online
What this does not do yet
Who uses it
What this looks like at your size
Pick the shape of your practice.
The bill is already decided. The cost is not. Nothing here changes what the client pays — it tells you which of your twelve monthly clients absorbs three times the effort of the others, which is the fee to revisit at renewal.
What you’ll see0:00 / 1:48
- 0:00You set the price once, a year ago
- 0:26A timer on the job you are already inside
- 0:54Three clients on the same fee, three different costsOne of them is at 56% realization
- 1:22You reprice one engagement at renewal, with evidence
Preview clock — no video source set
Two or three preparers, and the write-off is always on the same kind of job. Nobody has raised it because nobody can prove it. Recorded time against the agreed fee turns a suspicion into a line on a screen.
What you’ll see0:00 / 2:02
- 0:00Three preparers, one job type that never pays
- 0:31The scope was signed. The extra work was not
- 1:04Opening balance cleanup is running at 56%It was a pricing problem, not a staffing one
- 1:38Cleanup becomes a separate quoted piece of work
Preview clock — no video source set
Fixed fees, hourly advisory, retainers and the odd project. Realization only means something when all four billing models sit in one system with one definition of a recorded hour.
What you’ll see0:00 / 2:11
- 0:00Six people, four billing models, one number
- 0:34Rates held by person and by role, once
- 1:09WIP ranked by exposure, aged from the workRevenue ageing out of reach, not a billing backlog
- 1:46A billing run that starts from the job, not a blank invoice
Preview clock — no video source set
Two hundred personal tax returns, everybody at capacity, no appetite for admin. A timer on a job somebody is already inside costs nothing to run — and it is the only honest record of what tax season cost when you price the next one.
What you’ll see0:00 / 2:24
- 0:00Ten weeks that decide the year
- 0:38Capture without a Friday reconstruction
- 1:15Two hundred returns, priced from what tax season actually costThe write-offs were named, so they can be defended
- 1:59Next season’s fee set on evidence, not on last year’s number plus five percent
Preview clock — no video source set
Proof
Built inside working practices
Built by people who had billed a fixed fee, absorbed the difference, and only found out a year later which work had been worth doing.
Related modules
What feeds the bill
A recorded hour is only meaningful because four other things already exist. Those four are below; the rest of the platform sits around them on the same shared record.
Proposals
Where the fee comes from — the number every recorded hour is measured against.
See the proposals moduleEngagement letters
Where the scope is fixed, so “out of scope” is a defined thing rather than an opinion.
See the letters moduleJobs, tasks and deadlines
What a timer attaches to — real work, with an owner and a date.
See the jobs moduleReporting and analytics
Where recovery is read firm-wide rather than one job at a time.
See the reporting module