Source integrations: stop uploading files by hand
Until v2.0 every analysis started with a manual export. Now a project can be connected to a live source and re-synced on demand. Google Sheets works through a public link: you paste the sheet URL, pick the tab, and the platform pulls the XLSX export, preserves merged-cell headers and stores a snapshot of every row and column.
For app traffic there are three MMP connectors — AppsFlyer (Master API v4), Adjust (Report Service API) and Branch (Analytics API). Each returns normalised rows in the same internal shape as a spreadsheet, so cohort analysis, GEO scoring and AI interpretation behave identically regardless of source. API keys and tokens never appear in the browser: they are encrypted with AES-256-GCM and decrypted only inside the server function that calls the vendor.
- Google Sheets — public link, sheet selection, manual sync and re-sync
- AppsFlyer — Master API v4 aggregated report
- Adjust — Report Service API with configurable dimensions and metrics
- Branch — Analytics API
- Sync jobs record status, row counts and errors so a failed pull is visible, not silent
Data quality: validation before the model, not after
Most bad AI analysis is bad input, not a bad model. v2.0 adds a data-quality layer that profiles the dataset before anything is sent to the model: every column is typed, numeric parsing handles European and Russian formats (1 234,56 and 1.234,56), currency symbols are detected, and each column gets a share of unparseable values. If Revenue is 12% non-numeric, you see it as a warning instead of discovering it in a wrong ROI.
Schema templates save column mappings per source, so a Keitaro, Binom or AdsBridge export only has to be mapped once. Currency conversion normalises ₽, € and other currency columns to USD for the report while keeping the original column intact, so nothing is lost and the report is comparable across GEOs.
Deterministic maths: cohorts, ROAS and GEO scores computed in code
Language models are good at interpretation and bad at arithmetic over hundreds of rows. In v2.0 all numbers shown in the report — totals, CPA, ROAS, ROI, cohort curves and GEO scores — are computed deterministically in server code from the stored snapshot. The model receives the computed profile and explains it; it cannot invent a GEO, a brand or a figure that is not in the dataset.
Column detection also got stricter. Ratio and per-unit columns (ROAS, ROI, payback, rate, CPA, CPI, CPC, CPM, average check) are excluded from Spend, FTD and Revenue detection, and explicit total columns such as spend_usd win over derived ones. That fix removed the two worst classes of wrong report: a 610,000% ROI produced by reading a payback ratio as revenue, and a $153 Spend produced by reading per-unit cost as a total.
- Cohort ROAS and ROI curves per period
- Duplicate row detection and statistical outliers
- Flat FTD while spend grows — a classic scaling or tracking failure
- ROAS collapse and zero-conversion segments
- Comparison against the previous analysis of the same project
GEO leaderboard: which countries to scale, test or cut
The analysis header now opens with a GEO leaderboard. Every country in the dataset gets a score built from spend share, FTD volume, revenue and ROI, plus an explicit action: Scale, Test or Cut. Next to each metric the report shows the deviation from market benchmarks — CPA, ROAS and average first deposit by GEO tier — so a 'good' ROAS in Tier-3 is not confused with a 'good' ROAS in Tier-1.
Analyst filters by GEO and metric work on the already-synced snapshot, so slicing the data does not trigger another sync or another AI call.
The analyst persona behind every answer
Every analysis, KPI check and assistant answer runs through a single Senior iGaming Traffic Analyst persona with 10+ years of experience: it reads every detected column, refuses to speculate about GEOs or brands that are not in the data, states risks openly and phrases recommendations the way an analyst would defend them in front of an advertiser.
Access, pricing and what is still in development
The platform is open to everyone: sign in with Google or email and you get a private workspace isolated at the database level. There is no paid tier and no project limit — only a voluntary USDT (TRC20) donation that unlocks nothing. Dashboard, forecasts, pitch decks and interactive charts remain marked as in development and are hidden from the working app until they meet the same grounding standard as the rest.