Pipelines Docs is in beta — content is actively being added.
Platform Guide

Time Tracking

Track contributor work time with sessions, activity signals, and admin reports.

Pipelines includes a built-in time tracking system that records how long contributors spend working on tasks. Contributors control their sessions using a floating timer widget, and the platform collects activity signals in the background to distinguish active work time from idle time. Admins can view per-contributor and per-stage reports and export data to CSV.

Key concepts

Time tracking revolves around two metrics that appear throughout the UI:

  • Total Time — wall-clock time from session start to session end (elapsed duration).
  • Active Time — the subset of total time during which the contributor was actively working. This is always less than or equal to total time.

A second counts as active only when all three conditions are true:

  1. The browser tab is visible (not hidden or minimized).
  2. The contributor is on a subtask form or review form page (time spent on other platform pages does not count as active).
  3. The contributor has interacted (typed, clicked, or scrolled) within the last 5 minutes.

If any condition is not met, the time counts as idle. This means that browsing the work queue, reading instructions, or viewing other platform pages does not accumulate active time — only time spent filling out task and review forms does.

Starting and stopping the timer

Contributors manage their sessions using the Time Tracker widget, a floating element fixed to the bottom-right corner of the screen. The widget is always visible for users with the Contributor role. Admins do not see the widget and cannot track time.

Minimized state

By default, the widget appears as a small pill showing:

  • A green pulsing dot when a session is recording, or a gray dot when stopped.
  • The elapsed time (when recording) or a clock icon (when stopped).

Click the pill to expand the widget.

Expanded state

The expanded widget shows:

  • A Recording or Stopped badge.
  • A large timer display (HH:MM:SS).
  • Start Timer / Stop Timer button.
  • Today's Active Time — a summary of your active time and session count for today.

If you're not currently inside a project, the widget shows a message prompting you to navigate to a project before starting.

Starting a session

  1. Navigate to a project that has time tracking enabled.
  2. Expand the Time Tracker widget and click Start Timer.
  3. The widget switches to the Recording state and begins counting.

You can only have one active session at a time. Starting a new session automatically closes any existing one.

If you try to claim a task without the timer running, the platform shows a confirmation dialog asking whether you want to continue without tracking time. You can proceed, but no time will be recorded.

Stopping a session

Click Stop Timer in the widget. A toast confirms the session was saved and shows the total duration.

Sessions can also end automatically:

Stop reasonWhat happened
ManualYou clicked Stop Timer.
InactivityNo interaction was detected for the project's idle timeout period (default: 5 minutes). A toast notifies you when this happens.
SystemThe server closed a stale session that had no activity signals (backstop cleanup).
ConflictYou started a new session, which auto-closed the previous one.

These stop reasons appear in your session history so you can understand why a session ended.

Cross-tab behavior

If you have multiple browser tabs open, only one tab sends activity signals at a time (the "leader" tab). This prevents duplicate data. If you close the leader tab, another tab takes over automatically.

Contributor view

Navigate to My Time in the contributor sidebar to see your personal time tracking data.

Stats bar

Three summary cards at the top of the page:

CardDescription
Active TimeTotal active time across all sessions in view
SessionsNumber of sessions
Total TimeTotal elapsed time across all sessions

Charts

Two charts appear side by side:

  • Daily Time (bar chart) — shows total time and active time per day as overlapping bars.
  • Cumulative Time Spent (area chart) — shows how total and active time accumulate over time.

Sessions table

Below the charts, a Recent Sessions table lists your sessions with the following columns:

ColumnDescription
DateWhen the session started
ProjectWhich project the session belongs to (hidden when viewing a single project)
Total TimeElapsed wall-clock duration
Active TimeTime classified as active work
StatusOngoing (session still open) or Stopped
Stop ReasonWhy the session ended (Manual, Inactivity, System, or Conflict)

The table supports sorting, search (by project name), and pagination.

Project-scoped vs. cross-project

  • Cross-project: Navigate to My Time from the top-level contributor sidebar. Use the project dropdown to filter, or view all projects at once.
  • Project-scoped: Navigate to My Time from within a specific project's sidebar. Only sessions for that project are shown.

Admin view

Project Admins and Org Admins can access time tracking reports. Contributors cannot.

Project settings

Before viewing reports, admins can configure time tracking for a project:

  1. Navigate to Time Tracking in the project's admin sidebar.
  2. Use the Enabled / Disabled toggle in the top-right to turn time tracking on or off for the project. (Time tracking is enabled by default for new projects.)
  3. Click the gear icon to open settings:
    • Idle Timeout (minutes) — how long a contributor can be inactive before their session is automatically stopped. Default: 5 minutes. Range: 1–300 minutes. This controls the client-side auto-stop behavior only; the server-side active/idle classification uses a fixed 5-minute interaction threshold regardless of this setting.
  4. Click Save Settings.

When time tracking is disabled, the admin page shows an empty state explaining that it needs to be enabled, and contributors in that project will see a message in the widget indicating tracking is disabled.

Project-level reports

Navigate to Time Tracking in the project's admin sidebar. Select a date range using the date picker (defaults to the last 30 days).

The report has two tabs:

Contributor Summary tab

A table showing one row per contributor with:

ColumnDescription
ContributorName and email
Total TimeTotal elapsed time
Active TimeTime classified as active
SessionsNumber of sessions
Subtask TimeActive time spent on subtask forms (includes rework attempts)
Review TimeActive time spent on review forms
Last ActivityDate of most recent activity

Click View Efficiency Metrics to switch to a sub-view that shows per-contributor averages broken down by workflow stage (pipeline node). Each cell shows the average active seconds per attempt and submission count for that contributor on that stage. Click View Summary to return.

Workflow Stage Breakdown tab

A table showing one row per pipeline stage with:

ColumnDescription
PipelinePipeline name
StageNode name
TypeNode type (e.g., Subtask, Review)
Total TimeActive time for this stage
ContributorsNumber of contributors who worked on this stage
TasksNumber of tasks
Avg per TaskAverage active time per task

Cross-project reports

Navigate to Time Tracking in the top-level admin sidebar (outside any project). This shows a combined view across all projects you have admin access to.

The cross-project report shows a single table with:

ColumnDescription
ProjectProject name
ContributorName and email
Total TimeTotal elapsed time
Active TimeActive time
SessionsSession count
Subtask TimeActive time on subtask forms (includes rework attempts)
Review TimeActive time on review forms
Last ActivityDate of most recent activity

Summary stats appear above the table: Total Active Time, Sessions, Contributors, and Projects.

CSV export

Click the Export CSV button on any admin report view to download the data. The export contains per-user aggregate summaries (not raw session data) with columns including:

  • Project, User ID, Name, Email
  • Total Elapsed (seconds and Xh Ym format)
  • Total Active (seconds and Xh Ym format)
  • Session count
  • Subtask Active and Review Active time
  • Average Daily Active Seconds
  • Last Activity Date

The exported file is named based on the project (or "all projects") and the selected date range.

How activity tracking works

This section explains the underlying mechanics for users who want a deeper understanding of how time data is collected and classified.

While a session is active, the browser sends periodic activity signals to the server:

SignalWhen it's sent
InteractionWhen you type, click, scroll, or tap (throttled to once every 5 seconds)
Visibility visibleWhen the browser tab becomes visible
Visibility hiddenWhen the browser tab is hidden or minimized
HeartbeatEvery 15 seconds as a keep-alive signal

Each signal also records which page you're on and, when applicable, which task and pipeline node you're working on. This is what allows the system to attribute time to specific tasks and stages.

Signals are sent in batches (up to 100 per request) and are retained for a short period (default 7 days) before being deleted. The aggregated summary data used in reports is retained indefinitely.

Permissions

RoleAccess
ContributorStart/stop own sessions via the Time Tracker widget. View own time data on the My Time page.
Project Admin (viewer)View time tracking reports for projects they are assigned to. Cannot configure settings. Cannot track time.
Project Admin (owner)View reports and export CSV for projects they administer. Configure time tracking settings (enable/disable, idle timeout). Cannot track time.
Org AdminView reports and export CSV for all projects in their organization. Cannot track time.

Tips and common questions

Why does my Active Time seem low compared to Total Time? Active time only counts when you're on a subtask or review form, the tab is visible, and you've interacted recently. Time spent reading instructions, browsing the work queue, or on other platform pages counts as idle.

My session ended unexpectedly. Check the Stop Reason in your sessions table. "Inactivity" means you were idle for longer than the project's timeout (default 5 minutes). "System" means a server cleanup closed a stale session. "Conflict" means you started a new session elsewhere.

Can I have multiple sessions running at once? No. Only one session can be active per user at a time. Starting a new session automatically closes any existing one.

What happens if I lose internet connectivity? Activity signals are queued locally and retried when connectivity is restored (for up to 24 hours). Your session remains open on the server until it's explicitly stopped or the stale session backstop closes it.

I changed the idle timeout to 10 minutes, but time is still marked idle after 5 minutes of inactivity. Why? The idle timeout setting controls when the timer auto-stops (the session ends). The active/idle classification within a session always uses a fixed 5-minute interaction threshold. So with a 10-minute idle timeout, the session stays open for 10 minutes of inactivity, but the last 5 minutes of that period are classified as idle time in the reports.

Does the timer need to be running to claim and submit tasks? No, but you'll see a confirmation dialog if you try to claim a task without the timer running. Submissions are not blocked — time simply won't be recorded for that work.

Does rework time show up separately in reports? No. Time spent on rework attempts is included in the Subtask Time column. It is not broken out as a separate metric in the admin reports.