Member Risk Analysis 会员风险分析
Casino (18 providers) + Sports/Esports (8 providers) · Auto-detect format · Auto-sync to Google Sheet
娱乐场(18家供应商)+ 体育/电竞(8家供应商)· 自动识别格式 · 自动同步至 Google Sheet
娱乐场(18家供应商)+ 体育/电竞(8家供应商)· 自动识别格式 · 自动同步至 Google Sheet
Member ID 会员账号
Analyst Name 分析员姓名
Casino Provider 娱乐场供应商
Casino Betting Data — CSV or TSV 娱乐场数据
Waiting...
Sports / Esports Provider 体育/电竞供应商
Sports / Esports Betting Data — CSV or TSV 体育/电竞数据
Waiting...
Login Logs — optional (improves collusion detection) 登录日志(可选,提高关联检测准确性)
Batch Analysis 批量分析
Multiple members — MemberID column required
多个会员同时分析 — 需要 MemberID 列
多个会员同时分析 — 需要 MemberID 列
Combined Data — MemberID column required 合并数据,需要 MemberID 列
Case History 案例历史
Saved locally + auto-synced to shared Google Sheet for team access
本地保存 + 自动同步至共享 Google Sheet,团队成员可查看
本地保存 + 自动同步至共享 Google Sheet,团队成员可查看
Blacklist 黑名单
Score ≥70 auto-added. Shared with team via Google Sheet.
评分 ≥70 自动加入。通过 Google Sheet 与团队共享。
评分 ≥70 自动加入。通过 Google Sheet 与团队共享。
Report Generator 报告生成器
Formal investigation report — English or 中文
正式调查报告 — 支持英文或中文输出
正式调查报告 — 支持英文或中文输出
📄
Select a case above
Report will appear here
Google Sheet Auto-Sync Setup 同步设置
One-time setup — every analysis auto-saves to your shared Sheet
一次性配置 — 每次分析自动保存至共享 Sheet,同事即可查看
一次性配置 — 每次分析自动保存至共享 Sheet,同事即可查看
Shared Sheet: RiskRadar Pro — Shared Case Database ↗
Share this with teammates (View access is enough). 分享给同事(查看权限即可)。
Share this with teammates (View access is enough). 分享给同事(查看权限即可)。
Deploy Apps Script Web App
1
2
Delete all existing code, paste this script:
删除全部现有代码,粘贴以下脚本:
删除全部现有代码,粘贴以下脚本:
const SHEET_ID = '1b-3gWw1TDimeRezN4mEUXUgiBykTTQItLbuMQ-HE_K4';
const HDR = ['CaseID','MemberID','Date','Type','Provider','Score','CasinoScore','SportsScore','Tags','Bets','TotalBet(MYR)','NetPL(MYR)','WinRate%','Z','pValue','Velocity(s)','RTP%','ColdMatch%','Analyst'];
function doPost(e) {
try {
const d = JSON.parse(e.postData.contents);
const ss = SpreadsheetApp.openById(SHEET_ID);
let sh = ss.getSheetByName('Cases') || (() => {
const s = ss.insertSheet('Cases');
s.appendRow(HDR);
s.getRange(1,1,1,HDR.length).setFontWeight('bold').setBackground('#1e3a5f').setFontColor('#ffffff');
s.setFrozenRows(1);
return s;
})();
sh.appendRow([d.id,d.mid,d.date,d.type||'casino',d.prov||'?',d.overall,d.casinoScore||'',d.sportsScore||'',d.tags||'',d.n||0,d.totalBet||0,d.totalWL||0,(d.winRate||0).toFixed(1),(d.z||0).toFixed(2),(d.pv||1).toFixed(4),(d.velAvg||0).toFixed(1),(d.rtp||0).toFixed(1),(d.coldPct||0).toFixed(1),d.analyst||'RiskRadar']);
const lr = sh.getLastRow(), sc = d.overall||0;
sh.getRange(lr,1,1,HDR.length).setBackground(sc>=70?'#ffd7d9':sc>=35?'#fff3d4':'#d4f5e2');
return ContentService.createTextOutput(JSON.stringify({status:'ok'})).setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({status:'error',msg:err.toString()})).setMimeType(ContentService.MimeType.JSON);
}
}
function doGet() { return ContentService.createTextOutput(JSON.stringify({status:'ok',msg:'RiskRadar v9 API running'})).setMimeType(ContentService.MimeType.JSON); }
3
Deploy → New deployment → Type: Web app → Execute as: Me → Who has access: Anyone → Deploy
部署 → 新部署 → 类型选"网络应用" → 执行身份选"我" → 访问权限选"任何人" → 部署
部署 → 新部署 → 类型选"网络应用" → 执行身份选"我" → 访问权限选"任何人" → 部署
4
Paste the Web App URL below 将 Web App 网址粘贴到下方:
5
Share the Sheet with teammates — View access is enough to see all records.
将表格共享给同事 — 只需"查看"权限即可看到所有记录。
将表格共享给同事 — 只需"查看"权限即可看到所有记录。
✓ Supabase cloud sync configured 云端同步已配置 · Apps Script URL optional
Indicator Guide
Casino (5 indicators) + Sports/Esports (5 indicators) — based on world-class risk frameworks
Casino Indicators — 100 pts total
1 · Statistical Edge (Z-Score) — 30pts
Dynamic baseline by Bet Type (Banker 45.86%, Player 44.62%, Tie 9.52%). p<0.05 required for 30+ bets. Only legally defensible indicator.
2 · Bet Sizing Asymmetry — 25pts
Win-bet vs loss-bet size ratio + correlation. Players with edge systematically bet larger when winning. Ratio >1.8x = strong signal.
3 · Reaction Velocity (P10) — 20pts
10th percentile of bet intervals — not average. Bots have consistent sub-2s reactions. P10 <2s = BOT confirmed. Humans need ≥3s minimum.
4 · RTP + Rolling RTP — 15pts
Overall RTP + rolling 50-bet RTP to detect sudden spikes. RTP >100% over 30+ bets is mathematically impossible by luck.
5 · Session Anomaly + Multi-Table + Tie Bet — 10pts
Behavioral break (early vs late), multi-table simultaneous betting (<5s gap different tables), Tie bet % >20% (AML signal), IP/fingerprint anomalies.
Sports / Esports Indicators — 100 pts total
1 · Win Rate Z-Score — 30pts
Dynamic baseline from odds (1/decimal odds). If player consistently beats their implied probability, Z-test measures significance.
2 · Cold Match % — 25pts
Concentration in low-tier matches (youth/amateur/friendly/regional). World-class #1 BOT signal. Uses weighted scoring with whitelist protection for high-tier events.
3 · Stake CV — 20pts
Coefficient of Variation of stake amounts. Low CV = mechanical fixed-amount betting = BOT. CV <0.15 = highly suspicious.
4 · Low Odds % — 15pts
% bets with high-confidence odds (Malay <-0.70 / Decimal <1.43). Specialists exploit near-certain outcomes — insider info signal.
5 · Provider-Specific — 10pts
SBO2: Live bet anomaly + Cashout abuse · TF/IME: Esports Map 2/3 concentration · M8: Parlay pattern analysis · BTI: Virtual soccer [V] velocity · IBC: League concentration
⚠ CLV (Closing Line Value) not implemented — requires external Closing Odds API (Betfair/Pinnacle). All findings are statistical indicators requiring human compliance review before action.
All Supported Providers