Skip to main content
Feature

Analytics & reporting — status reports, SLA dashboards, time tracking

BlueHill ships status reports (this week vs last week), SLA dashboards, time-tracking reports, and customer-health metrics — all powered by the activity timeline and metrics models. No external BI tool required.

What BlueHill analytics covers

Analytics in BlueHill is intentionally narrow and operational, not a general-purpose BI tool. The reports are the ones a customer-facing team actually opens every Monday morning:

  • Status reports — this week vs last week, per project
  • SLA attainment — first-response time, resolution time, breach rate
  • Time tracking — hours by customer, project, team member; billable vs internal
  • Onboarding velocity — average days to milestone, completion rate
  • Ticket volume — by category, priority, customer, source
  • Customer health — derived signals per account

For deeper BI work (cohort retention, funnel analysis, revenue attribution), pipe the data to your warehouse and build there. The API is open.

The data behind the reports

BlueHill's reporting layer is built on three models and one big logging system:

  1. Metrics — system-wide counters and aggregates (ticket throughput, SLA rates, etc.)
  2. CustomerMetrics — per-customer rollups (health score, engagement, onboarding progress)
  3. task_activity event log — every status change, every interaction, every assignment is appended to a single time-ordered log
  4. board_status_computer — the helper that rolls task_activity events into weekly snapshots for status reports

This means every report is grounded in real events, not a periodic aggregate that drifts out of sync. When a ticket transitions to Resolved, that's logged. When a customer task hits Done, that's logged. The reports query against the log.

Status reports (this week vs last week)

The status-reports view is the workhorse for weekly standups and customer QBR prep. It compares:

| Project | This Week | Last Week | Δ | Status | |---|---|---|---|---| | Acme · Q1 Onboarding | 18 | 12 | +6 | On Track | | TechFlow · Migration | 9 | 14 | −5 | Delayed | | Globex · Renewal | 22 | 8 | +14 | Ahead |

The "this/last week" columns count completed tasks or resolved tickets per project per week. The delta column flags directional movement. The status column is computed from project-level rules (e.g. "Delayed" if delta is meaningfully negative).

CSMs use this to prep QBRs in 15 minutes instead of 90. Managers use it to spot drift before customers complain.

SLA dashboards

The SLA dashboard pulls from the Ticket model's due_date, first_response_at, resolved_at, and sla_breach_at fields. Views available:

  • First-response attainment — % of tickets where the first outbound reply happened before the agreed SLA
  • Resolution attainment — % of tickets resolved before due_date
  • Breach rate by priority — Urgent vs High vs Normal vs Low
  • Breach rate by customer tier — Enterprise vs Mid-market vs SMB
  • Trend over time — week-over-week, month-over-month

The trickiest variable in SLA tracking is "who pauses the clock when the ticket goes Pending or Waiting on Customer". BlueHill pauses on Waiting on Customer (the customer is the blocker) and continues on Pending (the team is the blocker) by default — configurable per tenant.

Time tracking + reports

Time tracking lives at the task level. Every CustomerTask carries time_estimate (forecast) and time_unit (hour / day). Actual time is logged via time entries against the task.

Reports group by:

  • Customer + date range → for invoicing
  • Team member + date range → for utilization
  • Project + date range → for engagement profitability
  • Billable vs internal → for billable utilization metric

The reports export cleanly to CSV for QuickBooks import, or sync via webhook for real-time invoicing.

Customer health

The CustomerMetrics model derives health from a weighted set of signals:

  • Onboarding milestone progress (heavily weighted in the first 90 days)
  • Recent interaction volume (drop = risk signal)
  • Open ticket count and aging
  • Time-since-last-touchpoint
  • Exec sponsor engagement (calendar events, email responses)
  • NPS / CSAT scores (if collected via Forms)

Health states surface on every customer record and aggregate into the at-risk view. The weights are configurable per tenant — different industries weight signals differently.

Onboarding velocity

For teams running structured onboarding (the Onboarding feature), the velocity report shows:

  • Average days from contract-signature to first-value milestone
  • Distribution by customer segment
  • Where in the template the average customer slows down
  • Comparison this quarter vs last quarter

Useful for the "is our onboarding actually getting faster" conversation that comes up every QBR with leadership.

Exporting and BI integrations

Three paths:

  1. CSV export — every report has a download button
  2. REST APIGET /api/metrics, GET /api/customer_metrics, GET /api/activity for programmatic access
  3. Webhook → warehouse — fire events to Snowflake / BigQuery / Postgres for real-time analytics

We don't try to be your BI tool. We try to surface the operational reports your customer-facing team needs to do their job, and stay out of the way for the rest.

Built for

Try it

Start a 14-day free trial — no credit card required.