A FreshBooks retainer tracker your client can bookmark.
FreshBooks tracks the time and ships the monthly invoice. The four weeks between invoices are when clients ask “how many hours do I have left?” HourTab is the URL you send once that answers it — no portal, no client login, no second tool for them to learn.
Free forever for your first retainer · no credit card · CSV in, URL out.
What your client sees
- Oct 3 API sync debug 3h
- Oct 7 Onboarding call 1h
- Oct 12 Landing copy revisions 2h
- Oct 18 DB migration review 4h
- Oct 22 Weekly status 2h
One URL per retainer. Bookmarked once, always current. The item rows come straight from FreshBooks’ Time Tracking export — Date, Notes (or Service), and Duration.
Why HourTab instead of FreshBooks’ client portal
-
FreshBooks shows invoices. HourTab shows the cycle in flight.
FreshBooks’ client portal is built around invoices — what was billed, when, and whether they paid. A retainer client’s mid-month question is the opposite: “am I about to run out?” HourTab leads with hours-remaining; FreshBooks already owns the billed/paid layer below.
-
No client login. No invitation. No password reset email next month.
The FreshBooks client portal is a real account — clients have to register, they get password-reset prompts, and half of them never log in twice. HourTab’s URL is just a URL: open in any browser, no account, no friction. Bookmark once, never re-authenticate.
-
One URL per retainer, not one client portal per client.
Different clients on different retainer shapes (20 hrs / 10 hrs / 40 hrs, monthly / quarterly resets). Each gets their own permanent URL, scoped to their retainer. Update one CSV; only that one client’s page changes. No accidental cross-client visibility.
-
Stays useful even if you ditch FreshBooks later.
If you switch to Toggl, Harvest, Clockify, a Google Sheet, or hand-typed time entries, HourTab takes that CSV too. The URL your client bookmarked doesn’t care which tool generated the data. Toolchain mobility is built in.
The flow, start to finish
-
1. Export from FreshBooks
Time Tracking → Reports → Detailed Time → pick the cycle date range and the client/project → Export → CSV. Two screens. Available on every FreshBooks plan that includes time tracking (Lite and up).
-
2. Paste into HourTab
Drag the CSV into your HourTab retainer or paste its contents. We auto-map FreshBooks’ standard time-export columns (
Date,Notes,Duration) — no manual field setup, no template install. -
3. Send the URL once
One Slack/email/text to the client: “Bookmark this — it’s your live retainer page, always current.” They do. They stop emailing you mid-month. You stop writing “you have 6 hours left” replies on a Tuesday afternoon.
FreshBooks + HourTab FAQ
Which FreshBooks plan do I need?
Any plan that includes time tracking — Lite, Plus, Premium, and Select all do. The Detailed Time report and the CSV export are not gated to higher tiers. If you’re on classic FreshBooks (the older interface), the export lives under My Account → Reports → Time Entry Details.
What columns do you actually need?
Three: Date, a description (FreshBooks calls this Notes on the Detailed Time report; some exports label it Service), and Duration (in either h:mm or decimal — we accept both). FreshBooks exports a wider set of columns (Client, Project, Team Member, Billable, Rate, Amount); we ignore them for the retainer view. Filter the report to one client / project before exporting and every row in the CSV belongs to one retainer cycle.
Doesn’t FreshBooks already have a client portal? Why a second URL?
The FreshBooks portal is a great invoicing inbox — sent invoices, paid invoices, retainers as a billing object. What it doesn’t show your client (without making them dig) is the in-cycle hours burn-down: where are we right now, halfway through the month? HourTab is the “halfway through the month” view. The two coexist; if anything HourTab reduces FreshBooks portal logins, because the routine status question is already answered.
Can I run a retainer in FreshBooks AND have a HourTab page for the same client?
Yes — that’s the standard setup. FreshBooks owns the contract, the recurring invoice, and the retainer billing object. HourTab owns the public “hours used vs hours bought” URL the client looks at between invoices. They never need to cross.
How does the client see updates?
Re-export the FreshBooks Detailed Time report (same two screens), paste the new CSV into HourTab, done. The public URL updates instantly — same link, new numbers. Most retainer-running freelancers do this once a week during their Friday admin block; some refresh after every billable session. Either is fine — the URL always reflects the last paste.
Your FreshBooks time. A URL your client actually opens.
One email when we launch. That’s the only one you get.