How a day becomes data you can actually trust
LifeCopilot doesn't hand you a magic score. It turns raw activity into an explainable timeline through a transparent pipeline — every number can be traced back to the signals and rules behind it. This page goes under the hood: what is measured, how it's classified, and how it becomes projects, planning and insight.
From raw events to work sessions
Captured window and input events are merged into canonical work sessions — the single source of truth for every duration in the app.
Capture
Active window, title, input activity, AFK and IDE/browser metadata are recorded locally as timestamped events.
Merge
Consecutive events of the same app and project are joined when the gap is under 30 seconds (5 s across window-title changes).
De-duplicate
Duration is the union of intervals, not the span — overlapping sources never inflate your time, and AFK gaps under 60 s are absorbed.
Resolve
Each session gets a final category and project by majority rule; sessions shorter than 1.5 s are dropped as noise.
Persist
The merged timeline is rebuilt atomically and becomes the only surface reports and billing read — no double counting.
Three buckets, one honest formula
Every activity carries a productivity score from −1 to 1. Instead of a single opaque percentage, time falls into three buckets you can see and re-tune yourself.
Productive
Focused, value-adding work — your IDE, design tool, deep research.
Neutral
Supporting or uncertain work. Counted at half weight, so a neutral-only day never looks fully productive.
Distracting
Off-task time. AFK and idle are tracked separately, so they never silently pad the day.
score = (productive + neutral × 0.5) ÷ active timeScores are never summed event by event — they're weighted by real duration, so two overlapping windows can't double-count toward your day.
Classification with a paper trail
Every event is categorized by a transparent, ordered chain of rules — not a black box. The first matching rule wins, and you can always see which one fired.
- Domain overrides for canonical app ↔ site mappings.
- Your feedback overrides — per-app and per-domain scores you've corrected.
- Domain and category rules matching app, title, process or URL — highest priority first.
- Browser pinning and category defaults for anything still unmatched.
- Name-based fallbacks, and finally a neutral 0.40 default for the truly unknown.
It learns from your corrections
Fix a classification and it becomes a reusable per-app or per-domain override — or stays as one-off review evidence, your choice. Low-confidence segments are surfaced for review, ranked by how uncertain, long and recurring they are, and every prompt explains why it asked.
The units that make a day legible
Beyond raw time, LifeCopilot works with meaningful units you can review, confirm and bill against.
Attribution with a confidence score
Work is attached to projects and clients by a ranked chain of signals — each with its own confidence, so you always know how sure the agent is.
It reads context straight from window titles
The AI-coding blind spot, finally measured
Time spent with the AI coach and connected tools usually collapses into "a terminal window". LifeCopilot reads the agents' own local logs and turns that into real sessions, memory and context.
Real sessions, not "terminal.exe"
Local agent logs (JSONL / SQLite) become AI sessions with turns, tool and model — and the session's working directory attributes the work to the right project at ≈ 0.99 confidence.
Tokens, context and cost
Each turn's input, output and cache tokens are priced per model. Context usage shows as a share of the 200K window and is flagged when it runs above 70%.
Cost, not revenue
AI spend is treated as cost of work and shown separately from what you bill. Cursor's flat plan reports no per-call price, so only the time counts.
Detected agents
Only aggregates are stored — tokens, cost, model and working directory. Prompt and message content never touch the database.
What actually landed in the repo
A read-only scan of your local git repositories adds an output signal next to attention time — so "hours on a project" can be checked against real commits.
Commits & churn
Commits, insertions, deletions and files touched per project and day, scanned every 30 minutes from local .git only.
Attention vs output
When time-on-project and code output diverge, it's a hint of mislabeling or heavy context-switching to look into.
AI-assisted commits
A commit inside an AI session's window (±10 min, matching working directory) is tagged AI-assisted.
Stays on device
Only the first 80 chars of the message plus a hash are stored. No diffs, no file contents, nothing leaves your machine.
Money that follows the real day
Reviewed work segments roll up into projects, clients and tasks — and into invoices that can show why each block is billable.
Billable by project
Each segment inherits its project's billable flag and rate; work with no project stays non-billable until you assign it.
Projects, tasks, clients
Group work into projects and tasks, attach clients, and assign or split segments by day or custom range.
Reports & invoices
Period reports with top projects and top tasks, exportable, with billable totals broken down per client.
AI cost line
Per-segment AI spend rolls into project and report views as cost, kept clearly separate from gross revenue.
Plan the day, then measure adherence
Planned sessions and calendar context connect intention to what actually happened.
- Planned & recurring sessionsSchedule sessions, including recurring ones, and link the work that fills them back to the plan.
- Calendar & meeting contextMeetings provide context and can be linked to specific work segments and projects.
- Task deadlinesTasks carry deadlines, so planning and billing stay aligned with what's actually due.
- AdherenceCompare planned vs. actual: segments linked to a planned session show how closely the day matched intent.
Your day, in plain numbers
Everything above surfaces as readable insight cards and gentle momentum — never a leaderboard.
Numbered insights
"How your day went, in numbers" — cards grouped as positive, warning and info, including AI-agent time and deep-work notes.
Honest by design
Deep-work cards appear only when there's a real focus session; zero-length segments are never shown as work.
Streaks & XP
Daily and focus streaks with XP and freeze tokens keep momentum without turning work into a competition.