A Harvest retainer report your client can bookmark.
Harvest exports your Detailed Time CSV in two clicks. HourTab turns it into a public URL your retainer client opens any time — no login, no portal, no per-user seat. “How many hours do I have left this month?” answered before they ask.
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 are pulled straight from your Harvest Notes + Hours columns.
Why HourTab instead of a Harvest invoice or shared report
-
Harvest’s strength is invoicing. HourTab’s is in-cycle visibility.
Harvest tells your client what they owe at the end of the cycle. HourTab tells them where the cycle is right now — mid-month, not month-end. Different question, different answer.
-
Cycle-aware, not date-range-aware.
A Harvest report is a date range you picked. A retainer is a cycle — it resets. HourTab understands “20 hours / month, renews the 1st” and rolls the number over automatically. Your client sees this month, not whatever range you happened to export.
-
One URL per retainer, not per export.
Your Acme retainer and your Globex retainer each get their own public URL. Clients bookmark once. When you log new hours in Harvest and re-export the CSV, the URL they already bookmarked just updates.
-
No tracker lock-in.
Today it’s Harvest. If you switch to Toggl, Clockify, or a Google Sheet, HourTab accepts that CSV too. Same URL, same client, nothing to re-bookmark.
The flow, start to finish
-
1. Export from Harvest
Reports → Time → filter by the retainer client → Export → CSV. Two clicks. (Same flow Harvest users already use for client invoicing.)
-
2. Paste into HourTab
Drag the CSV into your HourTab retainer, or paste its contents. We auto-map Harvest’s columns (
Date,Notes,Hours) — no manual field picking. -
3. Send the URL once
One message to the client: “Here’s your always-current retainer page — bookmark it.” They do. They stop asking. You stop writing mid-month status emails.
Harvest + HourTab FAQ
Is there a native Harvest integration (OAuth)?
Not at v1. CSV is faster to first-value — no OAuth scopes to approve, no IT review at your client’s end, and Harvest’s CSV schema has been stable for years. Native Harvest OAuth is on the roadmap once we have paying Harvest users; reply to the early-access email and we’ll ping you when it ships.
What columns do you need from Harvest’s CSV?
Three: Date, Notes, Hours. Everything else Harvest exports (Client, Project, Task, First Name, Billable?, etc.) is ignored. If you filter your Harvest report by the retainer client before exporting, every row in the CSV belongs to one retainer — no server-side matching needed.
How does the client see updates?
Re-export the CSV in Harvest, paste the new version into HourTab, done. The public URL updates instantly. Most users do this once a week during their Friday admin block.
What if I bill weekly through Harvest invoices?
Keep doing that. HourTab is the in-cycle visibility layer; Harvest stays the invoicing layer. Your client gets the running number on the URL and the invoice in their inbox — same data, two purposes.
Does this work for fixed-fee projects, not just hourly retainers?
Sort of. If you’re tracking hours against a fixed-fee Harvest project (“this project is scoped at 40 hours”), HourTab works exactly the same way — set the cap, import the CSV, share the URL. The difference is just whether the cap resets monthly or when the project ends.
Your Harvest data. A URL your client actually opens.
One email when we launch. That’s the only one you get.