How to track gross margin by channel and sku as Educators, Coaches, and Course Creators

Finance & FP&AFor Educators, Coaches, and Course Creators3 apps12 steps~24 min to set up

Every Friday you open Stripe, export a CSV, paste it into a Google Sheet, then try to remember which revenue row belongs to your signature course versus your 1:1 coaching packages versus that evergreen product you launched last spring. If you also sell on Kajabi or Teachable, you're doing this for two platforms. You have no clean way to subtract Zoom, ConvertKit, and Loom subscription costs from course-level revenue to see what a channel actually nets. You know intuitively that your live cohorts make money and your YouTube funnel might not, but you've never had a number to prove it. The answer lives in four tabs and two logins and you rebuild it from scratch every quarter.

Finance & FP&AFor Educators, Coaches, and Course Creators3 apps12 steps~24 min to set up
Outcome

What you'll set up

A live gross margin view broken down by revenue channel (live cohort, evergreen course, 1:1 coaching) and by product SKU, updated automatically from your Stripe and Plaid data — no Friday export ritual
An automated spend tracker that maps Zoom, ConvertKit, Kajabi, and every other recurring tool cost to the channel it actually supports, so you know what each revenue line truly nets
Scenario models showing what happens to your margin if you raise cohort pricing by $200, cut a platform subscription, or add a new evergreen product — before you commit
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your Stripe data on a schedule — charges, invoices, and subscriptions broken down by product name — and syncs your Plaid bank feed on a schedule for categorized transaction and balance data. No manual exports. Kajabi, Teachable, Thinkific, ConvertKit, and Mailchimp are all reachable from Starch's integration catalog and queried live when your dashboard runs. If your course platform doesn't have an API connector, Starch automates it through your browser — no API needed.

Prompts to copy
Build me a gross margin dashboard that pulls Stripe revenue and breaks it down by product name — so I can see what my live cohorts, my evergreen course, and my 1:1 packages each earned this month. Then pull my Plaid transactions and let me tag which expenses belong to which channel. Show me net margin per channel at the top.
Show me every recurring subscription charge from my Plaid bank feed for the last 90 days. Group them by vendor. Let me label each one as a cost of a specific channel — for example, Kajabi is my evergreen course overhead, Zoom is split between live cohorts and 1:1.
Create two scenarios side by side: one where I raise my cohort price from $997 to $1,197 starting next quarter, and one where I sunset my lowest-margin evergreen SKU. Use my actual Stripe revenue and Plaid burn as the baseline. Show me how runway and net margin change under each.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect Stripe to Starch — Starch syncs your charges, invoices, and subscription data on a schedule. Within a few minutes you can see every product name Stripe knows about: your cohort SKU, your self-paced course, your coaching retainer.
2 Connect your business bank account via Plaid — Starch syncs transactions and balances on a schedule, categorized automatically. This becomes your expense side of the margin equation.
3 Open the Runway Analysis starter app and tell Starch: 'Break my Stripe revenue into channels — live cohort, evergreen course, and 1:1 coaching — using the product names in Stripe. Show me monthly revenue per channel for the last six months.'
4 Open Transaction Insights and tell Starch: 'Show me every recurring vendor charge from my Plaid feed. Let me tag Kajabi as evergreen course overhead, Zoom as 70% cohort and 30% 1:1, ConvertKit as split evenly across all channels.' Starch stores those tags and applies them going forward.
5 Ask Starch to compute gross margin per channel: 'For each revenue channel, subtract the tagged expenses from step 4 and show me gross margin in dollars and as a percentage.' You now have a real P&L by channel, not a spreadsheet guess.
6 Drill into SKU-level detail within your highest-revenue channel — for example, if live cohorts are your top line, tell Starch: 'Break cohort revenue by cohort name and launch date so I can see whether March 2026 performed better than October 2025.'
7 Flag any anomaly — tell Starch: 'Alert me if any vendor charges more than 20% above its 90-day average. And show me any new vendor that appeared in my Plaid feed in the last 60 days that I haven't tagged yet.'
8 Open Scenario Analysis and set your baseline from actual Stripe and Plaid data. Then tell Starch: 'Show me what happens to my margin if I raise cohort pricing by $200 per seat starting next quarter, assuming the same enrollment numbers.'
9 Build a second scenario: 'What if I sunset my lowest-margin evergreen course — the one generating under $500/month — and redirect that marketing time to a second live cohort per quarter?' Starch models the runway and margin delta side by side.
10 Save both scenarios and schedule a weekly refresh — tell Starch: 'Every Monday morning, update my gross margin dashboard with last week's Stripe charges and Plaid transactions, and send me a Slack message with the current margin per channel and any anomalies.'
11 Once your tagging logic is stable, publish the dashboard internally — share a read-only link with your ops helper so they can answer 'how are we doing this month?' without asking you.
12 Revisit channel tagging each time you launch a new product or add a new tool to your stack — tell Starch: 'I just added Circle as my community platform at $99/month. Tag it as a cost of my live cohort channel going forward.'

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Q1 2026 Margin Close — Two-Channel Education Business

Sample numbers from a real run
Live cohort revenue (March 2026 launch, 34 students × $997)33,898
Evergreen course revenue (self-paced, 61 sales × $297)18,117
1:1 coaching retainers (8 clients × $500/mo × 3 months)12,000
Kajabi subscription (evergreen channel cost)-1,188
ConvertKit (split evenly across channels)-594
Zoom (70% cohort, 30% 1:1)-420
Circle community (cohort channel cost)-297
Loom (content production, tagged to evergreen)-240
Contractor (cohort onboarding calls, 12 hours × $40)-480

Before Starch, this founder was running a Google Sheet where all $64,015 in Q1 revenue sat in one column and all expenses sat in another, netting a $61,798 gross figure that told them almost nothing. After tagging expenses by channel in Transaction Insights and breaking Stripe revenue by product, the picture changed. The live cohort channel netted $32,701 on $33,898 revenue — a 96% gross margin because the only direct costs were Zoom and the contractor for onboarding calls. The evergreen course netted $16,095 on $18,117 — an 89% margin after Kajabi, ConvertKit's share, and Loom. The 1:1 coaching channel netted $11,798 on $12,000 — 98% margin, almost no overhead. The insight that changed behavior: the evergreen course, despite looking profitable, had the lowest margin percentage, and a Scenario Analysis run showed that sunsetting the lowest-performing evergreen SKU (97 sales in 12 months, $28,809 revenue) and replacing that email nurture time with a second cohort launch would add roughly $18,000 in net margin annually at current pricing. That was a decision the founder had been avoiding because the spreadsheet couldn't show it clearly.

Measurement

How you'll know it's working

Gross margin percentage per channel (live cohort vs. evergreen vs. 1:1 coaching)
Revenue per student per cohort — to see whether enrollment quality or pricing changes affected yield
Platform overhead as a percentage of channel revenue — so Kajabi's $99/month is judged against what it earns, not just what it costs
Month-over-month change in recurring tool spend — to catch subscription creep before it compounds
Runway in months at current net burn — updated weekly from Plaid and Stripe, not from memory
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

Google Sheets with manual Stripe and bank CSV exports
Free and familiar, but you rebuild it every month and it goes stale the moment you close the tab — no live updates, no anomaly alerts, and no scenario modeling without a second sheet and several nested IF formulas.
QuickBooks or Wave connected to Stripe and your bank
Good at closing the books and generating a P&L, but not built to break revenue down by Stripe product SKU or tag expenses by teaching channel — you still end up in a spreadsheet to answer 'which channel made money this quarter.'
Kajabi or Teachable's built-in analytics
Shows you course-platform revenue clearly but knows nothing about your bank account, your ConvertKit spend, or your 1:1 coaching income — so you still can't compute true gross margin per channel without pulling data from elsewhere.
Notion finance tracker template
Easy to maintain if you're disciplined about manual entry, but there's no connection to Stripe or Plaid, so every number in it is only as current as the last time you updated it by hand.
On Starch RECOMMENDED

One platform — runway analysis, transaction insights, scenario planning all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

My course platform is Kajabi — does Starch connect to it directly?
Kajabi is reachable from Starch's integration catalog and queried live when your app runs. If you need to pull data from Kajabi pages or dashboards that don't have an API endpoint, Starch can automate that through your browser — no API needed. For payment reconciliation specifically, connecting Stripe directly (which Kajabi uses under the hood) gives you the cleanest data with the most detail.
I have revenue in Stripe and also some PayPal sales from an older product. Can Starch handle both?
Yes. Starch syncs your Stripe data on a schedule. PayPal is reachable from Starch's integration catalog and queried live. You can tell Starch to pull both sources and combine them into a single revenue view broken down by product — just describe it and Starch builds it.
My expenses are split across two bank accounts — one business checking and one business savings I use for tax reserves. Does that cause problems?
No. You can connect multiple bank accounts via Plaid — Starch syncs transactions and balances from each. When you build your margin dashboard, tell Starch which accounts represent operating spend and which represent reserves, and it handles the separation.
I'm not a finance person. Is this going to require me to know accounting terms?
No. You describe what you want in plain language — 'show me what my live cohorts made this month after subtracting the tools I use to run them' — and Starch builds the view. The prompts in the recipe above are close to what you'd actually type. You don't need to know what a journal entry is.
Is Starch SOC 2 certified? I'm connecting my bank account and Stripe.
Starch is not SOC 2 Type II certified today — that's worth knowing before you connect sensitive financial data. Plaid (the bank connection layer) is itself a widely-used, regulated financial data provider with its own security certifications. Whether Starch's current posture meets your bar is a fair question to ask before connecting.
I have a business partner who wants to see these numbers too. Can I share the dashboard?
Yes — once you've built the gross margin dashboard, you can share a view with your partner. They see the live numbers without needing to log into Stripe or your bank separately.
What if my QuickBooks already has all this data? Do I need to reconnect everything?
Starch connects directly to QuickBooks and syncs invoices, bills, payments, vendors, and journal entries on a schedule. If your books are in QuickBooks, that can be your expense source instead of (or alongside) Plaid. Note: QuickBooks report views like the P&L summary are temporarily unavailable due to an upstream issue, but entity-level data syncs normally — which is usually enough to build a channel margin view.

Ready to run track gross margin by channel and sku on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.