> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/sales/churnkey/data-overview.md).

# 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

{% tabs %}
{% tab title="Retention teams" %}

* 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
  {% endtab %}

{% tab title="Finance teams" %}

* 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
  {% endtab %}

{% tab title="Product teams" %}

* 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
  {% endtab %}
  {% endtabs %}

## 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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/sales/churnkey/data-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
