For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DashboardGet an API key
SetupCustomersOnboardingsWorkbenchAsk PiIntegrations
SetupCustomersOnboardingsWorkbenchAsk PiIntegrations
  • Customers
    • Overview
    • Add a customer
    • Edit customer details
    • Health score
    • At risk and churned
    • Add contacts
    • Manage contacts
    • Search customers
    • Tags and metadata
    • Customer history
LogoLogo
DashboardGet an API key
On this page
  • What feeds the score
  • The three buckets
  • How it interacts with the at_risk status
  • Webhooks
  • Related
Customers

Health score

A 0-100 rollup that drives the at-risk flag and the Workbench triage queue.

|View as Markdown|Open in Claude|
Was this page helpful?
Previous

Edit customer details

Next

At risk and churned

Built with

Pi assigns every Customer a health score from 0 to 100 that summarizes whether the account is on track. The score updates nightly at 02:00 in your workspace timezone, and on a handful of live events: phase changes, task completions or overdue tasks, support tickets, and CRM stage updates. You see the current score on the customer page’s Health tab, in the Customers list as a colored pill, and as the sort key behind What’s at risk.

What feeds the score

Five signals roll up, each weighted differently:

SignalWeightWhat it measures
Onboarding velocity30%Days in current phase vs the workspace average for that phase
Recent activity20%Comments, task updates, and portal logins in the last 14 days
Task health20%Ratio of done to overdue tasks in active onboardings
Contract size15%plan and arr custom field, normalized against your workspace
Support load15%Open and recently closed tickets (HubSpot or Zendesk if connected)

You can see the signal-level breakdown on the Health tab. Click any row to expand into the underlying data: which tasks are overdue, which phase is dragging, which tickets are open.

The three buckets

Pi maps the raw 0-100 score onto three buckets that show up everywhere a score is displayed:

  • Healthy (70-100, green). Account is tracking. Default state for a customer in active onboarding.
  • Watch (40-69, yellow). One or two signals are degrading. Worth a check-in but not urgent. Shows up in the “Watch” lane on the Workbench.
  • At risk (0-39, red). Multiple signals are degrading or one is severe. Surfaces in the Workbench risk lane and in whats-at-risk prompts.

The boundaries are workspace settings under Admin > Health score. You can tighten or loosen them if your portfolio runs hot or cold.

How it interacts with the at_risk status

The score and the status field are independent.

  • The score is Pi’s automatic read. It updates on its own.
  • The at_risk status is a flag you or a teammate sets on the Customer record. It does not move on its own.

When a score drops into the red bucket, Pi does not auto-flip status to at_risk. It nudges you instead: a new entry in the activity feed and a card in the Workbench inbox. You decide whether to set the status. See at risk and churned for what flipping the status triggers.

Webhooks

A score drop of 10 points or more fires a customer.health_score_dropped event. A bucket transition (Healthy to Watch, Watch to At risk) fires customer.health_bucket_changed. Useful for piping into Slack or your ops tooling. See webhooks overview.

Related

  • At risk and churned
  • What’s at risk
  • Webhooks overview

Email help@pivotal.app with a screenshot of where you got stuck and the customer or onboarding id from the URL.