
Most automated time tracking setups fail in one of two predictable ways. Either the user writes rules so hyper-specific that the slightest change in file naming causes half the week's work to land in an unassigned bucket, or they write rules so broad that five completely unrelated client accounts get dumped into a single generic project.
A well-designed tagging setup is worth thirty minutes of focused attention once. After that initial setup, it should either run silently in the background without daily intervention, or it was configured incorrectly from the start.
Start from the Client, Not the App
The most common mistake when setting up tagging rules is organizing by software application.
Creating a rule that maps your code editor to "Development" and your browser to "Research" provides virtually no value when invoicing clients. At the end of the month, your clients do not care how many hours you spent inside a text editor; they care how many hours were dedicated specifically to their deliverables.
Begin by setting up a dedicated profile for each client or major internal initiative. Under each client, define specific projects corresponding to distinct contract deliverables or billing rates. Your tagging rules should map directly to these project boundaries rather than generic application categories.
The Three Signals Worth Tagging On
A durable tagging configuration relies on three distinct desktop signals:
1. Distinctive Window Title Keywords
Every desktop window title contains descriptive text about the active document, task, or file. Add keywords that are uniquely tied to a specific client engagement:
- Project code names (e.g.,
Apollo,Starlight) - Repository directory names (e.g.,
client-frontend,billing-service) - Client document prefixes (e.g.,
Acme_Contract,Acme_Design_Spec)
Whenever an editor, terminal, or PDF reader displays that keyword in its title bar, the session is attributed directly to that client project.
2. Website Domains and Subdomains
Web browsers host work for multiple clients concurrently. Rather than matching on the browser itself, match on the specific web domains associated with each account:
- Client staging environments (e.g.,
staging.acme.com,dev-portal.acme.internal) - Project management boards (e.g.,
linear.app/acme,trello.com/b/AcmeBoard) - Dedicated production dashboards or client portals
3. Dedicated Applications
If a client requires you to communicate through a dedicated communication channel or use a proprietary software tool that is not shared with other accounts, map that specific application directly to the project.
Rules That Age Badly
To keep your rules working smoothly over months, avoid common anti-patterns:
- Matching on overly generic words: Adding single words like
test,app,design, orapiwill cause unrelated tasks across all your clients to trigger false matches. Keep keywords specific to the client's distinct identity. - Matching on fragile folder paths: If you match against a full directory path like
/Users/name/Projects/2026/Q1/Acme/src, any future file reorganization breaks the rule immediately. Match on the stable repository or project folder name instead. - Creating one rule per individual task: Do not create rules for specific bug tickets or minor sub-tasks. Tagging rules should operate at the project level, leaving granular activity details to your timestamped session logs.
Let Corrections Do the Rest
You do not need to anticipate every possible document title or staging subdomain on day one.
When an activity contains ambiguous context that does not match an existing rule, Threshyr holds that time back as unassigned rather than guessing. When you open the day view and assign that block to its appropriate project, Threshyr saves that correction as a permanent rule.
The system learns the new pattern automatically. Over time, your tagging system becomes more complete with almost zero proactive configuration.
For the billing workflow this feeds into, see how to track billable hours across multiple clients.
Check It After a Week
After running Threshyr for one full work week, perform a five-minute health check on your setup:
Open the activity timeline and look at the ratio of assigned project time versus unassigned time. In a well-calibrated setup, seventy to eighty percent of your billable workday will be assigned automatically without manual intervention.
If you find that most of your time remains unassigned, your keyword rules are likely too narrow. Add one or two broader repository or domain terms. If you find time attributed to the wrong client, check for overly generic keywords and tighten the matching phrases.
Once calibrated, your tagging rules run silently in the background, keeping your client billing balances accurate without demanding your ongoing attention.
Download Threshyr for Windows and macOS at /download to set up automatic project tracking with complete local privacy for $29 per year during pre-release.
Written by Affan Bajwa
Founder of Threshyr. Passionate about local-first software architecture, developer productivity, and building privacy-first tools for knowledge workers.
Track your time automatically. Without the cloud.
No timers to click. No cloud tracking. Your private window titles and project logs stay on your machine forever.
Available for Windows & macOS • Pre-release at $29/yr
Related Articles

How to Read Your Week and Actually Change It
How to extract actionable decisions from your weekly time tracking reports without falling into the trap of obsessing over raw productivity scores.

How to Track Billable Hours Across Multiple Clients
Learn how to accurately track billable hours across multiple clients using automatic tagging rules and window titles without touching a manual timer.