Overview · Analytics

What is creator analytics, and how do you build it in Metabase?

Creator analytics turns course sales, digital orders, enrollments, and membership pledges into shared numbers about what a creator business actually earns. Every platform in this category reports its own slice accurately and stops there: Teachable can tell you what Teachable sold, Patreon what patrons pledged, Gumroad what shipped through its checkout. None of them can total those, subtract the other's fees, or put a course sale next to the email campaign and ad spend that produced it. That's the job — Metabase is where gross becomes net, and where the platforms' separate numbers become one P&L.

TL;DR — Be realistic about the plumbing: only Thinkific has a managed warehouse connector (official Fivetran, plus a community Airbyte source), and the MCP servers in this category are either analytics-blind by design, waitlist-gated, or unmaintained. Scheduled API pulls are the normal route. Start on Metabase Cloud with mb upload csv, model six tables, and keep gross, tax, fee, and net as separate columns from the first day.

What does creator analytics measure?

  • What did we actually earn this month, across every platform at once?
  • How much of gross revenue is tax, platform fees, affiliate commission, and refunds?
  • Which courses and products earn, and which quietly hand money back?
  • Do the people who buy a course ever finish it?
  • Is recurring membership revenue growing, and is churn cancellation or failed payment?
  • Do buyers come back for a second product, or is every launch cold?
  • Which email campaigns and ad channels produced the sales — a question no platform can answer alone?
  • Does the money that reached the bank match the revenue we recognized?

Which tools feed creator analytics?

ToolBest forGetting data into Metabase
KajabiGross vs. net course revenue after fees; Revenue by offer and productScripted order, transaction, and payout exports
ThinkificCourse revenue and refunds by product; Enrollment volume and source mixLive student, course, and enrollment lookups
TeachableNet revenue after affiliate and author fees; Revenue by course and pricing planScripted transaction and enrollment exports
GumroadGross vs. net sales after Gumroad fees; Product and variant performanceScripted sales, subscriber, and payout exports
PatreonActive patrons and net member change; Monthly membership revenue by tierScheduled daily member snapshots
StripeProcessor-side fees, disputes, and payoutsConnector or API into a warehouse
KlaviyoEmail campaigns behind course and product salesConnector or API, joined on buyer email

Only Thinkific has a managed warehouse connector — official Fivetran, plus a community Airbyte source. For Kajabi, Teachable, Gumroad, and Patreon there is nothing on Airbyte, Fivetran, or dlt as of July 2026, so the pull is yours to schedule. Each integration guide carries the working script and the per-platform rate limits.

What shared data models should you build?

Six tables carry the whole category. Map every platform onto these names and a card written once works regardless of which platform the rows came from.

  • creator_orders — one row per sale or transaction, with gross amount, tax, platform and processing fees, refunds, and net kept as separate columns rather than a single pre-netted number
  • creator_products — one row per course, offer, digital product, or pledge tier, with price, currency, and whether it's recurring
  • creator_enrollments — one row per student per course, with enrolled, activated, and completed timestamps plus percentage complete, and a flag separating free or comped enrollments from paid
  • creator_lesson_progress — one row per student per lesson, with lesson position and completion time: the drop-off curve lives here and nowhere else
  • creator_members — one row per member per daily snapshot, with status, entitled amount, pledge cadence, and charge dates; this is an append-only history table, not a current member list
  • creator_payouts — one row per payout to your bank account, with period start and end, so recognized revenue can be reconciled against money that actually arrived

Three modeling rules save most of the pain later. Divide cents once in the model, never per card — several of these APIs report money in cents. Normalize pledge cadence before summing, since an annual pledge is not twelve times a monthly one in any given month. And keep free, comped, and bundled enrollments flagged, because they almost never complete and blending them halves an otherwise healthy completion rate.

Which creator metrics matter most?

  • Platform fee rate — the effective take-rate, derived from fee lines rather than the published rate card.
  • Average order value — by product and tier, counting orders rather than payment-plan installments.
  • Course completion rate — with a stated maturity window and free enrollments held out of the denominator.
  • Repeat purchase rate — the earliest evidence that a catalog beats a single hit product.
  • MRR — recurring membership and pledge revenue on one cadence-normalized basis.
  • Churn rate — genuine cancellations, with failed payments counted as a separate, recoverable problem.
  • LTV — lifetime support per member, read as a median because a handful of whales distort the mean.
  • ARPU — average revenue per active member, which tier mix moves more than price changes do.

How do you connect tools to Metabase?

Metabase queries SQL databases and warehouses; it does not call SaaS APIs. So every route below is really a way of getting platform records into a database Metabase can read.

  1. CSV upload first — export a slice from the platform API, then mb upload csv to create a table and a model in one command, and mb upload replace to refresh it. On Metabase Cloud there is nothing further to provision, and this audience is largely non-technical, so this is where to start rather than where to compromise.
  2. Scheduled API pulls — the durable route for four of the five platforms: Kajabi's Public API for orders, transactions, and payouts; Teachable's Transactions API; Gumroad's /sales; Patreon's Members endpoint appended daily with a snapshot date. Small data, modest jobs, but respect each platform's paging and limits.
  3. Managed connector where one exists — Fivetran for Thinkific orders, enrollments, users, products, coupons, and promotions, with incremental enrollments; the community Airbyte source covers similar ground without incremental sync.
  4. MCP for exploratory questions — Thinkific's read-only server for students and enrollments, Kajabi's for content and product operations. Neither returns financial data, so neither replaces the pull.

Which dashboards should you build first?

  • Course revenue — gross, tax, fees, refunds, and net by product and month. Needs one table.
  • Membership growth — active members, net change, tier mix, and failed payments.
  • MRR / ARR — recurring revenue with monthly and annual pledges brought onto one basis.
  • Churn & retention — cancellations and cohort retention, built from snapshot history.
  • Repeat purchase — second and third purchases across the catalog, keyed on buyer email.

Common mistakes

Treating a platform's gross number as earnings.→ Tax is collected on someone else's behalf, fees come off the top, and chargeback fees never appear in a gross-minus-refunds calculation. Keep gross, tax, fee, refund, and net as separate columns and let net be derived.
Delaying the daily member snapshot.→ Membership endpoints return current state, not history. Every day you don't snapshot is a day of churn and cohort data that can never be reconstructed. A cron job and one append-only table buys it permanently.
Assuming a connector or MCP server will show up and do this for you.→ Four of five platforms have no managed connector, and the MCP servers here are analytics-blind, waitlist-gated, or unmaintained. Plan for a scheduled API pull as the normal case, not the workaround.
Reporting completion rate over every enrollment ever.→ Recent enrollments haven't failed to finish; free and comped ones were never going to. Apply a maturity window, segment paid from free, and print the window on the card.
Counting failed payments as churn.→ A declined charge is a dunning problem with a recovery path, not a cancellation. Counting it as churn overstates the number and hides the fix.
Never reconciling revenue against payouts.→ Payouts trail earnings by the platform's settlement delay, so expect a lag rather than a match — but a persistent gap is missing money. Build the reconciliation card before your accountant asks for it.

Integrations

Analytics

Dashboards

FAQ

What is creator analytics?
Creator analytics is the practice of turning the sales, enrollment, and membership records held inside creator platforms into one set of shared numbers. Each platform reports its own slice — Kajabi its offers, Thinkific its enrollments, Teachable its transactions, Gumroad its sales, Patreon its pledges — and none of them can tell you what you earned in total, or which email campaign produced which course sale. In Metabase, you model all five onto six shared tables and get a single P&L instead of five dashboards.
Why build creator dashboards in Metabase instead of the platform's own?
Three reasons, and none of them is that the platform dashboards are wrong. Totals: a creator selling courses on Teachable, templates on Gumroad, and a membership on Patreon has no place where those add up. Net: every platform reports gross, and the fees, tax, refunds, and chargeback costs that separate gross from net live in fields the dashboards don't total for you. Joins: course sales next to email sends, ad spend, and community activity is a question no single platform can answer, because no single platform has the other side of the join.
Which creator platforms have warehouse connectors?
One of the five. Thinkific has an official Fivetran connector (Lite type, generally available) syncing orders, enrollments, users, products, coupons, and promotions with incremental enrollments, plus a community Airbyte source with 11 streams and no incremental sync. Kajabi, Teachable, Gumroad, and Patreon have no managed connector on Airbyte, Fivetran, or dlt as of July 2026. That's the defining constraint of this category, and it means scheduled API pulls are the normal route rather than a fallback.
Can MCP servers do the work instead?
Not the revenue work. Kajabi ships an official MCP server on every plan, but its documentation states it won't surface analytics or handle payments. Thinkific's official beta server is read-only and useful for students, courses, and enrollments, but explicitly excludes billing, payment, and financial data. Teachable's is a local bundle behind an email waitlist, macOS and Claude only, on Growth plans and above. Gumroad has only a community server with no commits since April 2025. Patreon has no official server. Use MCP for exploration; pull money data from the APIs.
What data do I need to get started?
One table: creator_orders, one row per transaction, with gross, tax, fee, and net as separate columns. That alone powers the course revenue dashboard and answers the gross-versus-net question on day one. Add creator_products to break revenue out by course or tier, creator_members snapshots when memberships matter, and creator_enrollments plus creator_lesson_progress when you want to know whether anyone finishes what they bought.
Do I need a data warehouse, or is Metabase Cloud enough?
Metabase Cloud is enough to start, and for many creator businesses it's enough for a long time. It ships with a database, and the Metabase CLI turns a CSV export into a table and a model in one command (mb upload csv), with mb upload replace to refresh it. Creator data is small — thousands of orders, not billions of events. Graduate to a warehouse with scheduled syncs when you want history maintained without you, or when you're joining sales to ad and email data that already lives there.
How do I measure membership churn on these platforms?
By snapshotting daily, starting now. Patreon's Members endpoint and Gumroad's subscribers endpoint both return current state, not history — one pull tells you today and nothing about what changed. Append every member row stamped with a snapshot date, and churn, cohort retention, and net member change all fall out of comparing consecutive snapshots. Two definitional traps: on Patreon a declined_patron is a failed payment with a recovery path, not a cancellation, and annual pledges (pledge_cadence of 12) must be divided by twelve before summing into MRR.