After bootstrapping with Paysafecard and Play’n GO slots in Curaçao, we hit real cashflow…
rawdata was always going to haunt us sooner or later, wasn’t it? back in the curacao no-kyc days you could slap a file in excel and call it “bi” — remember those dark ages? took us three pivots to learn the hard way that 18% of ltv just walked out the door while we were busy counting pixels on google sheets. didn’t happen overnight though. month 1-6 we were running play’n go slots on paysafecard, ggr looked fine, mid rolled in, but the chargeback emails kept stacking up like winter wood. then crm reported ftds hitting 47% — classic — and nobody had the faintest what the real retention curve looked like because the raw extracts from the crap-casino backend were missing half the columns. funny thing: we’d negotiated rev-share with play’n go on gut feeling. turned out we’d left 18% margin on the table the whole time.
so after that baptism we rebuilt the stack with raw data as the single source of truth. not a pretty migration — five people, 30m eurg turnover, zero ops budget — but once bigquery swallowed the raw dumps and looker drew the lines everything suddenly stopped guessing. rolling reserve hits we could trace back to specific traffic sources, not just “more games = more bonus abuse.” now we know which rev-share partners actually move needle and which ones are just skimming high-quality deposits while collecting their 25% cut. lesson for the kids: raw data isn’t a luxury, it’s oxygen. without it you’re flying blind in a jurisdiction that still believes “curacao compliance” means nothing more than a pdf with a signature. ah well, we’ll see
Launched a few, lost money on more 😉
That green-tinged Excel sheet with its frozen panes and broken VLOOKUPs still gives me a rash. Switching from Paysafecard to direct rails was like trading in a rusted scooter for a stolen Lamborghini—suddenly the noise wasn’t just chargebacks, it was the sheer absence of any real numbers. I’ve seen three micro-jurisdictions where the CFO kept GGR on a napkin until the first rolling-reserve clawback landed. Once you move past Paysafecard’s instant KYC gaps and into the wire/APM realm, your BI stack isn’t “nice to have,” it’s the circuit breaker between profit and silent liquidation. BigQuery plus Looker didn’t just lift that 18 % margin back—it turned rev-share negotiations from haggling over gut feelings into zero-sum poker where every cut is either backed by quantifiable player quality or it’s margin going straight into the landfill. Three-person ops team, 30 M EUR, we ingest raw feed from every acquirer, map MID splits in Looker by SKU, and cross the acquisition cost with churn cohorts by jurisdiction. What surprises me is how few EU white-label shops even attempt this—Curacao might still let you run on faxed KYC, but the processors will still ding you with a 150-basis-point uplift if your chargeback rate is north of 1 %, and nobody in that chain will cut you slack when the MID finally walks. The real hidden tax isn’t taxes—it’s the price of guessing.
Unit economics > vibes.
RawData isn’t some fancy upgrade you tack on after the fact—it’s the entire foundation of every decision that matters, and we treated it like a side project for too long. The moment the chargeback rate crept past 1 % and the processors jacked up our MID uplift in Curaçao, I knew we’d been running blind for months because we’d let a junior intern “manage” the raw feed with a cron job that missed three out of ten days. Rev-share wasn’t the real problem—we just fed garbage into the model and still tried to negotiate with spreadsheets that couldn’t tell a whale deposit from a bot squeeze. And here’s the kicker: our Play’n GO contract wasn’t even the weak link. It was the fact that we couldn’t prove their 35 % rev-share was justified when our LTV calculation was built on last week’s napkin math. Fix the raw data first, or every downstream “poker hand” is just guesswork with better charts.
The contract tells you more than the pitch.
RawData fixes everything, but man, getting there in a 5-person shop with 30M EUR running through Curaçao noise is a different beast. Paysafecard’s chargeback avalanche? Classic growing pain when you’re bootstrapping and every Excel pivot feels like progress until the processor drops the MID hammer at 1.8 % chargebacks. We moved to wire/APM rails and suddenly the lag between deposit and report felt like we were living in last week’s economy.
My own hell was FTDs spinning at 44 % because our raw feed from the white-label backend dropped half the fields—literally missing user IDs on half the transactions. Play’n GO rev-share felt fine at 30 %, until I realized their players churned at 72 % by day 30 and nobody noticed because the Excel sheet kept summing deposits instead of unique users. Lesson: raw data isn’t “upgrade” territory—it’s table stakes if you ever want to negotiate rev-share on actual numbers instead of gut vibes. The moment we pushed raw dumps straight into BigQuery and let Looker plot LTV by cohort instead of by day, every partner conversation flipped from “trust me” to “prove it.” Cure for Curaçao mess? RawData, always—even if it means five people burning midnight oil stitching feeds together.
Learn something new about this business every day.
RawData was never an upgrade—it’s the soil your entire decision tree grows from. Pushed my first Curaçao project with a single Paysafecard reseller and an Excel sheet that listed deposits like grocery items. By month four the processor sent a chargeback warning at 1.4% and I still couldn’t tell which half of those FTDs were real bots versus clunky KYC flows—because the white-label backend spat out JSON that our “BI person” manually pasted every Friday at 3 AM. The 47% first-day churn in that Excel pivot wasn’t Play’n GO’s fault; it was our inability to see that 60% of those “players” never made it past ID upload. Five people, thirty million running through wire rails, and we paid the ultimate tax for guessing—our rev-share with the software vendor ballooned to 33% because we never proved their whale tail. Switched to raw feed straight into BigQuery, built Looker dashboards that join MID splits, PSP uplifts, and churn cohorts within ten minutes of payout. Rev-share talks dropped from emotions to data screenshots in Slack—literally dropped 5 basis points off our rolling reserve overnight. Lesson I tattooed on my wrist: raw data isn’t optics, it’s survival in a jurisdiction where the processor smiles and your MID walks if your numbers stink. 😏
DM me for the contact.
You ever stare at a rolling reserve adjustment notice from your Curaçao processor and realise it wasn’t a late payment—it was the sound of 150 basis points evaporating because your BI stack couldn’t tell a whale from a scrub deposit? I’ve seen the raw-data cult rally around “one version of truth” like it’s a cure-all, but raw data is still just noise until someone builds the guardrails around it. In your five-person shop churning 30 M EUR, how much of that raw feed is actually scrubbed before it hits BigQuery—midnight cron jobs or junior interns playing catch-up? Because if your raw feed is missing user IDs, MID splits, or PSP uplift flags, you’re not running a BI stack—you’re running a guessing engine with fancy visuals. And let’s not pretend Curaçao’s “light-touch” KYC is an excuse: processors will still claw back your MID for chargebacks north of 1 %, and the moment they do, your raw-data epiphany won’t fund the clawback.
Raw data doesn’t absorb the chargebacks for you, does it? I’ve watched three Curaçao shops burn their MIDs after screaming that their BI “had everything under control” while the raw feed delivered user IDs missing or PSP uplift tags half-populated—midnight cron job, indeed. We had a white-label once where the tech lead insisted the scrub script was “good enough.” Guess how many days passed before the processor flagged 1.9 % chargebacks and froze the MID with a 150 bps uplift? Four days. By day six the rolling reserve clawed back 2.3 M EUR we didn’t even know we’d lost—because our raw “one version of truth” wasn’t a version at all, just yesterday’s half-truth pasted into BigQuery. You still have to pay the guardrails’ price; raw data won’t stand between you and the MID freeze.
Word is… but you didn't hear it here 🤫
Raw data feels invisible until the moment it vanishes—then it becomes your entire problem overnight. In my Dubai setup, we learned the hard way that Curaçao’s white-label backends often dump half the fields you need, but the real surprise was how the vendor’s raw feed would occasionally mislabel 10 % of deposits as “pending” when they were already paid out by the acquirer—lagging by 48 hours in some SKUs. BigQuery caught it because we mapped the PSP timestamps against our internal payout logs, not the white-label’s summary file. Looker then flagged that our Play’n GO rev-share model was overpaying on those pending labels, which automatically padded their payout by 2-3 bps on every wire. Processors don’t refund those basis points when the MID spikes from chargebacks—they just freeze the payout and smile while you scramble to recalculate LTV with a three-day blind spot. Raw data isn’t a luxury when Curaçao’s rolling reserve clawbacks act like a guillotine: the vendor’s “pending” labels become a 50-basis-point tax you only notice after the fact.
Unit economics > vibes.
yeah yeah raw data but let’s not turn this into a cult for the analytically anorexic either what i do remember vividly from my first curaçao launch is how the whole office cheered when the first 300 k eur GGR hit in month 3 then sobered up fast when the midi owner sent a polite “please explain your 2.1 % chargeback spike” and all we had were two interns manually copying paysafecard csv exports into an excel that still listed “deposit – paid – pending” without a single user id column raw feed was the dirty laundry we hung out after everyone went home the wrong laundry for that matter the bigger sin wasn’t that the data was raw it was that nobody in the five-person team could tell you what a whale deposit looked like because the white-label backend served us json blobs with a “user_type”: “regular” field that every single player somehow inherited so even when we fed raw dumps into bigquery the ggr row showed deposit = 100 eur but the user row had player_id = null somewhere between the json drop and the human readable pivot so our play’n go rev-share spreadsheet kept counting three whale deposits instead of three player ids lesson learned the hard way? when the guy who wrote the cron script left on a thursday midnight the friday report still worked because the new guy ran it at 4 am while hungover the monday report died so we built the looker dashboards that joined raw_deposits.player_id → raw_sessions.player_id → raw_payouts.transaction_id with a null catch filter that automatically flags any row missing user type or country_code then we dropped the rev-share argument with play’n go from “trust us they’re worth 35 %” to “here’s our cohort ltv by day 7 and day 30 feel free to audit the sql” the processor’s midi uplift dropped from 150 bps to 50 bps in two weeks and the rolling reserve clawback notice got lost in the shuffle for once raw data stopped being the excuse and became the sword we used to stop the bleeding ah well we’ll see
Seen this movie before, operators.