CPL Tracking Spreadsheet Template (Google Sheets + Excel)
Free CPL tracking spreadsheet template: campaign tracker, sub-ID log, offer comparison with EPC formulas, and weekly summary. Copy-paste ready for Google Sheets or Excel.
Every successful CPL affiliate we know started with a spreadsheet. Not because spreadsheets are great — because knowing your numbers is non-negotiable, and a spreadsheet is the fastest zero-cost way to get them.
This is the exact template structure we use: 4 sheets that cover everything a beginner needs — campaign tracking, sub-ID logging, offer comparison, and weekly summaries — with the formulas already worked out. Copy it into Google Sheets or Excel and you have a working tracking system in 15 minutes.
When you outgrow it (you will, around 3+ traffic sources or 50+ daily conversions), the upgrade path is a free tracker tier — see our free CPL tracking tools roundup and tracking tools comparison. Until then, this spreadsheet is genuinely all you need.
Sheet 1: Campaign Tracker (the daily log)
One row per day per campaign. This is your source of truth for “what happened and when.”
| Date | Campaign | Offer | Network | Traffic Source | Clicks | Leads | Approved | Payout | Revenue | Cost | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-18 | sweeps-us-01 | $750 Shein | CPAGrip | SEO article | 45 | 3 | 3 | $1.20 | $3.60 | $0 | sidebar CTA |
| 2026-09-18 | gift-us-02 | Free Gift Guide | CPAlead | 120 | 9 | 8 | $0.95 | $7.60 | $0 | pin #3 |
Why these columns:
- Approved (not just Leads) — scrubbing means tracked leads ≠ paid leads. Track both or your revenue projections will always be optimistic. See how to avoid low-quality leads for why approval rates matter.
- Payout per offer — networks change payouts; logging the payout at the time preserves your math.
- Notes — placement changes, offer swaps, anomalies. Three weeks later, this column is the only way you remember what changed on the 14th.
Sheet 2: Sub-ID Log (your link registry)
Every tracked link you create gets one row here. This sheet answers “which placement produced this conversion?” — the single most valuable question in CPL.
| Sub-ID | Full Link | Offer | Placement | Page/Platform | Created | Status |
|---|---|---|---|---|---|---|
| shein-art-bottom | [link+s1] | $750 Shein | Article bottom CTA | /articles/best-gift-cards | 2026-09-01 | Active |
| shein-sidebar | [link+s2] | $750 Shein | Sidebar widget | Site-wide | 2026-09-01 | Paused 09-10 |
Naming convention that scales: offer-placement-variant — e.g., shein-art-bottom-v2. Hyphens, no spaces, no special characters (some networks mangle them). Keep Sub-IDs to 2–3 per offer until you have real volume — spreading 50 clicks across 10 Sub-IDs gives you 10 meaningless numbers instead of 3 useful ones. Our sub-ID tracking guide goes deeper on structure.
Critical habit: create the Sub-ID row BEFORE publishing the link. Links without registry rows become “where did this conversion come from?” mysteries you can never solve retroactively.
Sheet 3: Offer Comparison (the decision maker)
One row per offer you are testing or considering. This sheet exists so you compare offers by math, not by payout sticker.
| Offer | Network | Payout | Your Clicks | Your Leads | Your CR | Network EPC | Your EPC | Cap | Terms OK? | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|
| $750 Shein | CPAGrip | $1.20 | 850 | 51 | 6.0% | $0.06 | $0.072 | 100/day | ✅ | Scale |
| Free iPhone 16 | CPAlead | $1.50 | 400 | 8 | 2.0% | $0.04 | $0.030 | 50/day | ⚠️ no incent | Kill |
The formulas (assuming row 2, Google Sheets — same in Excel):
CR: =E2/D2 (leads ÷ clicks, format as %)
Your EPC: =(C2*E2)/D2 (payout × leads ÷ clicks)
That is the whole engine. The comparison table from our payout vs conversion math guide explains why “Your EPC” beats “Network EPC” as your decision metric — network EPC blends everyone’s traffic, yours reflects YOUR funnel. Kill offers where your EPC after 500+ clicks is below your traffic cost per click with no improving trend; the when to kill a campaign framework sets the exact thresholds.
Sheet 4: Weekly Summary (the optimization view)
One row per week, pulled from Sheet 1 every Monday. This is the sheet you actually make decisions from.
| Week | Total Clicks | Leads | Approval Rate | Revenue | Cost | Profit | Best Offer | Best Placement | One Change Made |
|---|---|---|---|---|---|---|---|---|---|
| Sep 1–7 | 610 | 34 | 88% | $38.90 | $0 | $38.90 | $750 Shein | art-bottom | Paused sidebar |
| Sep 8–14 | 890 | 52 | 91% | $61.40 | $0 | $61.40 | $750 Shein | art-bottom | Added v2 CTA |
Approval rate formula:
=Approved Leads ÷ Total Leads (pull both sums from Sheet 1 with SUMIF on the week)
The “One Change Made” column is the discipline. One change per week means you always know what caused next week’s movement. Three changes and you are guessing. This pairs directly with the simple weekly testing routine — that article is the process, this sheet is the scoreboard.
Optional Sheet 5: Content ROI (for SEO/content affiliates)
If you run a content site, one more sheet pays for itself: which ARTICLES earn money.
| Article URL | Published | Offer(s) Placed | Clicks (30d) | Leads (30d) | Revenue (30d) | Last Updated |
|---|---|---|---|---|---|---|
| /articles/best-gift-cards | 2026-08-01 | Shein, Nike | 310 | 19 | $22.80 | 2026-09-15 |
Pull click data from GA outbound-click events and lead data from network Sub-ID reports (your Sub-ID names include the article slug — this is why). After 2–3 months, this sheet tells you exactly which content cluster earns, so you write more of what pays and less of what does not. It is the feedback loop behind our SEO traffic strategy.
Set It Up in 15 Minutes
- Create the spreadsheet — new Google Sheet, five tabs named: Daily Log, Sub-ID Registry, Offers, Weekly, Content ROI
- Paste the headers from the tables above into row 1 of each tab
- Add the two formulas (CR and Your EPC) to the Offers tab
- Register your existing links in the Sub-ID Registry — yes, all of them, even the old ones
- Backfill this week’s data from your network dashboards into the Daily Log
- Set a recurring 20-minute Monday slot to fill the Weekly tab and make your one change
Total setup: about 15 minutes. Weekly maintenance: 20 minutes. That is the entire cost of knowing exactly what your CPL business is doing.
Common Spreadsheet Tracking Mistakes
Tracking revenue in two places. Your network dashboard is the source of truth for payments; your spreadsheet is for analysis. Reconcile weekly — if Sheet 1 says $61 but the dashboard says $48, find the discrepancy (usually scrubbing you missed) instead of averaging them.
Logging clicks from the wrong source. Network dashboards undercount clicks (they only see clicks that reach the offer). For content sites, GA outbound events are more accurate for YOUR traffic; for paid campaigns, the ad platform’s number is. Pick one source per campaign and note which in the campaign name.
Sub-ID sprawl. Fifty Sub-IDs across 200 weekly clicks = noise. Consolidate to 2–3 per offer until volume justifies more granularity.
Never closing the loop. A spreadsheet you update but never read is procrastination dressed as work. The Monday weekly-summary habit is the entire point — the weekly testing routine tells you what to do with what you see.
When to Graduate to a Real Tracker
The spreadsheet stops being enough when: you run 3+ traffic sources and manual matching eats 15+ minutes daily, you need real-time data (paid traffic optimization cannot wait for Monday), or you want automated rules (pause losing placements, rotate offers). At that point, a free tracker tier — BeMob’s 100K events/month covers most beginners — with proper postback tracking takes over. Read postback URL vs cookie tracking to understand why server-side tracking is the non-negotiable feature, and keep the spreadsheet as your weekly summary layer even after upgrading.
FAQs
Google Sheets or Excel — does it matter?
No. Everything in this template works identically in both. Google Sheets wins for accessibility (any device, auto-save, free) and sharing with a VA later; Excel wins if you already live in it. The formulas shown work in both without modification.
How often should I update the tracking spreadsheet?
Daily log: 5 minutes per day or every 2–3 days — whatever keeps it accurate without becoming a chore you abandon. Weekly summary: non-negotiable, same time every week. Consistency beats granularity; a spreadsheet updated weekly forever beats one updated daily for two weeks then abandoned.
What metrics matter most for a beginner?
Four, in order: approval rate (are your leads real?), your EPC (is this offer worth your click?), revenue by Sub-ID (which placement earns?), and profit (after any traffic costs). Clicks and raw leads are vanity inputs; those four drive every kill/scale decision.
Can a spreadsheet replace an affiliate tracker?
For a content site or single traffic source: yes, for months. For paid traffic or multi-source campaigns: no — you need real-time, server-side data to optimize, which means postbacks into a tracker. The honest framing: the spreadsheet is Phase 1 of tracking maturity (covered in our tracking setup for beginners), a tracker is Phase 2, and most beginners should run Phase 1 longer than they think.
My network shows different numbers than my spreadsheet — which is right?
For conversions and payouts: the network dashboard, always — it is what you get paid on. For clicks and traffic behavior: your own sources (GA, ad platforms) are usually more complete. Discrepancies of a few percent are normal (timezones, deduplication); gaps over 10% mean a tracking configuration problem — work through conversion troubleshooting.