For the complete documentation index, see llms.txt. This page is also available as Markdown.

Data Overview

Churnkey gives you two main data entities in Coupler.io: raw session records and pre-aggregated session summaries. Together they cover the full spectrum from granular interaction logs to rolled-up retention metrics.

Entities

Entity
What it contains
Best for

Sessions

One row per churn prevention session — customer ID, session outcome, timing, offers shown, engagement signals

Cohort analysis, individual customer review, funnel debugging

Session aggregations

Rolled-up counts and rates across sessions — saves, cancellations, deflection rates by time period or segment

Dashboards, KPI tracking, trend reporting

Sessions data

Session fields

Field
Type
Description

Session ID

String

Unique identifier for the session

Customer ID

String

Identifier linking back to your customer record

Created at

Timestamp

When the session was initiated

Outcome

String

Result of the session (e.g., saved, cancelled, paused)

Offer shown

String

Which retention offer was presented

Offer accepted

Boolean

Whether the customer accepted the offer

Session duration

Number

Time spent in the cancel flow (seconds)

Cancel reason

String

Reason selected or submitted by the customer

Revenue at risk

Number

MRR associated with the customer at session time

Session metadata

Field
Type
Description

Plan name

String

Subscription plan the customer was on

Billing interval

String

Monthly, annual, etc.

Country

String

Customer's billing country

Source

String

How the session was triggered

Session aggregations data

Aggregation metrics

Field
Type
Description

Total sessions

Number

Count of all sessions in the period

Saves

Number

Sessions that resulted in a retained customer

Cancellations

Number

Sessions that ended in cancellation

Save rate

Number

Percentage of sessions resulting in a save

Revenue saved

Number

MRR recovered through successful saves

Deflection rate

Number

Rate at which customers were deflected from cancelling

Aggregation dimensions

Field
Type
Description

Period

Date

Time bucket for the aggregation

Plan name

String

Grouped by subscription plan

Cancel reason

String

Grouped by stated cancellation reason

Offer type

String

Grouped by the offer presented

Common metric combinations

  • Save rate by cancel reason — identify which objections are hardest to overcome

  • Revenue saved by plan — prioritize retention efforts on high-value segments

  • Session volume vs. save rate over time — spot whether your cancel flow performance is improving

  • Offer acceptance rate by offer type — determine which offers actually work

Use cases by role

  • Track weekly save rates and revenue recovered without manually exporting from Churnkey

  • Compare offer performance to refine which discounts or pauses to show first

  • Build a Looker Studio dashboard that updates automatically each day

  • Pull revenue-at-risk and revenue-saved data into spreadsheets for MRR reconciliation

  • Join Churnkey session data with billing records in BigQuery for a complete churn impact report

  • Use Aggregate transformation in Coupler.io to roll up saves by billing period

  • Analyze cancel reasons by plan to inform roadmap prioritization

  • Send session outcome data to ChatGPT or Claude for automated pattern detection and recommendations

  • Append data from multiple Churnkey environments (test and production) to compare behavior

Platform-specific notes

  • Session aggregations are pre-computed by Churnkey — they are not the same as applying Coupler.io's Aggregate transformation to the Sessions entity, though you can use both approaches

  • The Sessions entity can grow large for high-traffic cancel flows; consider using Coupler.io's Aggregate transformation to summarize before loading into spreadsheet destinations

  • Revenue fields reflect MRR at the time of the session and are not updated retroactively if a customer's plan changes later

  • Cancel reasons depend on what options you've configured in your Churnkey cancel flow — custom reasons will appear as-is

Last updated

Was this helpful?