Revenue Tracker — Live Financial Intelligence
"What gets measured gets managed." — Peter Drucker "Revenue is a fact. Everything else is an opinion." — Agent principle
This skill is the financial nervous system of the agent ecosystem. Every euro that comes in — or should have come in — is tracked, visualized, and analyzed. The agent never flies blind on revenue.
Why This Skill Exists
WITHOUT this skill:
CEO-master asks "what's our MRR?" → Agent guesses
A trading strategy underperforms for 3 weeks → Nobody notices
Acquisition channel ROI drops → Invisible until it's too late
Principal asks for progress → Agent can't show a chart
WITH this skill:
Every revenue event logged the moment it happens
Visual progress toward every financial goal
Automatic anomaly detection across all income streams
Weekly HTML report with charts and metrics
Telegram alert the moment a milestone is crossed
Revenue Streams Tracked
STREAM 1 — Subscriptions / SaaS
Monthly recurring revenue from products and services
Tracks: MRR, ARR, new subs, churn, expansion, NRR
STREAM 2 — Trading (Crypto + Polymarket)
Realized PnL from all automated trading activity
Tracks: daily PnL, win rate, best strategy, drawdown
STREAM 3 — Content / Digital Products
One-time and recurring revenue from content, courses, signals
Tracks: Gumroad sales, newsletter revenue, product launches
STREAM 4 — Services / Consulting
B2B project revenue, one-time invoices
Tracks: project revenue, average deal size, pipeline value
STREAM 5 — Affiliate / Referral
Commission revenue from referred products or services
Tracks: clicks, conversions, commission earned
Core Operations
RECORD — Log a revenue event
Triggers (automatic — called by other skills):
→ acquisition-master closes a sale
→ crypto-executor closes a profitable trade
→ content post generates a Gumroad sale
→ invoice paid for a service project
Command:
python3 revenue_tracker.py record \
--stream subscriptions \
--amount 97 \
--currency EUR \
--description "New subscriber — Jean Dupont — VIP signals" \
--client-id "jean-dupont" \
--type new_mrr
Streams: subscriptions | trading | content | services | affiliate
Types: new_mrr | churn | expansion | one_time | trade_win |
trade_loss | refund | affiliate_commission
DASHBOARD — Visual ASCII dashboard
Triggers:
→ Every Monday morning before CEO weekly report
→ On-demand: "show me the revenue dashboard"
→ After any significant revenue event
Command:
python3 revenue_tracker.py dashboard
REPORT — Generate HTML visual report
Triggers:
→ Weekly (sent to Telegram as summary + link)
→ Monthly (full report with charts)
→ On-demand from principal
Command:
python3 revenue_tracker.py report \
--period week (or: month | quarter | all)
python3 revenue_tracker.py report \
--period month --format html
GOAL — Track progress toward financial targets
Command:
python3 revenue_tracker.py goal \
--set "mrr_10k" --target 10000 --deadline "2026-06-30"
python3 revenue_tracker.py goal --list
ASSET — Track non-revenue assets
Command:
python3 revenue_tracker.py asset \
--action add \
--name "Binance Trading Capital" \
--value 500 \
--currency USDT
python3 revenue_tracker.py asset --list
LEARN — Log a revenue learning
Triggers:
→ After any campaign result (what worked, what didn't)
→ After a trading strategy review
→ After a milestone reached or missed
Command:
python3 revenue_tracker.py learn \
--category acquisition \
--insight "Cold email to CTOs at Series A gets 14% reply rate" \
--impact high
Visual Dashboard — ASCII Output
╔══════════════════════════════════════════════════════════════╗
║ 📈 REVENUE DASHBOARD — 2026-03-16 ║
╠══════════════════════════════════════════════════════════════╣
║ MRR €4,200 ▲ +35.5% vs last month ║
║ ARR €50,400 ║
║ Phase 1 — Proof of Concept ║
╠══════════════════════════════════════════════════════════════╣
║ PROGRESS TOWARD GOALS ║
║ ║
║ €10K MRR ████████████░░░░░░░░░░ 42.0% est. 21 wks ║
║ €50K MRR ██░░░░░░░░░░░░░░░░░░░░ 8.4% est. 68 wks ║
║ €1M ARR █░░░░░░░░░░░░░░░░░░░░░ 5.0% est. 2+ yrs ║
╠══════════════════════════════════════════════════════════════╣
║ REVENUE BY STREAM (this month) ║
║ ║
║ Subscriptions ████████████████░░░░ €3,200 76.2% ║
║ Trading ████░░░░░░░░░░░░░░░░ €650 15.5% ║
║ Content ██░░░░░░░░░░░░░░░░░░ €350 8.3% ║
║ Services ░░░░░░░░░░░░░░░░░░░░ €0 0.0% ║
╠══════════════════════════════════════════════════════════════╣
║ MRR TREND (last 8 weeks) ║
║ ║
║ 5K ┤ ╭─ ║
║ 4K ┤ ╭───╯ ║
║ 3K ┤ ╭────────╯ ║
║ 2K ┤ ╭──────────╯ ║
║ 1K ┤ ╭──────────╯ ║
║ 0 ┼───────┴────────────────────────────────────── ║
║ w1 w2 w3 w4 w5 w6 w7 w8 ║
╠══════════════════════════════════════════════════════════════╣
║ KEY METRICS ║
║ CAC €18 LTV €2,061 LTV/CAC 116x Churn 5.7% ║
╠══════════════════════════════════════════════════════════════╣
║ TOP LEARNINGS THIS WEEK ║
║ ✅ Cold email to CTOs → 14% reply rate (best ever) ║
║ ✅ BTC momentum 4h → +3.2% avg (5 trades) ║
║ ⚠️ Paid ads negative ROI → stopped ║
╚══════════════════════════════════════════════════════════════╝
MRR Trend Chart — ASCII Sparkline
The agent generates inline sparklines for Telegram:
MRR last 8 weeks: ▁▂▃▄▅▆▇█ (+35.5% this month)
Trading PnL week: ▄▆▃▇▂▅▄▆ (+€127 net)
Milestone Alert System
The agent sends a Telegram alert the moment a milestone is crossed.
REVENUE MILESTONES (automatic alerts):
🎯 First €1 earned
🎯 First €100 MRR
🎯 First €1,000 MRR
🎯 First €5,000 MRR
🎯 First €10,000 MRR ← Phase 1 → Phase 2
🎯 First €50,000 MRR ← Phase 2 → Phase 3
🎯 First paying customer
🎯 First 10 paying customers
🎯 First 100 paying customers
ANOMALY ALERTS (automatic):
🔴 MRR drops > 10% week over week
🔴 3+ churns in 24 hours
🔴 Trading drawdown > 15% of capital
🟡 No new revenue for 7 days
🟡 Best acquisition channel ROI drops > 30%
Telegram format:
"🎯 MILESTONE: First €10K MRR reached!
Phase 1 complete → entering Phase 2.
Time taken: 47 days from first customer."
Automatic Integration with Other Skills
acquisition-master fires on sale:
→ revenue_tracker.py record --stream subscriptions --type new_mrr
acquisition-master fires on churn:
→ revenue_tracker.py record --stream subscriptions --type churn
crypto-executor fires on trade close:
→ revenue_tracker.py record --stream trading --type trade_win/trade_loss
agent-shark-mindset fires on content sale:
→ revenue_tracker.py record --stream content --type one_time
ceo-master reads for weekly report:
→ revenue_tracker.py dashboard
→ revenue_tracker.py report --period week --format json
memory-manager reads on recall:
→ revenue context loaded per client and per project
HTML Report — Visual Output
Weekly HTML report saved to /workspace/revenue/reports/YYYY-MM-DD.html.
Contains:
- MRR trend line chart (8 weeks)
- Revenue by stream pie chart
- Goal progress bars (all active goals)
- Top 5 clients by revenue
- Top 3 trades by PnL
- Learning log for the week
- Anomalies detected
- Next week forecast (linear extrapolation)
The agent can send the report path via Telegram so the principal can open it directly in a browser.
Learning Log — Revenue Intelligence
Every revenue lesson is logged with impact level and category.
/workspace/revenue/data/learnings.jsonl
Format per entry:
{
"date": "2026-03-16",
"category": "acquisition",
"insight": "Cold email to CTOs at Series A gets 14% reply rate",
"impact": "high",
"stream": "subscriptions",
"action": "double cold email volume targeting Series A CTOs"
}
Categories: acquisition | trading | content | retention | pricing | product
Impact: high | medium | low
The agent reviews all learnings every Monday and includes the top 3 insights in the weekly CEO report.
Auto-Update Dashboard — After Every Revenue Event
Every time the agent records a revenue event, the script automatically:
1. Updates /workspace/revenue/reports/dashboard.html
→ Dark-mode visual dashboard with KPI cards, stream bars,
goal progress bars, and recent events table
→ Auto-refreshes every 60 seconds in the browser
→ Always available — no external dependencies
2. Outputs structured update instructions for the agent
→ Agent executes in priority order:
PRIORITY 1 — Google Sheets (via wesley-web-operator / gog)
Sheet: "Veritas Revenue Tracker"
Tab "Events" → append new event row
Tab "Dashboard" → update MRR, ARR, Total, Customers, Phase cells
PRIORITY 2 — Notion (via virtual-desktop, if Sheets unavailable)
Database: "Revenue Tracker"
→ Create new entry with event fields
→ Update Summary page KPIs
PRIORITY 3 — HTML local dashboard (always generated, zero deps)
File: /workspace/revenue/reports/dashboard.html
→ Automatically updated by the script itself
Google Sheets tab structure (agent creates on first use):
Tab "Events":
Date | Stream | Type | Amount (€) | Description | MRR after | Total after
Tab "Dashboard":
B2 = MRR current B3 = ARR
B4 = Total all time B5 = Active customers
B6 = Current phase B7 = MRR growth % vs last month
Tab "By Stream":
One row per stream — MRR contribution + % share
Tab "Goals":
Goal name | Target | Current | % progress | Deadline | Est. weeks left
Weekly Revenue Routine
MONDAY 07:00
1. Run dashboard → parse output
2. Generate weekly report (HTML)
3. Extract top 3 revenue learnings
4. Check for anomalies
5. Update ceo-master metrics_data.json with fresh revenue data
6. Send Telegram summary
DAILY (after any revenue event)
1. Record event immediately
2. Check if milestone triggered → alert if yes
3. Check anomalies → alert if detected
FRIDAY 17:00
1. Weekly reconciliation — cross-check all streams
2. Log 1 learning per active stream
3. Update asset valuations (trading capital mark-to-market)
Workspace Structure
/workspace/revenue/
├── data/
│ ├── revenue_state.json ← current MRR, totals, last updated
│ ├── events.jsonl ← append-only log of all revenue events
│ ├── assets.json ← non-revenue assets (trading capital, etc.)
│ ├── goals.json ← active financial goals + progress
│ └── learnings.jsonl ← revenue intelligence log
├── reports/
│ ├── 2026-03-16.html ← weekly HTML reports
│ └── ...
└── scripts/
└── revenue_tracker.py ← CLI tool for all operations
Error Handling
ERROR: revenue_state.json not found
Cause: First run
Action: Run revenue_tracker.py --init
Log: AUDIT.md → "Revenue tracker initialized [date]"
ERROR: events.jsonl corrupted (partial write)
Cause: Process killed mid-write
Action: Truncate last incomplete line, rebuild state from clean events
Log: ERRORS.md → "events.jsonl repaired [date]"
ERROR: Negative MRR calculated
Cause: More churn events than new MRR (data entry error)
Action: Flag anomaly, do not update state, alert principal
Log: ERRORS.md → "Negative MRR detected — manual review needed"
Telegram: 🔴 "Revenue anomaly: MRR calculation negative — check data"
ERROR: Goal deadline passed without reaching target
Cause: Target missed
Action: Mark goal as "missed", log lesson, propose new target
Log: LEARNINGS.md → "Goal missed: [name] — [reason]"
ERROR: HTML report generation fails
Cause: No events in period / empty data
Action: Generate minimal report with "no data" message
Log: AUDIT.md → "Empty report generated [date]"