Bet2 — Professional Sportsbook Gap Analysis & Audit

Brutally honest, enterprise-grade review of the C:\laragon\www\bet2 sportsbook platform (MySQL sport3, Altenar sb2vegasbet feed, Sportradar LMT widget, custom PHP 8.3 stack). Benchmark: top-tier regulated operators (bet365, Flutter, Entain, DraftKings, Kambi, SBTech/Light & Wonder).

Audit date: 2026-04-22 · Auditor role: senior sportsbook platform architect / trading / risk / compliance / QA.

1. Executive Assessment

22 / 100
Overall Maturity
MVP
Product Stage
NO-GO
Real-money Launch
B+
Feed & UI Craft

Verdict in one paragraph

Bet2 is an impressive front-end and odds-ingestion prototype — the Altenar harvester, 7-group market classifier, pulsing odds UI, Sportradar LMT modal, idempotent upsert, and SettlementEngine scaffolding are well-crafted. However, measured against a real-money, multi-jurisdiction sportsbook, this is still an MVP. It lacks the player lifecycle, wallet/ledger, KYC/AML, risk console, trader controls, compliance tooling, payment rails, DevOps hardening, audit trails and reporting that define a professional operator. Launching this as-is on real money would be financially reckless and likely illegal in every regulated market.

Biggest weaknesses (top 8)

  1. No double-entry wallet / ledger. There is no trusted source of truth for money. You cannot launch without this.
  2. No KYC / AML / PEP / sanctions / age verification. Automatic regulatory blocker everywhere (UK, MGA, Curaçao-new, US, Ontario, France, Spain, Germany, Brazil SPA, etc.).
  3. No payment gateway integration. Deposits/withdrawals do not exist.
  4. No trader / risk console. Exposure, liability, stake factors, market suspension, manual settlement — none of it is operator-controllable.
  5. No responsible gambling tooling. Deposit/loss/session/wager limits, self-exclusion, reality checks — all missing. Hard regulatory fail.
  6. No immutable audit trail. Bet lifecycle, odds version history, admin actions and settlement changes are not reconstructable.
  7. Single-node monolith, no HA, no queues, no CI/CD, no monitoring. Production traffic will crush it.
  8. No multi-tenant / white-label / jurisdictional layer. Everything is hard-coded to one skin, one currency, one rules set.

2. Missing Features — Detailed Gap Table

Priority: Critical High Medium Low · Complexity: Low Med High

CategoryMissing Option / FunctionWhy it mattersRisk if missingPriorityComplexitySuggested implementation
1. Architecture Service decomposition (Wallet, Risk, Settlement, Feed, Auth, CRM, Report) as separate processes behind an API gateway Single monolith cannot scale live-odds bursts or isolate failure domainsOutage of one sport freezes the whole site CriticalHigh Extract services into PHP-FPM pools or Node/Go microservices; Nginx/Envoy as gateway; Redis + RabbitMQ between services
Message queue (RabbitMQ / Kafka / Redis Streams)Every current flow is synchronous cURL loopsData loss, stalls, unbounded DB locksCriticalMedRedis Streams for odds diff + bet events, RabbitMQ for settlement and payments
Read replicas + CQRS splitHarvester writes hit the same DB as hot reads from clientsSlow UI, lock contention, corrupted cyclesHighMedMySQL primary for writes; 2 read replicas for /api/*; ProxySQL router
Multi-region / HA deployment blueprintLaragon single-box onlyOne reboot = total outageHighHigh2× app servers + HAProxy + managed MySQL (Galera/AWS Aurora) in EU + failover region
Disaster recovery plan + backups + PITRNo RTO/RPO definedPermanent data lossCriticalLowxtrabackup hourly, binlog streaming, encrypted offsite, tested restore runbook
API-first contract (OpenAPI)Current APIs are undocumented ad-hoc PHPPartners, mobile app, QA all blockedHighLowWrite OpenAPI 3.1 for every /api/*, generate SDKs, CI-validate
Fault-tolerance patterns (circuit breaker, timeouts, retries, idempotency keys)cURL to Altenar has no budget, no breakerUpstream flaps will melt your DBHighMedGuzzle + ghostff/circuit-breaker or custom; idempotency key per bet
Multi-tenant / skin layerHard-coded to sb2vegasbetCannot onboard second brand / jurisdictionHighMedtenants table, tenant-scoped config, branding, rules, feeds, currencies
2. Player Mgmt Full registration funnel (email verify, phone verify, SOF, SOW, document upload, selfie liveness)Cannot legally open accountsRegulatory shutdownCriticalHighIntegrate Sumsub / Onfido / Veriff / Jumio; async webhook → user status state machine
MFA/2FA (TOTP, SMS, WebAuthn)No second factorMass ATO, chargebacksCriticalLowGoogle Authenticator TOTP + optional WebAuthn; backup codes
KYC state machine (pending, in-review, verified, rejected, expired, re-KYC)Today: no state at allCannot gate deposits / withdrawalsCriticalMedkyc_cases table; per-jurisdiction threshold engine; auto-expiry at 12/24 months
AML monitoring (transaction monitoring, SAR/STR filing)No detectionCriminal liability for operatorCriticalHighComplyAdvantage / Napier rules engine; alert queue; case manager
PEP / sanctions / adverse-media screening on signup and ongoingMust-have for every licenceFines, licence lossCriticalMedHook KYC provider; re-screen nightly
Player account tiers / VIPNo segmentationCannot run retention or bespoke limitsHighLowuser_segments with rules; VIP manager assignment
Self-exclusion (temporary, permanent, GAMSTOP-style national register hooks)RG lawLicence loss, lawsuitsCriticalMedIrreversible flag + national integration (GAMSTOP, ROFUS, Spelpaus, Rejstřík vyloučených osob)
Dormant / cool-off / account closure workflowsNo lifecycleRegulatory + data-retention failHighLowScheduled job; state transitions logged
Bonus-abuse flags & fraud markers on user profileCannot defendBonus hunters drain marginHighLowuser_flags table with reason, evidence, TTL
3. Wallet & Payments Double-entry ledger (immutable journal + balance snapshots)Current model has no wallet_transactions journalMoney loss, fraud, impossible auditCriticalHighledger_entries(debit_account,credit_account,amount,currency,tx_type,ref); append-only; balances derived
Main / bonus / locked wallet separationSingle balance confuses wagering, KYC holds, withdrawalsIncorrect bonus behaviourCriticalMedWallet account types per user; clear priority rules for stake deduction
Payment gateway integrations (Stripe / Skrill / Neteller / MuchBetter / PayPal / bank / crypto)You cannot take moneyNo businessCriticalHighAdapter pattern with PaymentProvider interface; PSP orchestrator; 3DS2 flow
Withdrawal review & approval queue (KYC gated, AML score, manual approval above thresholds)Auto-pay = auto-fraudMassive lossCriticalMedState machine: requested → under-review → approved → sent → settled / rejected
Reconciliation engine (daily PSP vs ledger)Must match to the centSilent money leakCriticalMedNightly CSV/API pull from PSP, auto-match on ext_ref, exception queue
Chargeback handling + fraud score on depositsDisputes will comePSP de-risk, loss of processorHighMedWebhook handler; auto-lock wallet; Kount/Sift device score
Multi-currency + FX moduleOnly 1 currency assumedCannot expandHighMedStore currency per account; daily FX rates table; conversion entries
Payment routing & smart cascadingDeposit success rate will be poorLost revenueMediumMedRoute by BIN, country, amount, PSP uptime
Reversal / refund / manual credit flows with maker-checkerSupport team has no toolsFraud by insidersHighLowAdmin action requires second approver above €100; all logged
4. Betting Engine Server-authoritative bet placement (price re-fetch, lock check, stake validation, exposure check, wallet atomic debit)Client today talks directly to odds rowsPrice manipulation, stale odds, negative balanceCriticalHighOne endpoint /api/bet/place inside DB transaction; idempotency key; row-level lock on wallet
Bet state machine (pending, accepted, partial-accept, rejected, open, won, lost, void, half-won, half-lost, cashed-out, resettled)MandatoryUnresolved bets, disputesCriticalMedbet_status ENUM + transition log
Odds-change & acceptance policy (accept higher only, accept any, decline)Industry standardPlayers revolt on surprise pricesHighLowPer-user setting; server applies during place
Singles / Multiples / System (Yankee, Trixie, Lucky 15/31/63, Heinz, Canadian, SGP)Only single-line detectedNo revenue from combos (largest margin source)CriticalHighGeneric combination generator + correlation matrix for SGP
Cashout & partial cashout engineStandard featureCompetitor disadvantageHighHighReal-time expected-value pricing using current market prices + margin
Bet builder / SGP with correlation-aware pricingPlayer expectationLost volumeMediumHighUse provider (Kambi, IMG Arena, BetGenius) or in-house Monte Carlo
Push / dead-heat / void / postponed / abandoned rules engineNot implementedRegulatory and dispute riskCriticalMedRule templates per sport/market; executed by settlement engine
Resettlement (score correction / VAR / disciplinary)Results changeCustomer complaints, regulator finesCriticalMedReverse original ledger entries, apply new; full audit
Early payout rulesPopular promo leverLost acquisitionLowLowConfig-driven per market
Bet acceptance delay (offer-counter-offer) for liveStandard protectionLatency arbitrage drains profitsHighMedConfigurable 3–8s delay per sport; during delay check exposure & odds
5. Odds / Trading Trader console (suspend market / event / sport / outcome, adjust line, adjust margin, set limits)Traders have ZERO control todayCannot react to news, injuries, sharp actionCriticalHighVue/React SPA + WebSocket; per-action audit
Auto-suspend on price swing / goal / red card / betrad alertLive-betting must-haveMassive live lossesCriticalMedSubscribe to Sportradar Betradar feed events; rule engine
Margin / overround controller per sport / market / jurisdictionMargin is whatever Altenar givesCan't compete on price or protect holdHighMedPost-ingest margin reshaper; logs vs source
Exposure / liability matrix (real-time per selection, per user segment)Invisible riskBlack-swan lossCriticalHighRoll up on every accepted bet in Redis sorted set; alert thresholds
Stake factor / player-specific limitsSharps will farm youLong-term lossesCriticalMedScore per user; multiplier on max stake; applied at bet placement
Competitor price monitoringNeed to see marketUncompetitive or too generousMediumMedScraper or OddsJam / BetGenius feed
Manual market & manual event creationNovelties, specials, politicsMissed revenueMediumMedAdmin UI producing same markets/odds schema
6. Coverage / Markets Outrights / futures managementOnly event-level markets shownMissing high-margin productsHighMedSeparate table for outrights, each competitor is an outcome
Player props with official stats-provider settlementHuge US/UK driverRevenue lossHighHighSportradar/Stats Perform player feed; settle by box score
Event lifecycle (scheduled → live → finished → resulted → settled → archived) explicitToday ad hocStuck events, ghost betsHighLowENUM + transitions + cron check
Localized market names + translationsSingle languageCannot expandMediumLowmarket_translations(market_key,lang,name)
7. Settlement Primary results source + fallback chain + manual overrideGetResults returned placeholder; current fallback is GetEventDetailsWrong / missed settlementCriticalMedSportradar Results API primary, Enetpulse secondary, manual last
Settlement QA (4-eye approval for non-automatic)No reviewInsider fraudHighLowMaker-checker gate above threshold
Partial settlement for in-play markets already decidedPlayers expectUX complaints, funds held too longMediumMedPer-market-template allow-list
Rollback + resettle with ledger-perfect reversalCurrently impossibleRegulatory failCriticalMedLedger reversal entries referencing original
Abandoned / postponed cut-off windows per sportRules varyDisputesHighLowRule config; e.g. tennis finish-in-48h, football restart-in-24h
8. Risk Risk dashboard (top exposures, top winners, top losers, top bettors)Operators need it every minuteCan't reactCriticalHighGrafana / custom; Redis-backed live metrics
Sharp / syndicate / arbitrage detectionPattern matching on stake timing vs price moveLosses to prosHighHighDaily batch + real-time feature store
Multi-accounting (same device / IP / payment fingerprint)Bonus abuse + collusionMargin drainCriticalMedDevice graph; Seon / Sift / in-house
Velocity checks (deposits per hour, bets per minute, login attempts)Fraud signalATO, bonus abuseHighLowRedis counters with sliding window
Automated risk actions (freeze, reduce stake factor, re-KYC, escalate)Respond at scaleManual can't copeHighMedRule engine + audit log
IP / VPN / proxy / TOR detection + geofencingJurisdictional mustIllegal bet acceptanceCriticalLowMaxMind GeoIP2 + IPQualityScore
9. Security WAF + DDoS + rate limiting + bot protectionYou will be attacked day oneOutage, data breachCriticalLowCloudflare / AWS WAF; per-endpoint rate-limit
RBAC for adminNo admin tooling existsInsider riskCriticalMedCasbin / Spatie-like; per-action permission; admin audit
Secrets management (Vault / KMS)Config files in repoCredential leaksCriticalLowHashicorp Vault / AWS Secrets Manager; rotate quarterly
TLS everywhere + HSTS + CSP + CSRF + session hardeningUnverifiedCredential theftCriticalLowHarden Nginx; enable Secure, HttpOnly, SameSite=Lax
Encryption at rest (PII, KYC docs, card tokens)GDPR + PCIFinesCriticalMedAES-256 per-column for PII, S3 SSE-KMS for docs
Security audit log (who did what, when, from where)MandatoryNo investigations possibleCriticalLowAppend-only table + SIEM
10. Compliance Jurisdiction configuration engine (country → licence → allowed markets / stakes / ages / languages / currencies)You cannot be compliant otherwiseLicence lossCriticalHighjurisdictions + jurisdiction_rules + middleware that enforces per request
Regulatory reporting (UKGC RTS, MGA LAD, SGA SDRF, ONJN, ANJ…)Licence obligationFine / suspensionCriticalHighScheduled exports in required formats
Consent + T&C + policy version trackingGDPR / PECRFinesHighLowuser_consents(user_id,policy_id,version,ts)
Right-to-be-forgotten / data export (GDPR)Mandatory EUFinesHighMedAnonymization scripts; CSV export endpoint
Source of funds / wealth flowMandatory for high rollersAML fineCriticalMedTrigger by deposit threshold or velocity; doc upload UI
11. RG Deposit / loss / wager / session / single-bet limits (daily / weekly / monthly)EverywhereLicence lossCriticalMedEnforced in wallet + betting service; 24h cool-down on increases
Reality checks + session timerUK, DE, NL require itNon-complianceCriticalLowEvery 60 min popup
Self-exclusion (1 mo, 6 mo, 5 yr, permanent) + national register integrationMandatoryLicence lossCriticalMedPer-jurisdiction adapters
Behavioural risk score (affordability signals)UK / NL / Germany stronglyRegulatory, reputationalHighHighML on deposit frequency, chasing losses, late-night sessions
RG dashboard for supportHand-holdingHarm to playerHighMedAlerts + intervention log
12. Promotions Bonus engine (free bet, bonus money, cashback, odds boost, mission, tournament, leaderboard)Retention & acquisitionNo growthHighHighRule-based promo service + bonus wallet + wagering tracking
Wagering requirement trackerMandatory for bonusesBonus abuse, disputesCriticalMedEvent-sourced: accumulate qualifying stake; flush on completion
Targeting + segmentation + A/BStandard CRMWasted promo spendMediumMedBraze / Optimove / in-house
Promo code / coupon systemMarketing needMiss campaignsMediumLowRedeemable codes table + usage cap
Bonus abuse detectionMustLoss of marginHighMedSame-device, same-IP, stake-patterns rules
Promo P&L reportFinanceBlind spendingHighLowReporting cube
13. CRM Email / SMS / Push / WhatsApp orchestrationRetention backboneHigh churnHighMedSendgrid / Twilio / OneSignal; template versioning
Player segmentation + recommendation enginePersonalization drives NGRLost revenueMediumHighEvent stream to data warehouse → segments
Churn prediction + re-engagementMust-haveWasted CACMediumHighModel on BigQuery / Snowflake
VIP / host CRM deskWhales generate majority of NGRLosing themHighMedCRM module + dedicated console
14. Frontend / UX Native mobile apps (iOS & Android) + responsive PWA>75% of betting is mobileMassive revenue gapCriticalHighReact Native or Flutter; shared API
Live streaming + match tracker integration (Sportradar / IMG / Genius)Drives live betting by ~3×Revenue lossHighMedGeo-gated stream URL; iframe
Betslip UX for changing odds / suspended selections / partial acceptNot implementedFrustration, churnCriticalMedExplicit banners; "accept new price"
Accessibility (WCAG 2.1 AA)Legal in EU/UKFines + bad pressHighMedSemantic HTML audit; screen-reader tests
i18n (RTL, locale, plural)Global marketCannot expandHighMedgettext / i18next
Performance budget + WebSocket odds (no 5-second polling)Current 5 s polling is heavyLatency / costHighMedDedicated WS server; server pushes diffs
15. Admin / Back-office Complete admin SPA: Customer, Risk, Trader, Finance, Marketing, RG, Support, Reporting, ConfigNone existsOperation impossibleCriticalHighReact + API gateway + RBAC
Customer 360 view (balance, bets, deposits, KYC, flags, comms)Basic needSupport cannot workCriticalMedAggregated endpoint
Maker-checker on sensitive actionsInsider fraudFinancial lossHighLowSecond approver required above thresholds
Bet search / inspection with full lifecycle traceMustDisputesCriticalMedBet timeline: placed → odds history → suspensions → settlement
Config management (limits, stakes, margins, promotions) versionedHard-codedOperational brittlenessHighMedDB-backed config + audit
Admin action log + SIEM exportAuditBlind spotCriticalLowAppend-only table, daily export
16. Support Ticketing + live chat + WhatsApp + SLAPlayers expect itChurnHighMedZendesk / Freshdesk integration
Dispute workflow per bet / deposit / withdrawalRegulatoryFinesHighMedQueue + SLA timers
Knowledge base + help center + self-serviceDeflectionCostMediumLowCMS pages
17. Reporting / BI GGR / NGR / turnover / hold% / liability daily + real-timeBoard reportingBlind businessCriticalMedDWH (ClickHouse / BigQuery) + Metabase / Looker
Cohort, retention, LTV, ARPU, churnGrowthWasted marketingHighMedEvent layer in DWH
Player profitability scoreRisk + marketingCan't tierHighLowDaily job
Regulatory-grade reports (daily bet log, self-exclusion register, AML report)LicenceFinesCriticalMedFormat per regulator
Real-time ops dashboard (Grafana)SRE needOutagesHighLowPrometheus exporters on every service
18. Affiliate Affiliate tracking, CPA/RevShare/Hybrid, sub-affiliates, attributionMajor acquisition channelNo growthHighHighIncome Access / Cellxpert / MyAffiliates or build
Fraud controls on affiliate trafficBot traffic commonWasted CPAHighMedDevice fingerprint, velocity
White-label / skin supportScaleStuck single-brandMediumHighMulti-tenant already listed
19. Integrations Secondary odds feed (Betradar, BetGenius, OddsJam) for redundancyAltenar single pointOutage = no productCriticalHighFeed abstraction + failover
Webhook reliability (retries, DLQ, signing, idempotency)Crashes lose eventsMoney lossCriticalMedOutbox pattern + worker
Monitoring per integration (uptime, p99 latency, error budget)Need visibilityHidden outagesHighLowPingdom / Datadog synthetic
Streaming providerLive engagementRevenue lossMediumMedBetradar LCO / IMG Arena
Fraud provider (Seon, Sift, Sardine)Faster than in-houseFraud lossHighLowSignal on login, deposit, bet
20. Data Model Immutable event log / event sourcing for bet & walletReplay & auditCannot reconstruct disputesCriticalHighAppend-only events table; build snapshots
Odds versioning (you have odds_history — need full odds_snapshot_at_bet per bet)Regulatory auditFail auditCriticalLowSerialize market + odds at bet placement
Admin action historyAuditCannot investigateCriticalLowSame table pattern
Settlement state historyResettlementDisputesHighLowState transitions logged
Config versioningBlame / rollbackOutage root-cause unclearMediumLowGit-like config table
21. DevOps / QA CI/CD pipelines (lint, unit, integration, E2E, security scan, deploy)NoneBroken deploysCriticalMedGitHub Actions / GitLab CI
Automated tests (unit >70%, integration for bet lifecycle, E2E via Playwright)NoneRegressions in productionCriticalHighPHPUnit + Pest + Playwright
Environment separation (dev / staging / prod)Only localDangerousCriticalLowTerraform / Ansible
Observability (metrics, traces, structured logs)Only sync_logHidden issuesCriticalMedOpenTelemetry + Grafana stack
Load + chaos testingBig match daysCrashHighMedk6 / Locust; GameDay
Feature flags & progressive rolloutSafe releasesOutage from bad deployHighLowUnleash / LaunchDarkly / DB-flag
22. Performance WebSocket odds push + client diffing5 s polling doesn't scaleHigh DB cost, laggy UXCriticalMedCentrifugo / Soketi; server broadcasts deltas
Cache layer (Redis) for market trees, odds snapshotsHot readsDB chokesCriticalLowCache with TTL + invalidation on update
DB indexing audit + partitioning501 matches x 8k odds today = tiny. Tomorrow 200kQuery cliffHighLowEXPLAIN every query; partition odds_history by day
Load shedding / back-pressureBig kickoffMeltdownHighMedQueue depth gates; 503 early
23. i18n Multi-language + RTL + locale-aware formattingGlobalLost marketsHighMedPhrase / Crowdin
Local payment methodsConversionLost depositsHighMedPSPs per geo
Time zone & date formattingTrivial but missingConfusionMediumLowUser-setting; per-page format
24. CMS Dynamic homepage / banners / promo pages with A/BMarketingFrozen contentMediumMedStrapi / Contentful
SEO structure (schema, sitemaps, canonicals)Organic acquisitionLost trafficMediumLowPer-event SSR page
Help center content modelSupport deflectionCostLowLowCMS
25. Legal Versioned house rules / market rules / bonus T&C / privacy / RG policy per jurisdictionMandatoryLicenceCriticalLowContent repository with version + audit + acceptance log
Cookie consent + DPA + DSR workflowGDPRFineHighLowOneTrust / Cookiebot
Change log of accepted T&C per userDispute defenseLose complaintsHighLowConsent table

3. Critical Gaps — Top 20 Launch Blockers

  1. No user / auth / KYC system — you cannot legally onboard a single real-money player.
  2. No wallet or double-entry ledger — nothing to debit on bet placement or credit on settlement.
  3. No payment gateway integration — zero deposits, zero withdrawals.
  4. No responsible-gambling tooling (limits, self-exclusion, reality checks) — instant licence refusal.
  5. No AML / PEP / sanctions screening, no SAR filing — criminal liability.
  6. No server-authoritative bet placement — client-side odds manipulation is trivial today.
  7. No bet state machine, no settlement lifecycle, no resettlement — every dispute is unwinnable.
  8. No trader / risk console and no manual suspension — traders are blind to exposure.
  9. No real-time exposure / liability monitoring — black-swan waiting to happen.
  10. No auto-suspension on live events (goal, red card, delay) — live losses are inevitable.
  11. No per-user stake factor / limits / syndicate detection — sharps will farm you.
  12. No multi / system / SGP / cashout — no real revenue product.
  13. No immutable audit trail (bet, odds at bet, admin, wallet) — regulators will fail the audit in 10 minutes.
  14. No admin / back-office suite — you cannot operate, support, or investigate.
  15. No jurisdiction / multi-tenant engine — one-country-only, one-brand-only.
  16. No GDPR tooling (consent, DSR, retention, encryption at rest).
  17. No CI/CD, no tests, no staging, no monitoring, no backups, no DR — a single bug or reboot kills you.
  18. No WAF, rate-limiting, MFA, RBAC, secrets vault — Day-1 security breach risk.
  19. Single upstream feed (Altenar only) with no failover — one feed outage = zero product.
  20. No regulatory reporting pipeline (daily bet file, self-exclusion register, AML report) — guaranteed fines.

4. Professional Sportsbook Checklist

Legend: PRESENT MISSING NEEDS IMPROVEMENT NOT ENOUGH INFO

Product & Architecture

  • NEEDS Monolith suitable for MVP only — needs service split
  • MISSING Message bus / async processing
  • MISSING Multi-tenant / white-label layer
  • MISSING API-first OpenAPI contracts
  • MISSING High-availability / multi-region / DR
  • NEEDS Circuit breaker / retries / idempotency

Account & Player Mgmt

  • MISSING Registration / email / phone verify
  • MISSING MFA
  • MISSING KYC provider integration
  • MISSING PEP / sanctions / AML screening
  • MISSING Self-exclusion + national register
  • MISSING Account tiers & VIP
  • MISSING RG profile
  • MISSING Dormant / closure workflows

Wallet & Payments

  • MISSING Double-entry ledger
  • MISSING Bonus wallet
  • MISSING PSP integration(s)
  • MISSING Withdrawal review
  • MISSING Reconciliation job
  • MISSING Chargeback handling
  • MISSING Multi-currency + FX

Betting Engine

  • NEEDS Pre-match UI exists; no server-auth bet placement
  • NEEDS Live odds pipeline exists; live bet placement missing
  • MISSING Multiples / systems / SGP
  • MISSING Cashout / partial
  • MISSING Bet state machine
  • MISSING Acceptance-delay offer engine
  • MISSING Resettlement
  • MISSING Void / push / dead-heat rules

Odds / Trading

  • PRESENT Altenar harvester (menu + live + upcoming + details)
  • PRESENT 7-group market classification (main/goals/halves/corners/cards/players/specials)
  • PRESENT Odds history & direction tracking (idempotent upsert fixed 2026-04-22)
  • MISSING Trader console
  • MISSING Auto-suspend on goal / delay
  • MISSING Margin controller
  • MISSING Real-time exposure / liability
  • MISSING Stake factor per user
  • MISSING Secondary feed failover

Sports & Coverage

  • PRESENT Sport/category/championship hierarchy
  • PRESENT Live + upcoming fixtures
  • PRESENT Sportradar LMT (widget) stats modal
  • MISSING Outrights / futures module
  • MISSING Player props with stats settlement
  • MISSING Localized market names

Settlement

  • NEEDS SettlementEngine scaffold via GetEventDetails fallback — no primary results provider, no QA gate
  • MISSING Rollback / resettle
  • MISSING Void / postponed / abandoned rules
  • MISSING Maker-checker

Risk

  • MISSING Exposure dashboard
  • MISSING Multi-accounting detection
  • MISSING Device fingerprint
  • MISSING Velocity checks
  • MISSING Geo + VPN detection
  • MISSING Sharp / syndicate scoring

Security

  • MISSING WAF + DDoS
  • MISSING Rate limiting
  • MISSING MFA / RBAC
  • MISSING Secrets manager
  • MISSING Encryption at rest for PII
  • MISSING Security / admin audit log

Compliance / RG

  • MISSING Jurisdiction rules engine
  • MISSING Deposit / loss / wager / session limits
  • MISSING Reality checks
  • MISSING Self-exclusion
  • MISSING Affordability scoring
  • MISSING Regulatory reports

Promotions & CRM

  • MISSING Bonus engine
  • MISSING Wagering tracker
  • MISSING Email/SMS/push
  • MISSING Segmentation / recommendations
  • MISSING VIP desk

Frontend / UX

  • PRESENT Web UI: 3-col layout, market-group tabs, pulsing odds, search, +MORE, stats icon, pulsing EN DIRECT
  • NEEDS 5-second polling → WebSocket
  • MISSING Native iOS / Android
  • MISSING Live streaming integration
  • MISSING Accessibility audit (WCAG 2.1 AA)
  • MISSING i18n / RTL / locales
  • MISSING Betslip UX for odds change / suspend / partial accept

Admin & Back-office

  • MISSING Admin SPA
  • MISSING Customer 360
  • MISSING Trader / Risk / Finance / Support consoles
  • MISSING Maker-checker
  • MISSING Config mgmt (versioned)

Reporting / BI

  • MISSING GGR / NGR / turnover / hold
  • MISSING Cohort / LTV / churn
  • MISSING Regulatory reports
  • MISSING Ops dashboard (Grafana)

DevOps / QA

  • PRESENT Local sync daemon + test_all.php smoke (23/23)
  • MISSING CI/CD
  • MISSING Unit / integration / E2E tests
  • MISSING Staging
  • MISSING Observability (metrics/traces/logs)
  • MISSING Load & chaos
  • MISSING Backups + DR

5. Advanced Features for a World-Class Sportsbook

  1. AI-driven pricing & player-specific odds (elastic prices based on segment, exposure, and player CLV).
  2. Request-a-bet with LLM parsing and automated price quote.
  3. Bet builder with Monte-Carlo correlation pricing for same-game combos.
  4. Real-time cashout with partial cashout and auto-cashout triggers.
  5. Live streaming geo-gated with betting overlays and multi-camera.
  6. Personalized home page (ML recommendations per user).
  7. Social sportsbook features: follow friends, copy-bet, leaderboards, community predictions.
  8. Predictive affordability & RG scoring (behavioural model to intervene early).
  9. Open banking for SOF & real-time KYC (Trustly, TrueLayer).
  10. Crypto rails (stablecoin deposits, on-chain KYC attestations, Travel Rule).
  11. Data warehouse + real-time CDP (Kafka → ClickHouse → Rudderstack → Braze).
  12. Feature flags + progressive delivery with per-tenant rollout.
  13. Chaos Engineering GameDays and automated failover drills.
  14. Self-service BI for traders and marketers (Looker, Metabase, Superset).
  15. Tokenized bet history / receipt with cryptographic proof for disputes.
  16. Syndicate & bot detection via graph databases (Neo4j) on device / IP / payment clusters.
  17. Embedded sportsbook SDK for partners (widgets, deep links).
  18. On-device biometrics (Face/Touch ID) for high-risk actions.
  19. Trader AI co-pilot that suggests line moves from exposure, news feeds, and social sentiment.
  20. Regulatory real-time API for direct regulator feed (UKGC GAP / DGOJ / ANJ where required).

6. Risk & Compliance Red Flags

Regulatory

Fraud

Financial

Reputational

Operational

7. Architecture Recommendations

Target service map

Required admin tools

8. Prioritized Roadmap

Phase 1 — Launch Blockers (pre-real-money)

  • Auth + MFA + email/phone verify + password policy.
  • KYC/AML/PEP/sanctions provider integration (Sumsub or Onfido).
  • Double-entry wallet + ledger + currency config.
  • Payment gateway (one PSP, one card, one local method).
  • Server-authoritative bet placement with bet state machine, odds-at-bet snapshot.
  • Settlement rule engine with rollback + resettlement + manual override.
  • RG tooling: deposit/loss/wager/session limits + reality check + self-exclusion.
  • Jurisdiction engine (country → allowed markets / currencies / ages / limits).
  • Admin back-office v1: Customer 360, Bet inspector, Withdrawal review, KYC queue, RG queue.
  • Security baseline: WAF + rate limiting + RBAC + secrets vault + TLS/HSTS/CSP + audit log.
  • Observability baseline: Prometheus + Grafana + structured logs + on-call alerting.
  • CI/CD + staging + backups + tested restore + DR runbook.
  • Regulatory reports: daily bet log + SE register + RG events + AML alerts export.

Phase 2 — Professional Operations

  • Trader console (suspend, adjust margin, stake factors).
  • Real-time exposure / liability monitoring.
  • Auto-suspend rules on live events (goal, red card, delay).
  • Risk console + multi-accounting / velocity / device fingerprint.
  • Cashout + partial cashout.
  • Multiples / Systems / SGP (start simple, no correlation engine).
  • Bonus engine + wagering tracker + promo codes + abuse detection.
  • CRM (email + push + SMS) with segmentation.
  • Secondary odds feed + failover harvester.
  • Settlement QA (maker-checker) + primary results provider (Sportradar) with fallback.
  • Affordability/RG scoring (rules-based v1).
  • Full i18n + local payment methods.

Phase 3 — Scaling & Optimization

  • WebSocket odds push + client diff engine (drop polling).
  • Service decomposition (Wallet, Betting, Risk separated).
  • Data warehouse + BI (GGR/NGR/LTV/churn/cohort).
  • Live streaming + match tracker.
  • Native iOS + Android apps.
  • Affiliate platform + attribution + sub-affiliates.
  • Multi-tenant white-label layer.
  • Chaos + load engineering on real peak events.

Phase 4 — Elite Features

  • AI pricing, player-specific odds, trader AI co-pilot.
  • SGP with Monte-Carlo correlation pricing.
  • Request-a-bet via LLM.
  • Behavioural RG model + affordability based on open banking.
  • Graph-based syndicate detection.
  • Feature-flagged progressive rollouts across tenants.
  • Embedded SDK for partners.

9. Missing Admin & Internal Tools

10. Final Verdict

What is missing for Bet2 to become a full professional system?
Almost every core pillar except odds ingestion and the player-facing UI: the entire player lifecycle (auth, KYC, AML, RG), the entire money stack (wallet, ledger, PSPs, reconciliation), the server-authoritative betting engine, the trader and risk consoles, the compliance layer (jurisdiction rules, regulatory reporting, responsible-gambling tooling), the back-office suite (admin SPA, RBAC, audit trail, maker-checker, customer 360), the CRM/promo engine, the security baseline (WAF, MFA, secrets vault, encryption at rest), and the production-grade platform (CI/CD, staging, monitoring, backups, DR, HA, WebSocket push, message bus, secondary feed failover). What exists today is an odds-harvester + pretty shell, not a sportsbook.
What IS strong: Altenar feed integration (parallel GetTopSportMenu + GetLiveEvents + GetUpcoming + GetEventDetails), market-group classifier, pulsing odds UI, Sportradar LMT widget via the SIR loader (DNS-safe), odds_history + direction, race-safe idempotent upsert (fixed today), 23/23 smoke test, settlement fallback scaffold. This is a solid trading-facing foundation to build on.
12/100
Launch Readiness
28/100
Trading Readiness
10/100
Risk Readiness
5/100
Compliance Readiness
6/100
Back-office Readiness

Assumptions & Notes

Bottom line

Bet2 is a compelling prototype. It should not touch real money until at minimum the Phase 1 launch-blocker checklist above is delivered. Until then, continue as a simulation / free-play product, iterate the trading stack (exposure, stake factors, auto-suspend), and in parallel begin integrating a regulated platform partner or build the missing pillars in the order listed. A realistic path to a minimally compliant real-money launch is 4–8 months of focused work with 6–10 engineers + compliance + trading staff, assuming a single jurisdiction and a B2B KYC/PSP partner.