Scope Creep Tracker
Track original scope, change requests, approvals, and extra-billable work.
Scope Creep Tracker - Freelance Change Request and Approval Log
Local change request log. Compare new requests against agreed scope.
What's included
Features
About this tool
Track Client Change Requests Before They Become Unpaid Work
Scope creep is the most common profitability problem in freelance project work. It rarely starts as a big request. It starts as one extra page, one more revision round, a different integration than originally specified, or a feature that was assumed but never written down. Each individual change feels small. The cumulative effect is hours of unbilled work and a project that costs more to deliver than the proposal covered.
A scope creep tracker solves this by creating a visible record for every client request that goes beyond the agreed scope. You see the original agreement, the new request, and the gap between them. That visibility is what lets you make an informed decision: absorb the change, quote extra work, or push back clearly with a reference to what was agreed.
The original scope field is the anchor. Paste the relevant portion from the proposal, contract, email, or statement of work next to the new request. You do not need the entire document - just the section that defines whether the new request is inside or outside the agreed work. This makes the comparison concrete and removes the "I thought it was included" ambiguity that drains freelancer confidence in those conversations.
The approval workflow protects your billing. Use New when a request arrives, Needs quote when you have not priced it yet, Approved when the client accepts the extra cost, Declined when they withdraw the request, or Included when you choose to absorb a small change. Approved changes carry an extra amount field, and the summary totals approved extra value across all records. That running total is what you review before updating an invoice.
The decision log creates a paper trail. Use it for email summaries, verbal approval notes, meeting outcomes, and dates. When a billing question comes up three weeks later - "I thought that was included" - the decision log shows exactly when and how the change was discussed and approved. This is the kind of record that prevents disputes from becoming relationship-damaging arguments.
Use this tool after scope is defined in Proposal Builder or Contract Template Manager. Log changes as they arrive during the project. Review approved extra-billable amounts before creating or updating invoices in Local Invoice Tracker. 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
- 1Create a project change recordEnter the project name, client, and the client request. Keep the request wording close to what the client actually asked for so it is easy to reference later.
- 2Paste the original scopeAdd the relevant original scope from the proposal, contract, email, or project brief. This makes it clear whether the new request is included, unclear, or outside the agreed work.
- 3Set approval statusUse New, Needs quote, Approved, Declined, or Included. Needs quote is useful when you have not priced the request yet, while Included is useful for small changes you choose to absorb.
- 4Track extra-billable valueWhen a change is approved, enter the extra amount and currency. The dashboard totals approved extra value so you can review billing impact before invoicing.
- 5Keep a decision logUse the decision log for approval notes, dates, email summaries, meeting outcomes, and why the change was included or billed. Export CSV or JSON for records.
- 6Back up to GitHub Gist (optional)Click the GitHub icon in the toolbar and paste a personal access token with gist scope. Your scope change records 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.
- 7Keep 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
Got questions?
Frequently Asked Questions
Track each new client request separately, compare it against the original scope, decide whether it is included or needs a quote, and record the decision. This tool gives you fields for the request, original scope, approval status, decision log, and extra amount. That creates a local record before the change becomes unpaid work.
Scope creep is any request that adds work beyond what was agreed: extra pages, additional revisions, new integrations, expanded deliverables, faster timelines, or new formats. Some changes are small enough to include, but they should still be visible. Tracking them helps you see patterns and protect project profitability.
Reference the original scope, explain what the new request adds, and provide a clear option: quote it as extra work, swap it for something else, or schedule it for a later phase. A decision log makes that conversation easier because you can point to the exact request and agreed next step.
Yes. Set the request status to Approved and enter the extra amount. The summary metrics total approved extra value, which you can review before adding the charge to Local Invoice Tracker.
It is a lightweight tracker, not a legal document. It helps you organize requests and approvals, but you may still need a formal change order or contract addendum for larger projects. Use the exported data as supporting context.
Paste the relevant portion from your proposal, contract, email, or statement of work into the Original scope field. You do not need the entire document, only the part needed to judge the new request.
Yes. Export CSV for a spreadsheet view or JSON for a full backup. CSV is useful for end-of-project review, while JSON is better if you want to restore the tool data later.
No. Records are stored locally in IndexedDB. Client names, decision notes, and extra-billable amounts stay in the browser unless you manually export and share a file.
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.
Yes — if your only project management pain point is scope creep and unbilled extra work, this tool is a focused alternative to using Asana, Basecamp, or Notion just to track change requests. Log the original scope once, then add each client request with its approval status and extra amount. Export CSV for invoicing or client disputes. No subscription, no login.