``` Help | TrackDots – AI Productivity & Time Tracking Software
Start Free Trial

Help & Documentation

How TrackDots tracks, measures, and calculates analytics

How tracking works

TrackDots uses a lightweight background agent that runs on the employee's Mac. It monitors activity signals every 10 seconds and syncs data to the server every 3 minutes.

What the agent collects

  • Keystroke count — total keys pressed (not content)
  • Mouse clicks — total click count
  • Mouse distance — total pixels the mouse moved
  • Active application — foreground app name at each tick
  • Screenshots — one per block (~every 10 min), compressed WebP
  • System idle time — from macOS directly
🔒 TrackDots never records what you type — only the count of keystrokes. Screenshots are compressed to max 1600×1000px at 70% quality.

Activity blocks CORE CONCEPT

An activity block is a 10-minute window of recorded activity — the fundamental unit of all analytics.

Each block stores: start/end time, key count, mouse clicks, mouse distance, primary app, window title, idle flag, and a screenshot.

Primary app

The app with the most active ticks during the block wins the "primary app" label. If VS Code was active for 35 of 60 ticks and Chrome for 25, the block is labelled VS Code.

Idle blocks

Marked idle if system idle time exceeds 5 minutes at block finalisation. Excluded from productivity scores but visible in the work diary.

Overlap guard

If two blocks overlap by more than 50% of the incoming block's duration, the newer block is discarded. This prevents duplicate entries from multiple agent processes.

Window title tracking NEW

The agent captures the active window's title at each 10-second tick. The most frequent window title during the block is stored alongside the app name.

What this shows

  • In Chrome or Safari — the title reflects the active browser tab (e.g. "GitHub – Pull Request #42")
  • In VS Code — the open file name and workspace (e.g. "views.py — TrackDotsBackend")
  • In other apps — the document or window name

The window title is shown in the Work Diary block card and in the screenshot lightbox. It gives managers context about what the employee was working on within an app — not just which app was open.

🔒 Window titles may contain sensitive information. TrackDots stores only the title string — no document content, URLs with query strings, or passwords are extracted from window titles.

Tasks KEY FEATURE

Employees must enter a task name before starting a session — this is required, not optional. The task is shown in the app's main window and recorded as a task session on the backend.

Task sessions

A task session records: the task name, start time, end time, and duration. When a task changes, the previous session is closed and a new one opens automatically with no gap in tracking.

Completing a task

Click the green Done button next to the task input to mark the current task complete. The input clears and refocuses — enter the next task immediately to avoid untracked time. Completed tasks appear with a strikethrough in the work diary.

Task time breakdown

The Tasks tab in the Work Diary shows a doughnut chart of how tracked time was distributed across tasks. Each activity block's time is attributed to whichever task(s) overlapped it. Any block with no matching task appears as "Untracked".

⚠️ Leaving the task field blank after completing a task creates an "Untracked" gap. Always enter the next task before the next block finalises (10 minutes).

Login & account UPDATED

You can sign in using either your username or your email address — both are accepted on the login form.

Organisation name in the sidebar

Once logged in, the sidebar shows your organisation name below the TrackDots logo. This confirms you are signed into the correct account, which is especially useful when first enrolling or if you belong to multiple organisations.

Self-serve signup

New organisations sign up at /signup/. After filling in company details and choosing a plan, you will receive a verification email. Clicking the link in that email activates your account. Free-plan accounts activate immediately; paid plans redirect to Stripe Checkout to complete payment before access is granted.

Seat management

Staff users can manage the number of seats (active members) on their plan from Manage Seats in the sidebar. See the Seats & members section below for details.

Tip: If you cannot log in with your email, try logging in with the username you were invited with, then change your email in Settings → Profile.

Productivity score KEY METRIC

A 0–100 score representing quality of work. Combines three signals:

Score = (Activity × 0.4) + (App category × 0.4) + (Consistency × 0.2)

Activity score (40%)

Based on keystrokes + mouse clicks per minute of active time. More input = higher score up to a ceiling.

App score (40%)

Based on time in productive vs unproductive apps:

App score = (productive_secs × 100 + neutral_secs × 50 − unproductive_secs × 20) / total_secs
  • Productive: VS Code, Terminal, Figma, Notion, Jira, Zoom, Excel, Word, Chrome, Firefox, Postman, Docker...
  • Unproductive: YouTube, Netflix, Instagram, Facebook, Twitter, Reddit, TikTok, games...

Consistency score (20%)

Rewards steady work across the day. A full day of consistent blocks scores higher than 2 intense hours followed by nothing.

Rating labels

  • 80–100% → Excellent   65–79% → Good   45–64% → Fair   0–44% → Low

Confidence score

Each block has a confidence score (0–100) indicating how reliably the data reflects real work. High confidence = many keystrokes, clicks, and mouse movement. Low confidence = minimal input activity, possibly reading or away.

A block with 0 keys and 1 click scores low confidence even if a productive app was active — the employee may have been reading without typing.

Idle detection

If the computer has been idle for more than 5 minutes at block finalisation, the block is marked idle. Idle blocks are excluded from productivity calculations.

Idle vs Paused

  • Idle: Detected automatically — computer was not used
  • Paused: Employee manually clicked Pause in the app, with an optional reason

Low-quality blocks NEW

A block may be technically "active" (not idle) yet contain very little real work — for example, an employee who left a productive app open while away from the keyboard. Low-quality block filtering identifies these blocks using two configurable thresholds and treats them like idle time.

What makes a block low-quality

A block is flagged as low-quality if either of the following is true:

  • Productivity score below threshold — the block's score (0–100) falls below the configured minimum (default 15). Low keystrokes/clicks in a neutral or unproductive app will score low.
  • Confidence score below threshold — the confidence score (0–100) falls below the configured minimum (default 20). Low confidence means the block has minimal input signals — likely the employee was away without triggering the idle timer.

How low-quality blocks appear

Low-quality blocks are highlighted in amber in the Work Diary and Screenshots view. Each block carries a "LOW QUALITY" badge. They are excluded from the daily productivity score calculation but their time is still visible.

Soft vs hard exclusion

There are two exclusion modes, toggled in Settings → Low-Quality Block Thresholds:

  • Soft exclusion (default) — blocks are shown in amber and excluded from the productivity score, but their time is still counted in total tracked hours. Use this when you want visibility without penalising employees for reading-heavy work.
  • Hard exclusion — blocks are fully stripped from all tracked-hour totals, including the Electron desktop timer, reports, and the team overview. Use this when you want tracked hours to reflect only demonstrably active work.
⚠️ Enabling hard exclusion will reduce reported tracked hours across all employees, reports, and the overview. It is per-organisation — changing the setting takes effect immediately for all new calculations.

Filtering the diary to low-quality blocks

From the team overview Low Quality Activity card, click any employee row to open their Work Diary filtered to only low-quality blocks (?lq=1 URL parameter). A banner appears at the top of the diary indicating the filter is active; click "Show all blocks" to clear it.

Focus sessions

A focus session is a period of uninterrupted deep work. Consecutive blocks with a gap less than 120s are merged. If the merged session exceeds 30 minutes, it counts as a focus session.

Example: Blocks at 2:00–2:10, 2:10–2:20, 2:21–2:31 (1-min gap) merge into a 31-minute focus session.

Both thresholds are configurable in Settings.

Work diary

A per-employee daily view of all activity. Navigate by day using the date bar at the top. Contains five tabs:

  • Activity — blocks grouped by hour. Each block card shows the app, window title, keystroke/click/distance counts, confidence bar, screenshot thumbnail, and overlapping tasks. Low-quality blocks appear in amber; meeting blocks appear in purple with a "📅 MEETING" badge and an approval status label.
  • App Usage — time per app for the day, colour-coded productive/neutral/unproductive.
  • Screenshots — all screenshots for the day in a grid, click to zoom. Meeting screenshots are dimmed with a purple badge; low-quality screenshots are amber.
  • Timeline — a visual 24-hour bar showing active blocks, idle periods, and pause events.
  • Tasks — doughnut chart of time per task plus the full task list with duration and status.

Sidebar — Meetings & Breaks

The right sidebar on the Activity tab shows two cards: Meetings (meeting sessions for the day with start/end times, duration, and approval status) and Breaks (manual pause sessions). Staff users see a "Review all meetings →" link to the Meeting Approvals page.

Low-quality filter mode

Append ?lq=1 to the diary URL (or click any employee from the Low Quality team card) to show only low-quality blocks. A dismissible amber banner at the top indicates the filter is active. Clicking the × clears the filter and returns to the full diary view.

Low quality team card NEW

The team overview dashboard shows a "Low Quality Activity — Today" card listing every employee who has low-quality blocks today. For each employee it shows:

  • An amber progress bar showing low-quality time as a percentage of their total tracked time today
  • The raw low-quality duration (e.g. "1h 23m low quality")

Clicking an employee row opens their Work Diary for today, pre-filtered to show only low-quality blocks (?tab=activity&lq=1).

The card only lists employees with at least one low-quality block. If no one has low-quality activity today, the card shows an "All clear" message.

Attendance UPDATED

Determined by active (non-idle) blocks recorded for that day.

  • 🟢 Full day — 6h+ active   🟡 Partial — 2–6h   🔴 Low — <2h   A Absent — no blocks   ⬜ Weekend

The "full day" threshold is configurable via Min daily hours in Settings.

Absent marker

Past weekdays with no tracked activity show an A cell (amber background) with an "Absent" tooltip. Today with no activity shows a dash (–) labelled "No activity yet" — it is not marked absent until the day ends. The employee's row summary shows the absent count in red next to their days-present count (e.g. 15/22 days · 3 absent).

Daily average hours

The daily average shown per employee is calculated only over days when they were actually present — absent days are not counted in the denominator. This avoids leave periods understating a person's typical working hours.

Example: An employee worked 4 days this week (Mon–Thu) and was absent Friday. Their daily average is total hours ÷ 4, not ÷ 5.

Alerts

Flags employees whose work patterns deviate from expected norms. All thresholds configurable in Settings.

  • 🔴 Late start — first block after configured time (default 9:30 AM)
  • 🟡 Early stop — last block before configured time when offline (default 6:30 PM)
  • 🟣 Short day — total active hours below threshold (default 6h), checked after 3 PM
  • No activity — no blocks at all, shown after 10 AM

Burnout detection UNIQUE FEATURE

Analyses last 14 days per employee. Unlike competitors who only flag underperformance, TrackDots also flags overwork.

Risk signals & weights

  • ⏰ Long hours +40pts — overwork threshold exceeded for 3+ consecutive days
  • ☕ No breaks +20pts — 3+ weekdays with 4h+ work and zero pauses
  • 🌙 Late nights +20pts — work after 21:00 on 2+ days
  • 📅 Weekend work +15pts — any weekend activity
  • 📉 Declining productivity +15pts — 15%+ drop in second half vs first half
High Risk ≥ 50pts   Medium 25–49pts   Watch 10–24pts   All Clear <10pts

Absent days & the "No breaks" signal

Absent days are always excluded from signal calculations — only weekdays where the employee was actively tracked count. If the "No breaks" badge shows 3 days, hover over it to see exactly which dates those were. This makes it clear the signal is about real working days, not days off.

The burnout window is always the last 14 calendar days. An employee who was recently absent but worked hard without breaks earlier in that window will still show the signal — this is intentional.

App usage

Time in each app measured by block duration where that app was primary. Colour-coded by category: 🟢 Productive, ⚪ Neutral, 🔴 Unproductive. Click any app row to see per-employee breakdown.

Idle breakdown

Shows active vs idle ratio. An employee who tracked 8h but was idle 3h has 62% efficiency — different from raw hours.

Efficiency = active_seconds / (active + idle) × 100
  • 🟢 Efficient 80%+   🟡 Moderate 60–80%   🔴 High idle below 60%

Productivity heatmap

GitHub-style grid showing daily productivity score over 30–90 days. Darker green = higher score. Hover any cell for exact date and score.

  • ⬜ Grey — no activity   🟩 Light — score 1–44   🟩 Medium — 45–64   🟩 Dark — 65–79   🟩 Darkest — 80–100

Compare

Side-by-side comparison of two employees across 7 metrics. Green = better value, red = lower. Also shows a daily hours table for each day in the period.

Anomaly detection NEW

Scans all employees over the last 30 days and flags unusual work patterns. Each employee is assigned a severity: Critical, Warning, or All Clear.

The 7 detectors

  • Sudden productivity drop — last 7-day avg drops 30%+ below the 30-day baseline
  • Consistently late start — first block after 10:00 AM on 3+ of the last 7 days
  • Unusually short days — active hours below the team's avg on 4+ of the last 7 days
  • No-activity streak — 3+ consecutive weekdays with zero blocks in the last 14 days. The threshold is 3 to avoid false positives for standard short leave (Mon–Wed off). Weekends are excluded entirely.
  • Excessive idle time — idle ratio above 40% for 3+ consecutive days
  • Overwork pattern — active hours exceed the overwork threshold on 5+ of the last 14 days
  • Erratic schedule — high variance in daily hours (std dev > 3h) over the last 14 days
Critical = 2+ detectors triggered  |  Warning = 1 detector  |  All Clear = 0

Each employee card shows a 30-day activity sparkline. Critical cards auto-expand on load. The summary strip at the top shows total Critical / Warning counts across the team.

Projects overview NEW

The Projects module tracks work across named projects. Employees select a project in the desktop app before starting a session — all activity blocks and task sessions are then attributed to that project.

Project list

The projects list shows all active projects with: total hours logged, budget usage bar, deadline, phase, and status. Filter by status using the tab bar (Active, Planning, On Hold, Completed).

Status & Phase

  • Status — Active, Planning, On Hold, Completed
  • Phase — free-text label (e.g. "Discovery", "Sprint 3", "UAT")

Budget & burn rate NEW

Set a budget in hours and a deadline date on any project. The project profile then shows:

  • Budget bar — green up to 80%, amber 80–100%, red when over budget
  • Hours used / remaining — based on all-time hours logged to the project
  • Burn rate — average active hours/day over the last 14 days
  • Projected finish — estimated completion date at current burn rate
  • Deadline status — On Track / Tight (≤7 days) / Overdue
Projected finish = today + (hours_remaining ÷ burn_rate)

Project health score NEW

A composite 0–100 score shown on every project profile. Built from four equal dimensions (0–25 each):

  • Budget (25) — full marks if under budget; loses points proportionally when over
  • Deadline (25) — full marks if projected finish ≤ deadline; loses a point per day of projected slip or overrun
  • Completion (25) — completed task sessions ÷ total task sessions × 25
  • Velocity (25) — compares last-7-day average burn to the period average; consistent or improving = full marks
Score tiers: Excellent ≥85  |  Good 70–84  |  At Risk 50–69  |  Critical <50

Displayed as an arc gauge dial with a colour-coded label. If no budget or deadline is set, those dimensions default to a neutral 15/25 to avoid penalising projects that don't need them.

Task breakdown NEW

The project profile aggregates all logged task sessions into a per-task summary table (filtered by the selected date range):

  • Total time — total hours logged under this task name
  • Sessions — number of times the task was worked on
  • Members — distinct headcount who worked the task
  • Completed % — percentage of sessions marked done
  • Share bar — this task's share of the project's total logged time

Tasks are sorted by total time descending. The daily activity chart above shows hours stacked per team member per day with a 7-day rolling average trend line.

CSV / PDF export NEW

Generate reports from the Export page in the dashboard. Choose a date range and report type, then download immediately.

Report types

  • Time Summary — per-employee: total hours, productive hours, idle hours, productivity %, sessions count
  • Attendance — per-employee per-day: status (Full/Partial/Low/Absent), hours logged, first/last seen

Formats

  • CSV — opens in Excel / Google Sheets; suitable for further data processing
  • PDF — formatted table with header, generated by ReportLab; suitable for sharing or printing

Scheduled reports NEW

Automatically email reports on a recurring schedule. Manage schedules from the Report Schedules page.

Schedule options

  • Daily — sent every day at a configurable hour
  • Weekly — sent on a chosen day of the week
  • Monthly — sent on the 1st of each month

Each schedule sets

  • Report type (Time Summary or Attendance)
  • Date range covered (last 7 days, last 30 days, etc.)
  • Recipient email addresses (comma-separated)
  • Send hour (0–23)

Schedules are processed by the send_scheduled_reports management command — run it via a server cron job every hour. Use --dry-run to preview without sending, or --force to send all active schedules immediately regardless of time.

crontab: 0 * * * * python manage.py send_scheduled_reports

Manager notes NEW

Add private notes to any employee's profile — visible only to staff users (managers/admins). Useful for recording performance observations, HR conversations, or follow-up items without cluttering the activity view.

  • Notes are timestamped and show the author's name
  • Any staff user can add or delete notes
  • Notes appear at the bottom of the employee profile page
  • Employees cannot see their own manager notes

Similarly, Project notes can be added to any project profile for internal team communication about that project.

Meeting Mode NEW

Meeting Mode lets employees flag time spent in a meeting directly from the desktop app. Tracking continues normally — so no gaps appear — but the time is marked as meeting time and routed through a staff approval workflow before counting toward tracked hours.

How to start a meeting

While a session is active (tracking or paused), a purple Meeting Mode toggle appears in the app above the ring. Clicking it opens a modal where the employee can optionally add a note (e.g. "Team standup", "Client call") or pick from quick presets. Clicking Start opens the meeting session on the server.

Turning the toggle off ends the meeting silently — no prompt is shown. The meeting is recorded with start and end timestamps.

If the tracking session is stopped while meeting mode is on, the meeting is automatically closed at the same time.

How meeting blocks appear in the Work Diary

Any activity block where ≥ 50% of its duration falls within a meeting session's time range is tagged as a meeting block. In the Work Diary these blocks show a purple 📅 MEETING chip instead of the usual LOW QUALITY or APPROVED badge, and the card background is tinted purple.

The approve/revoke button is replaced by a status label that mirrors the meeting's approval state:

  • ⏳ Awaiting meeting approval — the meeting is pending staff review
  • ✓ Meeting approved — the meeting was approved; the block counts as fully productive
  • ✕ Meeting rejected — the meeting was rejected; the block falls back to its normal scoring

Meeting blocks cannot be independently approved or revoked — their status is controlled entirely by the meeting approval.

Screenshots during meetings

Screenshots taken during a meeting are dimmed (60% opacity) in the Screenshots tab and show a purple Meeting badge with the approval status. They are not hidden — they remain visible for transparency — but are visually distinguished from regular screenshots.

Productivity impact

Approved meeting time is always treated as 100% productive, regardless of activity levels, productivity score, or confidence thresholds. This means:

  • Meeting blocks are never flagged as low-quality
  • Their time is always counted in total tracked hours, even with hard exclusion enabled
  • They contribute fully to the daily productivity score in the "productive" category

Pending or rejected meeting blocks are scored normally by the standard scoring engine.

Staff approval workflow

Staff users see a Meeting Approvals link in the sidebar navigation. The page lists all meeting sessions across the team, filterable by status: Pending, Approved, Rejected.

Each entry shows the employee name, date, start/end time, duration, note, and current status. Pending sessions have Approve and Reject buttons. Approved/rejected sessions show who reviewed them and when.

Meeting sessions are also visible in the employee's Work Diary sidebar (the Meetings card) with colour-coded status badges.

Example: An employee toggles meeting mode on at 10:53 AM with note "Team standup" and off at 11:08 AM (15 min). The 10:54–11:04 block falls fully within the meeting and is tagged as meeting. The 11:04–11:14 block has only 4 of 10 minutes inside the meeting (40%) — below the 50% threshold — so it is scored normally. After the manager approves the meeting, the first block scores 100% productive.
⚠️ Meeting Mode requires an active tracking session — the toggle only appears while tracking or paused. Starting a meeting while idle is not supported.

Seats & members NEW

Staff users can view and adjust the number of active members on their plan from the Manage Seats link in the sidebar (visible when on a paid plan).

Seat count

Each active employee with a registered device or a staff profile assigned to your organisation counts as one seat. The sidebar plan widget shows your current usage as X / Y members with a colour-coded bar — green, amber at one seat remaining, red when full.

  • 🟢 Seats available   🟡 One seat left   🔴 Limit reached

Increasing seats

On the Manage Seats page, use the +/− picker to set a new seat count. The live preview updates the monthly (or annual) total as you change the number. Saving will:

  • Increase — prorated charge added to the next invoice immediately
  • Decrease — takes effect at the end of the current billing period. You cannot reduce below the number of currently active members.

Removing a member to free a seat

To deactivate a member, go to Employees and click Deactivate next to their name. Deactivated employees retain all their historical data but no longer count toward the seat limit. Once a member is deactivated, you can reduce the seat count below their previous total.

⚠️ You cannot reduce seats below the number of currently active members. Deactivate members first, then lower the seat count.

Employee avatars NEW

Every employee is automatically assigned a distinct avatar colour derived from their username. This makes it easy to visually identify team members across all dashboard views — the same colour is used in the employee list, attendance grid, weekly report, burnout page, and everywhere else an avatar appears.

Customising an avatar colour

Staff users can override the auto-derived colour from the Edit modal on the Employees page:

  1. Go to Team → Employees
  2. Click Edit next to the employee
  3. At the bottom of the modal, click one of the 12 colour swatches
  4. Click Save changes

The chosen colour is stored per employee and persists across sessions. Employees without a custom colour always get the same auto-derived colour — it never changes randomly.

App productivity rules NEW

By default TrackDots ships with a global list of app classifications — productive, neutral, and unproductive. Organisations can override these defaults with custom per-org rules in Settings → App Rules.

Default classifications

  • Productive: VS Code, Terminal, Figma, Notion, Jira, Zoom, Excel, Word, Chrome, Firefox, Postman, Docker, Slack, and more developer/business tools
  • Neutral: System apps, file managers, calendar, notes apps
  • Unproductive: YouTube, Netflix, Instagram, Facebook, Twitter, Reddit, TikTok, games, and other entertainment

Custom org rules

An admin can add app-specific rules that override the defaults for your organisation. For example, if your team uses YouTube for training, you can reclassify it as Productive. Rules are matched by app name (case-insensitive).

  • Custom rules take precedence over global defaults
  • Changes take effect immediately on the next productivity score calculation
  • Historical blocks are not retroactively recalculated — only new scoring runs use the updated rules
Example: Add rule — App: "YouTube" → Category: Productive — for a company that uses YouTube for training videos. The global "Unproductive" default is overridden for your org only.

Settings reference

Working hours

  • Work start/end hour — expected working window
  • Min daily hours — hours needed for a "full day" in attendance

Alert thresholds

  • Late start hour/minute — triggers late start alert
  • Early stop hour/minute — triggers early stop alert when offline
  • Short day hours — triggers short day alert after 3 PM

Focus sessions

  • Minimum session length — merged blocks must exceed this to count
  • Max gap to merge — blocks within this gap are merged into one session

Low-quality block thresholds

  • Productivity score threshold — blocks scoring below this are flagged as low-quality (default 15, range 0–100)
  • Confidence threshold — blocks with confidence below this are flagged as low-quality (default 20, range 0–100)
  • Hard exclusion — when enabled, low-quality blocks are fully removed from all tracked-hour totals; when disabled (default), they are shown in amber but time is still counted

Pagination

  • Default API page size — number of results returned per page on all list API endpoints (default 20, max 200)

Burnout detection

  • Overwork threshold — daily hours above this = overwork day
  • Consecutive days — how many overwork days triggers the long hours signal
  • Late night hour — work after this hour = late night

Dark mode NEW

TrackDots supports a dark colour scheme for the dashboard and all public pages. Dark mode is comfortable for extended use and reduces eye strain in low-light environments.

Toggle

Click the sun / moon icon in the top-right of any dashboard page (next to the notification bell) to switch between light and dark mode. Your preference is saved in localStorage and remembered across sessions on the same browser.

System preference

If you have not manually toggled dark mode, the dashboard follows your operating system preference (macOS System Settings → Appearance, or Windows Settings → Personalisation). The dashboard automatically switches when you change your OS setting.

Override behaviour

  • Toggle to dark → dark mode on, even if your OS is set to light
  • Toggle to light → light mode on, even if your OS is set to dark
  • Clear site data / localStorage → reverts to following the OS preference

ERP API NEW

TrackDots exposes a read-only REST API for integrating time data into external systems (ERP, payroll, HR platforms).

Authentication

Pass your API key in the request header:

X-ERP-API-KEY: your-api-key

Endpoint

GET /api/erp/hours/?emails=alice@co.com,bob@co.com&date=2026-04-07

Parameters

  • emails — comma-separated employee emails (required, max 50)
  • date — single day YYYY-MM-DD
  • date_from + date_to — date range (max 90 days)

Response includes (per employee per day)

  • Total hours, productive hours, idle hours, productivity %
  • Pause count, total pause minutes, individual pause events with reasons
  • Task gap minutes (time between task sessions), first/last seen times

API keys are managed by an admin. Keys are scoped to your organisation — they cannot access data from other organisations.

Privacy & data

What IS tracked

  • Keystroke count (not content), mouse clicks, mouse movement
  • Active application name, active window title, screenshots (compressed), system idle time, pause events

What is NOT tracked

  • What you type, website URLs, file names, document content, network traffic, camera, microphone

Employee controls

  • Pause — stops all tracking with optional reason
  • Meeting Mode — flags active time as meeting; requires staff approval
  • Stop session — fully stops the agent