#!/usr/bin/env python3 """ Felt Financial Model v5 — Bare bones reality Only costs that are truly required. No fluff. """ EUR_TO_DKK = 7.45 print("=" * 75) print("FELT FINANCIAL MODEL v5 — BARE BONES BOOTSTRAP") print("=" * 75) # Year 1-2: absolute minimum # Year 3+: add things as revenue justifies them phases = [ { "label": "Year 1-2 (Bootstrap)", "costs": [ ("Hetzner dedicated (16c/32t, 64GB, 2×1TB)", 100), ("Domains (felt.io + a couple reserves)", 8), ("Transactional email (Mailgun free tier → $15)", 10), ], }, { "label": "Year 3+ (Revenue covers it)", "costs": [ ("Hetzner primary", 100), ("Hetzner backup/second server", 100), ("Domains", 8), ("Transactional email", 15), ("SMS (Twilio)", 10), ("Accounting (€1k/yr ÷ 12)", 83), ("Insurance (if casino clients require it)", 50), ], }, ] for phase in phases: total = sum(c for _, c in phase["costs"]) print(f"\n {phase['label']}:") for name, cost in phase["costs"]: print(f" {name:<55s} €{cost:>5}/mo") print(f" {'─' * 60}") print(f" {'TOTAL:':<55s} €{total:>5}/mo = €{total*12:,}/yr") bootstrap_monthly = sum(c for _, c in phases[0]["costs"]) print(f"\n Your actual burn in Year 1-2: €{bootstrap_monthly}/mo") print(f" That's {bootstrap_monthly * EUR_TO_DKK:.0f} DKK/mo. Less than a tournament buy-in.") # ================================================================ # 5-YEAR WITH REAL COSTS # ================================================================ print(f"\n{'=' * 75}") print("5-YEAR PROJECTION") print(f"{'=' * 75}") years = [ ("Year 1 — Build + DK early adopters", 40, 3, 2, 0, 0, 118, 0), ("Year 2 — DK saturated, word of mouth", 120, 12, 6, 0, 0, 118, 1000), ("Year 3 — Nordics, first casino", 300, 30, 18, 2, 0, 366, 1000), ("Year 4 — N. Europe, casino growth", 550, 50, 35, 4, 3, 466, 1000), ("Year 5 — International, lifestyle", 800, 70, 50, 6, 8, 566, 1000), ] # columns: label, free, offline, pro, casino_starter, casino_pro_properties, monthly_fixed, annual_accounting cumulative = 0 for i, (label, free, off, pro, cs, cp, fixed, acct) in enumerate(years): rev = off * 25 + pro * 100 + cs * 249 + cp * 499 annual_rev = rev * 12 var = free * 0.45 + off * 0.65 + pro * 1.15 + cs * 5.15 + cp * 10.15 annual_cost = (fixed + var) * 12 + acct net = annual_rev - annual_cost cumulative += net net_mo = net / 12 paying = off + pro + cs + cp total = free + paying print(f"\n Year {i+1}: {label}") print(f" {total} venues ({free} free, {paying} paying) | Fixed: €{fixed}/mo") print(f" Revenue: €{rev:>7,}/mo = €{annual_rev:>8,}/yr") print(f" Costs: €{fixed+var:>7,.0f}/mo = €{annual_cost:>8,.0f}/yr") print(f" Net: €{net_mo:>7,.0f}/mo = €{net:>8,.0f}/yr (cum: €{cumulative:>8,.0f})") if net > 0: trips = int(net / 1500) dkk = net_mo * EUR_TO_DKK print(f" → {dkk:,.0f} DKK/mo | ~{trips} poker weekends/yr funded") print(f"\n{'=' * 75}") print("THAT'S IT.") print(f"{'=' * 75}") print(f""" €{bootstrap_monthly}/mo gets you from zero to a proven product in Denmark. By Year 2 the business pays for itself. By Year 3 it funds your poker travel. By Year 4 it's real income. By Year 5 it's a lifestyle business doing €130k+/yr on 90% margins. Total investment to get there: ~€{bootstrap_monthly * 18:,} over 18 months before it's self-sustaining. That's the price of a used car. """)