Calculate the Time on Task:
Use the timestamps from the columns "[Column with task start time]" and "[Column with task end time]" in the attached CSV to calculate per-task duration using the following formula:
Time on Task = Task End Time − Task Start Time
Input assumptions & parsing
Timestamps are ISO (e.g., YYYY-MM-DD HH:MM:SS) or unix epoch; parse consistently.
If a "[Completed?]" column exists (true/false or 1/0), compute stats for All attempts and Successful attempts only.
Exclude rows with negative or missing times from aggregates and report the count excluded.
Output requirements
Add a duration_seconds field for every row and a human-friendly mm:ss field.
Report (for All attempts and Successful-only): Average Time on Task, Median, P90, P95.
Provide a distribution table with buckets: 0–15s, 16–30s, 31–60s, 61–120s, >120s.
If a "[Segment/Device/Variant]" column exists, repeat the stats per segment.
Report # of incomplete tasks and their median elapsed time (from start until abandon, if an "[Abandon Time]" exists; otherwise omit).
After calculating, report where the Average Time on Task (Successful-only) lands on the following scale (lower is better). Replace the bracketed thresholds with your targets:
Very Good = ≤ [A] seconds
Good = [A+1–B] seconds
Average = [B+1–C] seconds
Poor = [C+1–D] seconds
Very Poor = > [D] seconds
Example defaults you can use if no thresholds are provided (checkout-like flow):
Very Good ≤ 30s, Good 31–60s, Average 61–120s, Poor 121–180s, Very Poor > 180s.
Next, analyze the responses in the column "[Column with qualitative explanations]" in the CSV (e.g., open-text notes describing friction during the task). Identify common themes and provide clear, actionable suggestions to reduce time on task (e.g., remove steps, improve field defaults, inline validation, clearer labels, performance optimizations).
Time on Task — Example Report
Summary
Average Time on Task (All attempts): 52s
Average Time on Task (Successful only): 38s → Very Good
Median (Successful only): 32s
P90 (Successful only): 1m 15s
P95 (Successful only): 1m 40s
Tasks Analyzed: 1,000 (42 excluded due to missing/invalid times)
Incomplete Tasks: 140 (median abandon time = 28s)
Distribution of Successful Task Times
Duration Bucket Successful Tasks % of Successful
0–15s 120 14%
16–30s 310 37%
31–60s 280 34%
61–120s 90 11%
>120s 60 7%
Observation: 51% of successful users completed in under 30s.
Segment Breakdown
By device
Mobile: Avg = 45s (Good)
Desktop: Avg = 33s (Very Good)
Tablet: Avg = 39s (Very Good)
By variant (A/B test)
Variant A (current): Avg = 41s (Good)
Variant B (new streamlined flow): Avg = 29s (Very Good)
Qualitative Insights (from explanations column)
Top friction themes mentioned by users:
Too many required fields — 30%
“Had to enter billing address even though shipping was the same.”
Validation slowed down completion — 24%
“Phone number kept erroring until I removed dashes.”
Unclear button hierarchy — 20%
“Almost clicked ‘Back’ instead of ‘Next’ because they looked the same.”
Load lag on confirmation step — 15%
Distraction from pop-ups — 11%
Recommendations
Consolidate redundant fields: auto-fill shipping = billing by default, collapse less-used options.
Improve inline validation: normalize common formats (phone, zip) before erroring.
Clarify action buttons: differentiate primary/secondary actions with color and placement.
Speed up final step load: pre-fetch confirmation page assets, defer analytics scripts.
Delay non-critical pop-ups until after task completion.
Next Checks
Track success-only time on task weekly; target = ≤30s average (Very Good).
Monitor Variant B performance post-rollout; validate time savings hold across mobile.
Run 5-user moderated test to confirm perceived ease matches measured speed.
Target: Improve overall average time on task from 38s → ≤30s while keeping error/completion rates stable.