Blog · July 10, 2026 · ~9 min read

What is a retainer hours-remaining URL?

A retainer hours-remaining URL is a permanent, public web link a freelancer shares with a retainer client. The client bookmarks it, opens it any time mid-cycle, and sees exactly how many hours have been used, how many remain, and when the billing cycle resets — no login, no email to the freelancer, no waiting for the next invoice.

The problem this solves

Most retainer arrangements work like this: a freelancer and client agree on a monthly hours cap (say, 20 hours at $80/hour = $1,600/month). The freelancer logs time in a tracker. At the end of the month, the freelancer invoices for the hours worked. The client pays.

The gap in this workflow is mid-cycle visibility. The client often has no way to check their hours status between invoices. They know roughly what they are paying for and roughly how much work is happening, but they do not have a precise, real-time view of hours used and hours remaining until the invoice arrives.

This creates two recurring friction points:

Status emails. Clients who want mid-cycle information email the freelancer to ask: “Where are we on hours this month?” The freelancer stops what they are doing, pulls the numbers from their time tracker, and writes a reply. Multiply this by the number of retainer clients asking once or twice per billing cycle, and the overhead is measurable.

Invoice surprise. When the first piece of hours data a client sees is the total on the invoice, any deviation from what they expected becomes a conversation. Not necessarily a confrontation, but a friction point: “I didn’t realize we were using so much on the SEO audit.” The invoice becomes a data delivery event rather than a simple payment request.

A retainer hours-remaining URL solves both. The client has the URL. They open it when they want an update. There is nothing to ask for, nothing to send, and no surprises at invoice time because the client has been watching the hours accumulate throughout the cycle.

What a retainer hours-remaining URL contains

The URL is a single web page, typically sparse by design. It shows the client exactly what they need to check their status and nothing more:

A visual progress bar. The bar spans the width of the page and fills from left to right as hours are used. The color typically changes as the retainer fills — green in the early burn-down, amber approaching the cap. The bar communicates status instantly without requiring the client to read a number and compare it to the monthly total in their head. A client opening the URL on their phone while in a meeting can absorb the status in under two seconds.

The exact hours count. Below the bar: “14 of 20 hours used • 6 hours remain.” This is the precise number a client needs before submitting a new work request mid-cycle. They can see whether the scope of what they want to request fits in the remaining hours or whether it should wait until the cycle resets.

The cycle reset date. “Cycle resets August 1.” Six hours remaining reads differently depending on whether the reset is three days away or three weeks away. With three days left and six hours remaining, the client probably holds a large request. With twenty days left and six hours remaining, the client might accelerate work on a priority item. The reset date is what makes the hours number interpretable in context.

The work log. A chronological list of time entries: date, task description, and duration. This is the client’s record of what the hours were spent on. It answers the question “what have we actually done this cycle?” before it becomes a question at invoice time. If a client is surprised by the hours total in a given week, they can check the work log and see exactly which tasks contributed.

How it differs from a client portal

Most invoicing tools and CRM platforms provide some form of client portal — a login-gated page where clients can view their invoices, payment history, and sometimes project notes. A retainer hours-remaining URL is fundamentally different from a client portal in several ways:

No account required. A client portal requires the client to create an account with the invoicing platform, remember a password, and log in each time they want to check their status. A retainer hours-remaining URL is public — not searchable or listed anywhere, but accessible to anyone with the link. The client bookmarks the URL once and opens it directly. There is no login screen between the client and their status.

Focused on current status, not transaction history. A client portal typically surfaces invoices, payment records, and contract documents. It is designed around the completed transaction. A retainer hours-remaining URL is designed around the in-progress cycle — the live question of “how many hours do I have left right now?” The two tools serve different information needs.

Optimized for mobile access. A client portal often carries the full UI of the invoicing platform, which can be table-heavy and slow to load on mobile. A retainer hours-remaining URL is typically a minimal, single-purpose page designed to answer one question fast. A client checking from their phone while outside gets a readable answer in under three seconds.

No platform dependency for the client. A client who has never heard of your invoicing tool does not need to engage with it to access their retainer status. The URL works in any browser without installation, without account creation, and without any knowledge of the tool that powers it on the freelancer’s side.

How a retainer hours-remaining URL is generated

The most common workflow uses a time-tracker CSV and a dedicated tool:

Step 1: Log time in whatever tracker you use. Harvest, Toggl, Clockify, Zoho Invoice, FreshBooks, a spreadsheet — wherever you already track hours. You do not need to change your time-tracking workflow.

Step 2: Export a CSV of the current cycle’s time entries. Most time trackers can export a filtered CSV of entries by client and date range. You export the entries for the current billing period for a specific retainer client. The file contains rows with at minimum: a date, a task description, and a duration.

Step 3: Upload the CSV to a retainer dashboard tool. Tools like HourTab take the CSV, let you set the client’s monthly hours cap and billing cycle dates, and generate a permanent URL. The URL is stable — it does not change when you upload a new CSV. Each upload refreshes the data at the same URL.

Step 4: Share the URL with the client once. You send the URL to the client at the start of the retainer. They bookmark it. As the cycle progresses, you periodically export a new CSV and upload it to refresh the client view. The client’s bookmark always shows the most recently uploaded data.

The upload cadence is the freelancer’s choice. Some update the URL after every work session. Others update weekly, or after completing significant tasks. The key property is that the URL is always there — the client does not need to ask for a new link, a new report, or a new email. The answer to “where are we on hours?” is already bookmarked.

From the client’s perspective

Understanding how a retainer client actually uses this URL clarifies why the format matters.

A retainer client typically has one recurring question about their retainer: “How many hours do I have left?” They ask this question before submitting a new work request, before a scope conversation, when deciding whether to push something to next month, or simply when the monthly billing statement arrives and they want to understand what they are paying for.

Without a URL, answering this question requires contacting the freelancer. With a URL, the client opens their bookmark. The answer is there. They do not need to interrupt the freelancer, wait for a reply, or feel awkward asking a question that might seem like they are checking up on someone.

For clients who are less assertive about billing questions, the URL removes the social friction of asking. A client who is hesitant to email “hey, where are we on hours?” for the fourth time this year will simply open the bookmark instead. The result is a client who is better informed about their retainer status, which leads to fewer billing surprises, smoother renewal conversations, and better self-regulation of scope.

The URL also reframes the client’s mental model of the retainer. Instead of “I pay $1,600/month and things get done,” the client thinks in terms of hours: “I have 20 hours per month and 6 are remaining. The feature spec I want to submit will take about 8 hours, so I should plan for next month.” This kind of informed client is dramatically easier to work with at billing and renewal time.

Who uses retainer hours-remaining URLs

This type of tool is specifically useful for freelancers billing hourly retainers — arrangements where the client pays for a set number of hours per month and those hours are tracked against a cap.

It is less relevant for:

Flat-fee retainers. If the client pays a fixed amount per month regardless of how many hours are tracked, there is no “hours remaining” concept. The retainer does not have a cap. A URL showing hours would not have an obvious use.

Project billing. One-time project engagements are scoped up front and billed against milestones or on completion. Mid-cycle hours visibility is less relevant because the client’s question is “where are we on the project?” rather than “how many monthly hours do I have left?”

Internal teams. A team lead tracking hours across employees does not need a client-facing URL — they have access to the internal time tracker directly.

The primary audience is independent consultants, designers, developers, copywriters, content strategists, and marketing freelancers who bill monthly retainers on an hourly basis and have more than one or two retainer clients. The hourly retainer model is especially common in these fields because clients want ongoing access to expertise without the overhead of hiring full-time.

How this differs from a PDF report or email update

Some freelancers solve the mid-cycle visibility problem by sending weekly or bi-weekly PDF status reports or summary emails to retainer clients. The retainer hours-remaining URL is fundamentally different from this approach:

The URL is on-demand, not scheduled. A PDF report is sent at a fixed interval regardless of whether the client wants it at that moment. The URL is available whenever the client needs it, not on the freelancer’s reporting schedule. A client who wants a status check at 11pm on a Sunday has it available without sending an email.

The URL does not go stale in the client’s inbox. An email update from two weeks ago is historical. The URL is current as of the last upload. The client does not need to scroll through email to find the most recent report.

The URL requires no document management on either side. A PDF report requires the freelancer to generate a new document on a schedule and the client to store and locate it. The URL requires neither. The same bookmark works for the entire duration of the retainer relationship.

The freelancer controls the update cadence. Unlike a scheduled report, the URL updates when the freelancer uploads a new CSV. If a week was busy and hours moved substantially, the freelancer can upload a refresh mid-week. If a week was quiet, there is nothing to update.

For context on how retainer client communication works more broadly — and how a hours-remaining URL fits into a larger communication system — the retainer client communication guide covers the full workflow from project kickoff through renewal.

Common questions

Does the client need to log in? No. The URL is public — not searchable or indexed, but open to anyone with the link. No Zoho account, no Harvest login, no new app for the client to install. The URL is the access credential. Only the client and anyone they share the link with can see it.

What happens when the billing cycle resets? At the start of each new billing cycle, the freelancer uploads a new CSV with the current cycle’s entries. The URL resets to reflect the new cycle. If the freelancer uses a tool like HourTab, the cycle reset date is configured in the tool and the display updates automatically when new data is uploaded.

Can the client see costs, not just hours? Typically a retainer hours-remaining URL shows hours only, not billable amounts. The client knows the hourly rate from the contract; the hours remaining URL tells them how many hours remain, not the dollar value of those hours. Some implementations show a dollar value if configured, but the default is hours.

What if the client goes over the monthly cap? The URL shows the overage. If a client has a 20-hour retainer and 22 hours are logged, the progress bar reflects 110% usage and the hours count shows the overage. This is typically a prompt for the freelancer and client to discuss overages before the invoice arrives, which is more comfortable than discovering the overage on the invoice.

Does the URL work across retainer clients? Each retainer client gets their own URL. A freelancer with four retainer clients has four separate URLs, each configured with that client’s specific hours cap and billing cycle dates. The client only sees their own URL.

For a deeper look at why the retainer reporting workflow matters from the client relationship perspective, the retainer client reporting post covers what clients look for in mid-cycle visibility and how different reporting approaches affect billing friction and renewal conversations.

Tools that provide this

HourTab is a purpose-built tool for generating retainer hours-remaining URLs. The workflow is CSV in, URL out: upload a time-tracker export, set the hours cap and cycle dates, and get a permanent URL to share with the client.

HourTab is not a time tracker and does not replace whatever tool you use to log hours. It is a display layer that sits between your time tracker and your client. You continue logging time in Harvest, Toggl, Clockify, FreshBooks, or any other tool. You periodically export a CSV and upload it to HourTab to refresh the client view.

The free tier of HourTab covers one active retainer — enough to test the workflow with one client and see whether the URL actually reduces status-update emails and billing friction. Expanding to additional clients requires the Solo plan at $9/month.


HourTab turns any time-tracker CSV into a retainer hours-remaining URL your client can bookmark. No login required for the client. No new time-tracking workflow for you. Start free →