A Google Sheets spreadsheet with the right columns gives you a clear, transaction-by-transaction view of what your course business is earning. You can see total sales, refunds, payment plan installments, and monthly recurring revenue in one place — without paying for accounting software or waiting for your payment processor's dashboard to load. Below is a structure you can copy into a blank sheet and start using today.
What you’ll walk away with:
- A transaction log tracking every sale, refund, and payment plan installment
- Automated formulas for gross revenue, net revenue, MRR, and refund rate
- Conditional formatting that highlights refunds and recurring payments at a glance
- A monthly summary showing revenue trends over time
Why Google Sheets works for revenue tracking
Most course creators already have a Google Sheets account, and that removes the biggest barrier to actually tracking revenue: setup. You don't need to learn new software, connect an API, or pay a monthly fee. You open a blank sheet, add your columns, and start recording transactions.
The formulas handle the math you'd otherwise do by hand or in your head. A SUMIF formula can tell you exactly how much you earned from a specific course last month. A simple division gives you your refund rate. These numbers update instantly every time you add a new row, so your financial picture is always current.
The limitation is real: you enter data manually. Your payment processor (Stripe, PayPal, or your course platform) already records transactions automatically, so a spreadsheet adds a data-entry step. The benefit is that you control the structure. You can add columns your processor doesn't track — like which marketing campaign brought in that sale, or whether a student came from a referral. For a course business doing under a few hundred transactions per month, the manual step is manageable and the visibility is worth it.
Step-by-step: Building your revenue tracker
Create your transaction log columns
Open a new Google Sheet and type these headers across row 1: Date, Student Name, Email, Course, Amount, Payment Type, Refund, Processor Fee, and Notes. Bold the header row and freeze it (View > Freeze > 1 row) so it stays visible as you scroll through months of transactions.
Each column serves a specific purpose. Date is when the transaction occurred. Course tells you which product generated the revenue. Amount is the gross sale price. Payment Type distinguishes one-time purchases from payment plan installments — this matters for calculating MRR. Refund is either blank (no refund) or the refund amount. Processor Fee records what Stripe or PayPal charged you on that transaction. Notes captures context: "came from webinar," "requested refund due to schedule conflict," or "upgraded from mini-course."
Add data validation for payment type
Select the entire Payment Type column (minus the header). Go to Data > Data validation > Add rule. Choose "Dropdown" and enter your options: One-Time, Installment, Subscription. Click Save. This prevents inconsistent entries like "one time," "1x," or "monthly" that would break your summary formulas later.
Three types cover most course businesses. One-Time is a single full payment. Installment is one payment in a multi-payment plan (you'll have multiple rows for the same student if they're on a 3-pay or 6-pay plan). Subscription applies if you run a membership or recurring-access model.
Add formulas for key metrics
Create a summary section to the right of your data (columns K through M work well) or at the top of the sheet. Add these formulas:
- Gross Revenue:
=SUM(E2:E1000)— total of all amounts collected - Total Refunds:
=SUM(G2:G1000)— total refunded - Net Revenue:
=SUM(E2:E1000) - SUM(G2:G1000) - SUM(H2:H1000)— what actually lands in your account after refunds and processor fees - Refund Rate:
=COUNTIF(G2:G1000, ">0") / COUNTA(E2:E1000)— the percentage of transactions that resulted in a refund - MRR (Monthly Recurring Revenue):
=SUMIFS(E2:E1000, F2:F1000, "Subscription")— sum of subscription payments this month
These five numbers give you the financial dashboard most course creators need. Gross revenue shows momentum. Net revenue shows reality. Refund rate flags whether something in your sales process or course delivery needs attention — a refund rate above 10 percent is worth investigating.
Add conditional formatting
Select your entire data range. Go to Format > Conditional formatting and create two rules:
- Red text when the Refund column contains a value greater than zero. This makes refunds visually obvious as you scan the sheet, so you can spot patterns — like multiple refunds from the same course or the same week.
- Light green background when Payment Type equals "Subscription." Recurring revenue is the healthiest kind, and the green highlight lets you see at a glance how much of your income is recurring versus one-time.
Create a monthly summary tab
Right-click the sheet tab at the bottom and select "Duplicate." Rename the new tab "Monthly Summary." Clear the transaction data and set up a table with these columns: Month, Gross Revenue, Refunds, Net Revenue, Transaction Count, Refund Rate, and MRR.
For each month, use SUMIFS to pull from your transaction log. For example, to calculate January 2026 gross revenue: =SUMIFS('Transaction Log'!E:E, 'Transaction Log'!A:A, ">=2026-01-01", 'Transaction Log'!A:A, "<2026-02-01")
This monthly view is where patterns become visible. You can see whether revenue is growing month over month, whether refund rates are trending up or down, and whether a launch month produced a spike followed by a valley.
Track revenue by course
If you sell more than one course, add a second summary section that breaks down revenue by product. Use SUMIFS with the Course column as the criterion: =SUMIFS(E2:E1000, D2:D1000, "Course Name Here")
List each of your courses with its total revenue, transaction count, and refund rate. This tells you which courses are carrying your business and which ones might need better marketing, updated content, or a pricing adjustment. A course with strong sales but a high refund rate is a different problem than a course with low sales and zero refunds — the first has a delivery issue, the second has a visibility issue.
Course creator tips
Record transactions the day they happen
The accuracy of a manual revenue tracker depends entirely on your consistency. If you let transactions pile up for two weeks and then try to reconstruct them from payment processor emails, you'll miss entries and introduce errors. Bookmark your spreadsheet and add each sale or refund the same day it occurs. The entry takes thirty seconds. The habit is what makes the data trustworthy.
Add a source column when you're ready
Once your basic tracker is working, consider adding a Source column: where did this student come from? Options might include Webinar, Blog, Referral, Social Media, or Email List. This is data your payment processor doesn't capture, and it answers the question every course creator eventually asks: "Which of my marketing efforts are actually producing sales?"
Reconcile monthly against your payment processor
At the end of each month, compare your spreadsheet total against the payout report from Stripe, PayPal, or your course platform. The numbers should match within a few dollars (small rounding differences are normal). If they don't match, you've either missed a transaction or double-entered one. This five-minute reconciliation catches errors before they compound across months.
Limitations
Manual data entry scales poorly
Manual data entry is the obvious constraint. Every transaction you record is a step your payment processor already did automatically. For a business doing 10 to 50 transactions per month, the overhead is modest. Above 100 transactions per month, you'll spend enough time on data entry that dedicated accounting software like Wave (free) or QuickBooks starts to make sense.
No automatic data sync
A spreadsheet can't pull data automatically from your payment processor. Every number in the sheet is only as accurate as your data entry. If you forget to log a refund or mistype an amount, your metrics will be wrong until you catch the error during reconciliation.
Rear-view mirror, not a forecast
A spreadsheet gives you a rear-view mirror, not a forecast. It tells you what happened, not what will happen. Predicting future revenue from payment plan installments or subscription renewals requires additional formulas and assumptions that add complexity beyond what most course creators need in their first year.
Frequently asked questions
How often should I update my revenue spreadsheet?
Update it every time you process a sale or refund. If that feels like too much, set a weekly appointment — every Monday morning, for example — and enter the previous week's transactions in one batch. The key is consistency: a sheet you update every week is far more useful than one you update sporadically.
Can I track revenue from multiple courses in a single spreadsheet?
Yes, and you should. Add a Course column so each row records which course generated that sale. Your summary formulas can then use SUMIFS to break down revenue by course, by month, or both. A single spreadsheet gives you a complete picture of your business, not just one product.
Should I track gross revenue or net revenue after payment processor fees?
Track both. Record the full sale amount in your Amount column, and add a separate column for processor fees (Stripe charges 2.9% + 30 cents per transaction, for example). Your net revenue formula subtracts fees from the gross total. Tracking both numbers matters because gross revenue tells you how your sales are performing, while net revenue tells you what actually lands in your bank account.
Related guides
- How to Track Student Progress Using Google Sheets — track who's completing your course alongside what they're paying
- How to Create a Course Production Schedule Using Google Sheets — manage your content creation workflow in the same tool
- How to Price Your Online Course — set a price that your revenue tracker will validate over time
- How to Analyze Course Feedback Using AI — pair revenue data with student feedback patterns for a complete picture
From spreadsheet to built-in revenue tracking
A Google Sheet gives you financial visibility when you're starting out. It costs nothing, it's flexible, and it forces you to look at your numbers regularly — which is a healthy habit for any business owner.
When the manual entry starts to feel like overhead — or when you want your revenue data to live alongside your student progress, course content, and marketing in one place — Ruzuku handles payments directly with zero transaction fees. You see every sale, every payment plan installment, and every refund inside your dashboard, without entering a single number yourself. Start building your course on Ruzuku for free.