BEAT ALGORITHM — REAL-TIME EXECUTION FLOW

6 ML Models + 5 Rule Systems | +3,015 SOL (345% of Beat) | January 2026 | v2 Sizing (9-class) + Exit threshold 0.45
ML Model
Rule System
Action
Decision Gate
Data Input
PHASE 0 — DATA INGESTION GEYSER gRPC STREAM Yellowstone — every pump.fun trade sol_amount, token_amount, trader, buy/sell buyer_pre_sol, compute_units, priority_fee ACCUMULATOR ENGINE O(1) per trade — updates per-token state Counters: buy_count, sell_count, holder_count, volume_sol Rolling: buy_ratio_5/10, momentum_score, fomo_score, tpm_10 Geyser: avg_buyer_bal, pct_versioned, avg_cu, avg_cpi_depth PHASE 1 — FILTER (once per token at frame 8) MODEL 0: FILTER XGBoost · 300 trees · 30 features AUC 1.000 "Is this token worth watching at all?" Top: vol_acceleration (34%) · price_chg_10 · tpm_10 score >= 0.50? REJECT (ignore forever) NO 99.9% of all pump.fun tokens YES 99.7% of Beat tokens pass PHASE 2 — ENTRY (every frame on watchlist tokens) MODEL 1: ENTRY XGBoost · 400 trees · 27 features AUC 0.826 "Should I buy this token RIGHT NOW?" Top: sell_streak (36%) · buy_streak · unique_traders score >= 0.50? KEEP WATCHING NO next frame YES PHASE 3 — REGIME + SIZING (once at entry) RULE: REGIME CLASSIFIER Rule-based · hourly HOT / WARM / COLD HOT: grad_rate >= 0.55% & vol > 35K COLD: grad_rate < 0.30% | vol < 15K MODEL 2: SIZING XGBoost 9-class v2 · 500 trees · 70 features 81% train · 24% exact match vs Beat "How much SOL to deploy?" Top: sol_deployed (6.6%) · open_positions · buy_ratio_5 EXECUTE BUY 9 tiers: 1x(0.20) 2x(0.40) 2.5x(0.49) 3x(0.59) 4x(0.79) 5x(0.94) 6x(1.19) 9x(1.78) 12.5x(2.47) SOL Slip: <0.4→4.78% | 0.4-1.0→2.52% | >1.0→1.86% PHASE 4 — HOLD / MONITOR (every frame while holding) RUNNER MODEL XGBoost · 400 trees · 58 features AUC 0.799 "Will price rise 10%+ in next 50 frames?" Top: sol_to_migration · creator_rebuy_count · trades_in_slot runner_score feeds as input feature MODEL 5: EXIT XGBoost · 400 trees · 64 features AUC 0.860 "Should I sell RIGHT NOW?" Top: unrealized_pnl_ratio (7.2%) · tpm_10 · runner_score (1.5%) EXIT DECISION CHAIN (priority order) 1. STALENESS CHECK time_since_prev >= 30 seconds? YES FORCE SELL -617 SOL (20% WR, 46% wrong) NO 2. TIMEOUT CHECK frames_since_entry >= 200? YES FORCE SELL / DEAD Beat P99 = 163 frames NO 3. GRADUATION HOLD curve >= 80% AND velocity > 0 AND sell_score < 0.5? YES HOLD THROUGH ride to Raydium migration NO 4. SELL SIGNAL sell_score >= 0.45? YES SELL ALL NO 5. HOLD next frame PHASE 5a — RE-ENTRY (after selling, watch for recovery) RULES 6-9: RE-ENTRY CHAIN Regime-driven thresholds · up to 4 buys HOT: 1% recovery, runner >= 0.30, max 4 buys WARM: 2% recovery, runner >= 0.40, max 3 buys COLD: 3% recovery, runner >= 0.50, max 2 buys 2nd buy = Medium (0.79 SOL) · 3rd+ = Large (1.19 SOL) price recovered X% AND runner >= min? YES RE-ENTER (buy again) back to Hold/Monitor (Phase 4) NO max buys reached? YES DONE (move on) Re-entries: +772 SOL from 28,802 trades (40% win) PHASE 5b — POST-MIGRATION (after token graduates to Raydium) graduated to Raydium MODEL 11: POST-MIG ENTRY XGBoost · 30 features AUC 0.602 (weak) RULE: POST-MIG SIZING Fixed rule 0.97 SOL (Beat's median) RULE: POST-MIG EXIT Sell all at market immediately 92% via PUMP_AMM · 0.81 SOL median SELL ON RAYDIUM Post-migration: +70 SOL (weak — pump.fun features can't predict Raydium) BACKGROUND SERVICES (always running) REGIME CLASSIFIER Runs hourly graduation_rate + volume -> HOT/WARM/COLD PORTFOLIO TRACKER Runs continuously open_positions, sol_deployed, win_rate ACCUMULATOR ENGINE Runs every trade O(1) updates, feeds ALL models RESULT: +3,015 SOL | 45,335 trades | 47.9% win rate | 7.8 SOL max drawdown