Retainer Tracker

Track monthly retainers, included hours, used hours, renewals, and rollover notes.

Auto saved
Retainers0
Active0
Monthly revenue$0.00
Hours left0.0
No retainers yetAdd monthly retainers and track included hours, used hours, renewal dates, and rollover notes.

Retainer Tracker for Freelancers - Monthly Hours, Deliverables, and Renewals

Local retainer tracker. Monthly hours, deliverables, and renewal dates.

Updated May 17, 2026
Share & Support

What's included

Features

Freelance retainer tracker for monthly fees, included hours, and used hours
Retainer renewal date tracking for upcoming client conversations and contract updates
Included deliverables field for monthly scope, support, reports, and maintenance tasks
Rollover notes for unused hours, expiration rules, and carry-forward limits
Active monthly revenue metric for current recurring freelance income
Hours-left metric across active retainers to spot overuse before billing issues
CSV export for retainer review and JSON backup for local IndexedDB data
Sample retainer records showing active and ending monthly agreements
No login or cloud storage required for private retainer planning
GitHub Gist Backup
Sync data across devices via a private GitHub Gist. Paste your token, click Sync - edits auto-backup every 10 seconds. Restore instantly on any device with the Gist ID.

About this tool

Track Monthly Retainers Before Hours and Deliverables Blur

Retainers are the most valuable revenue model in freelancing - predictable monthly income with a defined scope and a known client. They are also the most common source of quiet profit erosion when included hours creep beyond the monthly fee, deliverables expand without a conversation, or renewal dates slide past without a pricing review.

This retainer tracker gives you a local browser workspace for each monthly agreement: fee, currency, included hours, used hours, included deliverables, renewal date, rollover notes, and internal notes. The summary shows active monthly revenue, total remaining included hours, and retainers approaching renewal - the three numbers that matter most for retainer profitability monitoring. Everything is stored in IndexedDB on your device and is not uploaded anywhere.

Hours tracking is the core of retainer management. Enter included hours when the agreement is signed and update used hours throughout the month. The remaining hours metric across all active retainers tells you whether you are on pace to stay within scope or heading toward overuse. For detailed session-level tracking, use Time Tracker and update the summary here for the retainer-level view.

Deliverables clarify what the monthly fee actually covers. Use the deliverables field to list exactly what is included: monthly analytics report, three rounds of content edits, up to four support calls, weekly maintenance check, or whatever applies. Clear deliverables are the first defense against scope creep, because both you and the client have a written reference for what is and is not part of the retainer. Scope changes that fall outside the deliverables list go to Scope Creep Tracker.

Renewal tracking prevents the awkward expiry conversation. Add a renewal date to every retainer. When renewal approaches, you have time to review usage against the fee, decide whether to adjust pricing, prepare a scope update, or plan the conversation. A renewal call with data - here is what we accomplished, here is average hours used, here is the new rate for next term - is easier and more professional than a surprised client receiving a new invoice.

Rollover rules are often verbal agreements that get forgotten. Use the rollover notes field to record whether unused hours expire at month end, carry forward, or have a maximum rollover limit. When rollover questions come up mid-retainer, the answer is in the record rather than a search through old email threads.

Use alongside Time Tracker for session-level time entries, Local Invoice Tracker for monthly billing records, and Client CRM for relationship context. Export JSON backup before clearing browser data.

If you are a developer or designer freelancer looking to raise your rates through skill development, the React Playground, CSS Playground, and HTML Playground offer structured, interactive learning - no install, no setup required.

Step by step

How to Use

  1. 1
    Add the retainer agreementEnter the client, retainer name, status, monthly fee, currency, included hours, used hours, and renewal date.
  2. 2
    List included deliverablesUse the deliverables field for what the monthly fee includes, such as maintenance, reports, content edits, analytics reviews, or support calls.
  3. 3
    Track used hoursUpdate used hours during the month. The summary calculates remaining active retainer hours so you can see when a client is close to the cap.
  4. 4
    Record rollover rulesUse rollover notes for whether unused hours expire, roll over, or have a maximum carry-forward limit.
  5. 5
    Review and exportReview active revenue, renewal dates, and remaining hours. Export CSV for monthly review or JSON for backup and restore.
  6. 6
    Back up to GitHub Gist (optional)Click the GitHub icon in the toolbar and paste a personal access token with gist scope. Your retainer agreements sync automatically every 10 seconds after edits and are stored as a private Gist - restore on any device by entering the same token and Gist ID.
  7. 7
    Keep your Gist private — never store sensitive data in itGitHub private Gists are not truly encrypted — they are unlisted links. Anyone who has your Gist URL or Gist ID can read the full contents without logging in. Never share your Gist URL, Gist ID, or Personal Access Token with anyone. Avoid storing passwords, API keys, or highly sensitive credentials. For maximum privacy with no data leaving your device, skip Gist sync and use the Export and Import buttons to transfer files manually instead.

Real-world uses

Common Use Cases

Monthly retainer hours tracker
Track included hours and used hours for each client. This helps you catch overuse before the retainer becomes unprofitable.
Recurring freelance revenue tracker
See active monthly retainer revenue from current agreements. This is useful for planning baseline income before taking new project work.
Retainer deliverables checklist
Write what is included each month so support, reporting, maintenance, and revision expectations stay clear.
Rollover hours and renewal notes
Store whether unused hours expire, roll over, or are capped. Renewal notes keep agreement changes visible before the next billing cycle.
Client retainer relationship tracking
Use Client CRM for relationship notes and this tool for the actual agreement structure, usage, and renewal dates.
Private local retainer planner
Retainer values and client details stay in IndexedDB. Export JSON before clearing site data or moving devices.

Got questions?

Frequently Asked Questions

Create one retainer record per client agreement. Enter included hours, used hours, monthly fee, and renewal date. Update used hours during the month so you can see remaining capacity before the client exceeds the retainer.

Track client name, monthly fee, included hours, used hours, included deliverables, renewal date, rollover rules, and notes. These fields cover the main sources of retainer confusion: scope, time, renewal, and billing.

Yes. Use the rollover notes field to record whether unused hours expire, roll forward, or have a maximum cap. The tool does not automatically apply complex rollover math, but it keeps the rule visible.

Compare used hours against included hours. The summary shows remaining hours across active retainers, and each record shows the used and included values. If usage is consistently high, consider a higher monthly fee or a narrower scope.

Yes. CSV export gives you retainer fields in spreadsheet format for monthly review, client reporting, or manual analysis. JSON export is better for full backup and restore.

No. This tool tracks the retainer agreement and summary usage. Use Time Tracker for detailed session-level time entries, then update used hours here for high-level retainer visibility.

Yes. Add a renewal date to each retainer. Use it to plan contract updates, price increases, renewal calls, or ending notices before the current term expires.

Yes. Records are saved in IndexedDB in your browser. Export JSON before clearing site data, changing devices, or resetting your browser profile.

Yes - use the GitHub Gist backup. Click the GitHub icon in the header, paste a personal access token (gist scope only), and click Sync Now. Your data is saved as a private Gist and auto-syncs every 10 seconds after edits. On another device, paste the same token and Gist ID to restore.

GitHub "private" Gists are not encrypted — they are unlisted links. Anyone who has your Gist URL or Gist ID can read the full contents without needing a GitHub login. Never share your Gist URL, Gist ID, or Personal Access Token with anyone. Avoid storing passwords, API keys, or highly sensitive credentials. Use Gist sync for regular workflow data only. For maximum privacy with no data leaving your device at all, skip Gist sync and use the Export and Import buttons to move files manually via USB or your own encrypted storage.