'use client' import { useEffect, useState } from 'react' interface ProjectionMonth { month: number date: string startCapital: number profit: number withdrawal: number btcSweep: number endCapital: number btcHoldings: number totalCashOut: number netWorth: number } interface ScenarioResult { monthlyRate: number label: string finalNetWorth: number finalTrading: number finalBTC: number totalCashOut: number color: string } export default function ProjectionPage() { const [currentCapital, setCurrentCapital] = useState(0) const [loading, setLoading] = useState(true) const [selectedScenario, setSelectedScenario] = useState(70) // Strategy Parameters (Jan 2026) const STARTING_CAPITAL = 1400 const TRADING_CAP = 50000 const BTC_MONTHLY_GROWTH = 0.05 // 5% per month (60% annual) const START_DATE = new Date('2026-01-15') // Tiered Withdrawal Rules const getWithdrawal = (capital: number): number => { if (capital >= 30000) return 1200 if (capital >= 10000) return 600 if (capital >= 3000) return 300 if (capital >= 1500) return 100 return 0 } useEffect(() => { async function fetchCurrentCapital() { try { const response = await fetch('/api/drift/account-summary') const data = await response.json() if (data.success) { setCurrentCapital(data.freeCollateral || 0) } } catch (error) { console.error('Failed to fetch capital:', error) } finally { setLoading(false) } } fetchCurrentCapital() }, []) // Generate projection for a given monthly rate const generateProjection = (monthlyRate: number): ProjectionMonth[] => { const months: ProjectionMonth[] = [] let tradingCapital = STARTING_CAPITAL let btcHoldings = 0 let totalCashOut = 0 for (let month = 1; month <= 12; month++) { const monthDate = new Date(START_DATE) monthDate.setMonth(START_DATE.getMonth() + month - 1) const startCapital = tradingCapital const profit = tradingCapital * monthlyRate tradingCapital += profit // Tiered withdrawal const withdrawal = getWithdrawal(tradingCapital) tradingCapital -= withdrawal totalCashOut += withdrawal // BTC sweep (excess over $50k) let btcSweep = 0 if (tradingCapital > TRADING_CAP) { btcSweep = tradingCapital - TRADING_CAP tradingCapital = TRADING_CAP } // BTC holdings grow + new sweep btcHoldings = btcHoldings * (1 + BTC_MONTHLY_GROWTH) + btcSweep const netWorth = tradingCapital + btcHoldings + totalCashOut months.push({ month, date: monthDate.toLocaleDateString('en-US', { month: 'short', year: 'numeric' }), startCapital, profit, withdrawal, btcSweep, endCapital: tradingCapital, btcHoldings, totalCashOut, netWorth }) } return months } // Pre-calculate all scenarios const scenarios: ScenarioResult[] = [ { monthlyRate: 0.50, label: '50%/mo (Very Conservative)', finalNetWorth: 0, finalTrading: 0, finalBTC: 0, totalCashOut: 0, color: 'text-gray-400' }, { monthlyRate: 0.70, label: '70%/mo (Base Case)', finalNetWorth: 0, finalTrading: 0, finalBTC: 0, totalCashOut: 0, color: 'text-green-400' }, { monthlyRate: 0.90, label: '90%/mo (Optimistic)', finalNetWorth: 0, finalTrading: 0, finalBTC: 0, totalCashOut: 0, color: 'text-blue-400' }, { monthlyRate: 1.10, label: '110%/mo (Strong)', finalNetWorth: 0, finalTrading: 0, finalBTC: 0, totalCashOut: 0, color: 'text-purple-400' }, { monthlyRate: 1.50, label: '150%/mo (Exceptional)', finalNetWorth: 0, finalTrading: 0, finalBTC: 0, totalCashOut: 0, color: 'text-yellow-400' }, ].map(scenario => { const projection = generateProjection(scenario.monthlyRate) const final = projection[projection.length - 1] return { ...scenario, finalNetWorth: final.netWorth, finalTrading: final.endCapital, finalBTC: final.btcHoldings, totalCashOut: final.totalCashOut } }) const currentProjection = generateProjection(selectedScenario / 100) const finalMonth = currentProjection[currentProjection.length - 1] const formatCurrency = (value: number) => { return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(value) } return (
{/* Header */}

📈 Financial Projection

12-Month Strategy: Tiered Withdrawals + $50k Cap + BTC Sweep

{/* Strategy Rules Card */}

⚡ Strategy Rules

Trading Cap
$50,000
Max active trading capital
Excess Strategy
→ BTC
Monthly sweep to Bitcoin
BTC Growth
5%/mo
60% annual appreciation
Withdrawals
Tiered
$100→$300→$600→$1,200
{/* Tiered Withdrawal Rules */}

💸 Tiered Withdrawal Schedule

Capital < $3k
$100/mo
Capital < $10k
$300/mo
Capital < $30k
$600/mo
Capital ≥ $30k
$1,200/mo
{/* Current Status */}

📊 Current Status

Starting Capital
{formatCurrency(STARTING_CAPITAL)}
Live Capital
{loading ? '...' : formatCurrency(currentCapital)}
Strategy
ML v11.2
Pyramiding
7x + 7x
{/* Scenario Selector */}

🎯 Select Monthly Return Scenario

{[50, 70, 90, 110, 150].map(rate => ( ))}
{/* Year-End Summary for Selected Scenario */}

Year 1 Result @ {selectedScenario}%/mo

Trading Account
{formatCurrency(finalMonth.endCapital)}
BTC Holdings
{formatCurrency(finalMonth.btcHoldings)}
Cash Withdrawn
{formatCurrency(finalMonth.totalCashOut)}
Total Net Worth
{formatCurrency(finalMonth.netWorth)}
{/* Scenario Comparison Table */}

📊 All Scenarios Comparison

{scenarios.map((scenario, idx) => ( ))}
Scenario Trading BTC Holdings Cash Out Net Worth
{scenario.label} {formatCurrency(scenario.finalTrading)} {formatCurrency(scenario.finalBTC)} {formatCurrency(scenario.totalCashOut)} {formatCurrency(scenario.finalNetWorth)}
{/* Monthly Breakdown Table */}

📅 Month-by-Month Breakdown @ {selectedScenario}%/mo

{currentProjection.map((month, idx) => ( ))}
Month Start Profit Withdraw →BTC End BTC Total Net Worth
{month.date} {formatCurrency(month.startCapital)} +{formatCurrency(month.profit)} {month.withdrawal > 0 ? `-${formatCurrency(month.withdrawal)}` : '-'} {month.btcSweep > 0 ? formatCurrency(month.btcSweep) : '-'} {formatCurrency(month.endCapital)} {formatCurrency(month.btcHoldings)} {formatCurrency(month.netWorth)}
{/* Data Foundation */}

🔬 Data Foundation

ML v11.2 Backtest Results

  • 44 trades over 8 days
  • 84.09% win rate
  • 3.061 profit factor
  • • Extrapolated: ~176%/mo raw
  • • Base case: 70%/mo (conservative)

Pyramiding Configuration

  • • Base leverage: 7x
  • • Stack leverage: 7x
  • • Max total: 14x
  • • Max pyramid levels: 2
  • • Window: 4 hours (48 bars)
{/* Risk Disclaimer */}

⚠️ Important Disclaimer

These projections are based on backtested results and are NOT guaranteed. Past performance does not guarantee future results. Cryptocurrency trading involves substantial risk of loss. The projections assume consistent market conditions and strategy performance, which may not occur. Only trade with capital you can afford to lose.

{/* Footer */}

Strategy: ML v11.2 + Pyramiding | Exchange: MEXC (SOL/USDT Perp)

Last Updated: January 2026

) }