---
name: leoyeai/revenue-tracker
source: https://app.decimal.ai/s/leoyeai-revenue-tracker@1/SKILL.md
source_sha256: d2e8361abdce
---

# 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]"
```