# See which of your Kit broadcasts actually made money

> Open one screen after every send to see each email's opens, clicks and the Stripe revenue that followed it, measured against a normal day.

- Workflow type: app
- Services: ConvertKit, Stripe
- Categories: Marketing, Operations
- Published: 2026-08-17

## What it does

- Lists every broadcast you sent in the last 12 months in one sortable table, with send date, subject line, recipients, open rate, click rate and unsubscribes, filterable to any date range.
- Adds a revenue column that totals the successful Stripe payments that arrived in a set window after each send, shown next to your average day so you can tell a real spike from an ordinary one.
- Opens any send to show the full subject line and content preview, the complete stat breakdown, and the individual payments that landed inside that window.
- Compares your whole archive by day of week, send hour and subject line style, so you can see what your audience responds to over time instead of one A/B test at a time.

## What you'll need

- A Kit account (formerly ConvertKit) with broadcasts you have already sent
- A Stripe account where your sales are processed
- Ideally several months of send history, so the comparison view has enough to work with

## Prompt

I want an app I open after every send to answer the one question Kit cannot: which of my emails actually made money. It reads my send history and performance from Kit, reads my payments from Stripe, and puts the two side by side.

The main screen is a sortable table of every broadcast from the last 12 months. Pull the list with Kit's List Broadcasts operation and enrich each row with Get Broadcast Stats. Columns are send date, subject line, recipients, open rate, click rate, unsubscribes, and attributed revenue. Every column sorts, and a date range filter narrows the table to any period I choose.

The revenue column is built from Stripe. For each broadcast, total the successful charges returned by List Charges filtered by creation date, across a window that starts at the send time and runs for a configurable duration with a default of 72 hours. Count successful charges only and exclude failed ones. Next to that figure, show my trailing 30 day average daily revenue as a baseline, so I can tell a real spike from an ordinary day. Express the comparison both as the raw amount and as a multiple of the baseline.

Label the revenue figure clearly and permanently as time window attribution rather than click level tracking. Anywhere that number appears it should be obvious that it means money that arrived after this send, not money traced to a click inside this email. Let me widen or narrow the window per broadcast with presets of 24 hours, 72 hours, 7 days and 30 days plus a custom value, so long sales cycles are not misread. Persist each per broadcast override and recompute that row when I change it.

Clicking any row opens a detail view for that broadcast: the full subject line and a content preview from Get Broadcast, the complete stat breakdown from Get Broadcast Stats, and the individual Stripe charges from that window listed via Search Charges with amount, customer and timestamp. Put the window control on this screen too, so I can adjust the window while watching which charges move in and out of it.

Add a compare view that groups the whole archive three ways: by send day of week, by send hour, and by subject line style. Classify subject lines server side into question, number, curiosity gap and plain using simple rules, and show which bucket each subject landed in so I can sanity check the classification. For each group show the number of sends, average open rate, average click rate, and average attributed revenue per send. This is the part Kit cannot do, because its A/B testing only compares subject lines one send at a time.

Two performance notes. Kit list endpoints are cursor paginated, so page through by passing the previous response's end_cursor as the after parameter. Kit OAuth tokens allow 600 requests per rolling 60 seconds, so fetch the per broadcast stats in a batched, concurrency limited pass on the server and cache the stats and computed revenue per broadcast instead of refetching on every render. Give me an explicit refresh control and show when the data was last refreshed.

Persist the cached broadcast stats, the computed revenue, my per broadcast window overrides, and my default window and date range preferences, so the app opens where I left it. This is one creator's tool rather than a team dashboard, so it should load fast and be readable at a glance in the minutes right after a send.

## How to customize

- Change the default attribution window, which starts at 72 hours, and widen it on any single broadcast when you sell something with a longer decision cycle
- Set the archive table to any date range rather than the last 12 months
- Adjust the baseline period behind your average daily revenue, or change how subject lines get sorted into styles

## FAQ

### Does this track revenue click by click?

No, and the app says so wherever the number appears. It totals the successful payments that came in during a window of time after each send. That is a strong directional signal for a creator selling to one list, but it is not the same as tracing a specific sale back to a specific click.

### What if people buy a week after reading the email?

Widen the window on that broadcast. You can set it per send, so an evergreen course launch can use 14 or 30 days while a flash sale stays at 24 hours. Just remember that long windows start overlapping with your other sends, so read those numbers as a trend rather than a precise figure.

### How is this different from the reporting Kit already gives me?

Kit shows opens, clicks and unsubscribes for one send at a time with no money attached to them. This puts revenue beside those metrics for every send, keeps 12 months in one browsable table, and groups the whole archive by send day, send hour and subject line style so you can compare across sends instead of within one.

### Does it change anything in Kit or Stripe?

No. The app only reads your broadcasts, their stats, and your payments. Nothing is sent, edited or refunded, so it is safe to open as often as you like.

### What if I sell through something other than Stripe?

The revenue column reads from Stripe, so it will be empty without it. The rest of the app still works as a browsable archive of your send history and performance, and you can point the revenue side at Stripe later.

Use this prompt in General Input: https://www.generalinput.com/prompts/see-which-of-your-kit-broadcasts-actually-made-money