Blog · June 3, 2026 · ~7 min read
MyHours alternative for retainer tracking: what freelancers need that MyHours doesn’t cover
If you searched “MyHours alternative” because you’re running retainer clients and your clients keep asking how many hours they have left, you’re dealing with a tool-job mismatch. MyHours is built for a specific job: logging time and getting clients to approve that time before you invoice. That’s billing verification, and it does it well. But the retainer client’s question—“how many hours do I have left this month?”—is a different job entirely, and one that MyHours doesn’t answer.
What MyHours actually is
MyHours is a time tracking tool built around a client approval workflow. The core sequence: you log hours against projects and clients throughout the week, then at the end of a period you send the client a time report. The client reviews what you logged, approves it (or flags anything that looks wrong), and then you generate the invoice. The approval step is the thing that sets MyHours apart from basic time trackers—it closes the loop between “I logged this” and “my client agrees that’s what happened.”
It also has project budget tracking. You can set a budget for a project or client in hours or dollars, and MyHours will warn you as you approach it. For fixed-price projects and project-based billing, that budget visibility helps keep scope creep visible before it turns into a conversation about overages.
The client-facing feature MyHours provides is the approval report: a structured summary of logged hours the client can review and sign off on. That’s a document, delivered at billing time, for a specific purpose. It’s not a live status surface.
The retainer-tracking job MyHours doesn’t do
Hours-cap retainers—20 hours per month at $100/hr, for example—create an information need that surfaces continuously throughout the cycle, not just at billing time. The client has a monthly allowance. At any point during the month, they may want to know how much of that allowance remains before they submit the next request.
That question—“how many hours do I have left this cycle?”—is a mid-cycle, forward-looking question. It’s not “please confirm the hours I logged were correct” (that’s MyHours’ job). It’s “I’m considering submitting more work and I need to know if the budget allows it before I ask.”
Answering that question requires three things that MyHours doesn’t have:
- A billing-cycle primitive — not a project budget, not a cumulative total, but a per-cycle cap that resets on a fixed date each month. MyHours tracks project budgets and running totals. It doesn’t know that this client’s 20-hour allowance resets on the 1st and that hours from January don’t carry into February’s balance.
- A live, self-serve status view — something the client can check any time without requesting a report, waiting for the freelancer to respond, or logging into a tool they use for something else. MyHours’ client approval flow is triggered by the freelancer sending a report. The client can’t check their own balance between reports.
- No-login access — clients who can check their own retainer balance without creating an account, remembering a password, or navigating portal software are clients who stop emailing to ask. The friction of a login—even a simple one—means many clients don’t check and ask instead.
These aren’t gaps that could be closed with a different MyHours setting or a custom report template. They reflect a different job. MyHours was built to close out billing periods accurately. Retainer visibility needs to be open and accessible throughout the period.
Billing verification vs balance visibility: two different client needs
The clearest way to see the gap is to look at the timing of each need.
MyHours serves the end-of-period client need: the invoice is ready, here is the time log behind it, please confirm the hours before I bill you. The client’s job is to look backward—review what happened, verify accuracy, and approve. This happens once per billing period, triggered by the freelancer. The client is a reviewer.
Retainer balance visibility serves the mid-cycle client need: I’m thinking about submitting a new request, how much of my monthly allowance is left? The client’s job is to look forward—decide whether to act before the cycle resets, whether to pace requests differently, whether there’s enough budget for what they want to ask. This happens on the client’s schedule, potentially multiple times a week. The client is an active user checking a status.
One is a review document. The other is a dashboard. MyHours does the first; it has no mechanism for the second.
The “how many hours do I have left?” email exists because clients want to be forward-looking but have no self-serve way to be. They’d rather check a bookmark than send an email. The email arrives because there’s nothing to check.
Three things retainer visibility actually needs
1. A per-cycle balance, not a project running total
The number that answers the retainer client’s question is not how many hours you’ve ever logged for them. It’s how many hours remain in the current billing cycle before the cap resets.
If a client is on a 20-hour monthly retainer and you’ve logged 14 hours since the 1st, the relevant number is 6—hours remaining this cycle. Not 14. Not your lifetime total for this client. Not the running project budget percentage. Just: how many hours of this month’s allowance haven’t been used yet.
MyHours can show you how many hours you’ve logged for a client. It can show you whether you’re approaching a project budget. It can’t show you the cycle-specific balance, because billing cycles aren’t a data structure it carries. You’d have to manually filter time entries to the current cycle dates and do the subtraction yourself each time a client asks.
A tool built for retainer tracking makes the cycle balance the primary display. The client sees one number: hours used this cycle, hours remaining, cap, reset date. Not a report. A number.
2. A progress bar, not a timesheet table
MyHours’ client-facing output is a structured table of time entries: date, project, task, hours, notes. That format serves the approval use case—the client can match each row to their memory of the work and confirm it was logged correctly. It’s the right format for billing verification.
The retainer client checking their balance mid-cycle doesn’t want a table. They want a single glanceable number: how much is left. The format that communicates that instantly is a progress bar—a fat bar showing 14 of 20 hours filled in, with 6 hours of empty space remaining. The visual shape carries the information before the client reads a single number. A 70% full bar means something different than a 90% full bar, and they communicate that difference in under a second.
Clients who can see a progress bar don’t ask the hours question. They already know the answer in the time it takes to look at a web page. Clients who would need to find, open, and parse a time report to answer the question take the easier path: they send an email.
3. No login required
MyHours has client-facing features—the approval report flow—but those features are accessed through the MyHours product. The client needs a MyHours account, or at minimum receives a report link that takes them into the approval workflow.
That’s appropriate for billing sign-off—you want a documented record that a specific client approved a specific invoice’s time log. Authentication makes sense there. But for mid-cycle balance checking, authentication is pure friction with no benefit.
The client checking their retainer balance doesn’t need to be verified. They’re not approving anything. They’re looking at a number that’s already public within the client relationship. Making them log in to see their own remaining hours adds a step that reduces how often they check, which means they ask more often instead.
A public URL—one link per retainer that the client bookmarks at onboarding—removes that friction entirely. The client opens a bookmark and sees their balance. No account, no password, no navigating through approval workflows to find the status page. The lower the friction, the more they self-serve, the fewer emails you receive.
When MyHours is the right tool
To be direct: MyHours solves a real and important freelance problem. If your billing disputes come from clients questioning whether the logged hours were accurate, MyHours’ approval workflow addresses that directly. The client gets a formal opportunity to review before the invoice goes out, and you get documented sign-off. For project-based work where scope and hours are contested, that paper trail matters.
It’s also a solid general time tracker. The logging interface is clean, the project and client structure is sensible, and the budget-tracking feature works reasonably well for fixed-scope engagements where you need to know when you’re approaching a ceiling. If you work primarily on projects with defined scopes and want client approval before invoicing, MyHours is built precisely for that workflow.
The limitation only surfaces when the engagement is a retainer—when the relationship is “you have 20 hours per month, here’s a URL showing your balance” rather than “this project costs $X and here’s what I logged before the invoice.” Those are different commercial relationships, and they need different tool shapes.
If your client mix is mostly project-based with some retainers mixed in, you may run both tools for their respective jobs, or you may outgrow the MyHours workflow once retainers become the primary billing model. The deciding signal is usually the first time a retainer client emails to ask their balance—that’s the moment a review-document tool and a live-status tool stop being interchangeable.
Using both: MyHours for billing approval, HourTab for what the client sees mid-cycle
For freelancers who run mixed billing models—some project clients, some retainer clients—there’s a clean division of labor between the two tools.
MyHours handles the billing verification layer: all time gets logged there, project clients get the approval report workflow before invoicing, and you have a clean audit trail for every engagement. That’s the back-of-house job—making sure the numbers are right and documented.
HourTab handles the client-visibility layer for retainer clients specifically: the freelancer imports the cycle’s logged hours from a CSV export, and the client URL updates to show the current balance. The retainer client bookmarks the URL at onboarding and checks it themselves whenever the question occurs to them. They never need to ask.
The standard retainer management stack for most solo freelancers has three layers: a time tracker to log hours, a billing tool to handle invoicing and payment, and a client-visibility layer to answer the live status question. Most tools cover the first two layers and skip the third. MyHours overlaps the first two layers; HourTab is a pure Layer 3 tool. They complement rather than compete.
The workflow is low-friction: log time in MyHours as you normally would, export a CSV for any retainer client, import that CSV into HourTab, and the client URL is current. The retainer client’s balance updates without you sending anything. Your MyHours workflow for project clients is unchanged. The two tools run in parallel for different client types.
For freelancers who are only running retainer clients, you may not need MyHours at all. Any time tracker—Toggl, Clockify, or even a spreadsheet—can produce the CSV that feeds HourTab. MyHours’ approval workflow adds value when clients need to sign off before billing; if retainer clients pay a flat monthly fee regardless of exact hours logged within the cap, the approval step is overhead that doesn’t serve either party.
The question to ask: does my client need to approve the timesheet, or do they need to see their balance? Approval-focused clients get MyHours. Balance-checking clients get a HourTab URL. Many retainer clients want both at different points in the cycle—balance visibility throughout, approval confirmation at the end. Splitting the jobs across purpose-built tools keeps each one simple. As the HourStack alternative framing makes clear, the best tool for each layer is the one that was built specifically for that layer’s job.
Set up the HourTab URL at onboarding—before any hours are logged, when the balance shows 0 of 20—and the client learns where to look before they develop the habit of asking. That first onboarding moment is the highest-leverage intervention in stopping the status email. Once the client has a bookmark and knows it stays current, the question stops coming.
HourTab gives every retainer client a live URL showing their current cycle balance—hours used, hours remaining, the per-cycle work log, and the next reset date. Import a CSV from any time tracker (including a MyHours export) and the URL is ready. The one job MyHours doesn’t do: give your retainer client a public link they can bookmark and check themselves, mid-cycle, without logging in. Start free with one retainer.