Someone has to make the data trustworthy
There's a glamorous half of working with data and an unglamorous half. OZ Intelligence is my bet that the unglamorous half — making the data clean and trustworthy — is where the real value hides.
By Andrew Pyle
There's a glamorous half of working with data and an unglamorous half, and almost everyone wants the glamorous one. The glamorous half is the dashboard, the insight, the clean chart that makes something obvious. The unglamorous half is everything that has to happen first: the gathering, the cleaning, the endless checking of one source against another until you actually believe the numbers. OZ Intelligence is me choosing the unglamorous half, on purpose.
It started, like a lot of my projects, with a wall I kept hitting. I needed trustworthy sports data to build the things I wanted to build, and getting it was miserable every time — locked behind expensive or restrictive APIs, or available but messy, inconsistent, quietly wrong in ways you only discover after you've built on top of it. So eventually I did the annoying thing instead of the easy thing. I started building my own warehouse: crawling the data, cleaning it, cross-checking it, normalizing it into one place I could actually rely on. It's grown into something that tracks well over a hundred and seventy thousand games.
01The real asset
The data layer is the real asset
And here's what surprised me. The boring foundation turned out to be the most valuable thing I'd built. The sites people actually see — the scores, the standings, the pages — are just windows onto it. The real thing is underneath, out of view. The data layer is the asset; everything visible is a read on it.
Most of the work, it turns out, isn't gathering the data. It's trusting it. A dataset is only worth what you can rely on in it, so the bulk of the effort goes into validation — checking sources against each other, catching the one game where two feeds disagree, the score that's off by a point, the schema that silently drifted last season. It's tedious and invisible and it is the entire point. An untrustworthy dataset is worse than no dataset, because it costs you nothing to not have data, and it costs you a great deal to build on data that lies to you.
The test I use is a thought experiment: if I deleted every front end tomorrow — every scoreboard, every standings page, every route — how much of the value would I actually lose? Almost none. I could rebuild a scoreboard in a weekend. What I could not rebuild in a weekend is the years of reconciled, deduplicated, cross-checked history sitting in the warehouse behind it. That asymmetry is the whole reason I built the data layer first and the site second. The site is a demo that the data is real. The data is the thing.
02Trust isn't free
Trust is not a commodity
Which is the whole thesis, really. Raw scores are a commodity — I've said before that everyone has the same numbers. But clean, validated, deep, historical data is not a commodity. The commodity is the raw fact; the asset is the trust. And the gap between “this data exists somewhere” and “you can build on this without re-checking every row” is enormous. Closing that gap is slow and unglamorous, and that is exactly why it's worth something. Everyone wants to build on data. Almost nobody wants to do the work of making it trustworthy.
The market taught me this from the buyer's side, long before I ever sat on the seller's. The enterprise feeds are priced for trust — you pay so that you never have to re-check a row. The cheap feeds are a scraper you inherit and then maintain forever, breaking the day someone changes a table layout upstream. There was no middle: structured, affordable, and mine to build on without babysitting. And what I was really paying for at either end of that market was the same single thing — permission to stop verifying. That's what trustworthy data sells. Not the numbers, which everyone has, but the right to believe them without doing the checking yourself.
03What cleaning is
What cleaning actually looks like
It helps to be concrete about what “cleaning” means, because the word makes it sound like tidying. It isn't tidying. It's a pipeline of specific, load-bearing judgments: normalize the same team's identity across sources that each spell it a little differently, reconcile the duplicate records two feeds create for one game, fill the gaps a single feed quietly leaves, and reject the things that can't be true — a game with three teams, a box score that doesn't sum, a stat outside the range the sport physically allows. None of that is glamorous, and every bit of it is the difference between a dataset you trust and one you merely have.
The identity work is the part that scares me most, because its failures are silent. One team that exists under two IDs doesn't throw an error — it just quietly corrupts every standings table and every historical join that touches it, and you find out months later when a season total looks a little wrong and you can't say why. So the ingest stage tags every raw fact with where and when it came from, and the clean stage settles disagreements by reading that provenance instead of guessing. When two feeds report a different score for the same game, I don't want a coin flip. I want to see which source said what, and when, and let the record with the better claim win. Trust, at this level, is just an audit trail you actually kept.
04Trust is a loop
Staying trustworthy is a loop, not a milestone
Trust also isn't a milestone you reach once and bank. Live data is a treadmill. Scores update roughly every fifteen seconds during a game, and the clean stage has to reconcile fast enough to keep up with play that never pauses to let it catch up. A static historical record you build once and forget about. A live feed you keep honest every single game day, and any stage that lags shows up instantly, in public, as a stale score sitting on someone's screen. The validation work isn't a phase that ends. It's a loop that runs for exactly as long as the data is alive, which is to say forever.
The failure that taught me the most is subtler than a wrong number. It's drift — the gap that opens up between the warehouse and the properties that read from it. A downstream site can quietly serve fewer games than the warehouse actually holds, showing a couple hundred where the clean layer already had several hundred more, and nothing is technically broken. The data isn't wrong; the copy just fell behind the source. So one of the checks I run isn't “is the data right?” but “does what the site serves still match what the warehouse holds?” The same clean layer feeds several of my properties, and every one of those seams is a place trust can silently rot if I stop watching it.
05Tool to product
From a personal tool to a product
I built OZ for myself, because I needed it — I want to be honest that it started selfishly. But the wall I kept hitting is the same wall every small developer and team hits. Good sports data that's clean, affordable, and comprehensive is genuinely hard to come by. So OZ is becoming a product too: an API other builders can use to skip the miserable part I couldn't. It's early — there's a waitlist, not some finished business — and I won't pretend otherwise. But the need behind it is real, because I lived it before I ever thought of selling it.
And while only the sports floor is built so far, OZ was designed to be the data layer under everything I build, not just sports. The plumbing is general even if the water only runs to a few rooms yet. Over time the same warehouse is meant to feed the rest of what I'm making. That's the quiet ambition underneath a site that, today, is honestly just about sports.
06The work worth owning
The work worth owning
I'll admit one more thing, which is that I actually like this work. The cleaning, the validation, the small satisfaction of a dataset you can finally trust — most people find it tedious, and I find it grounding. There's something honest about work whose entire purpose is to make sure a number is right. It doesn't perform. It just has to be true. And that's rare enough in the things we build that I've come to treat it as the whole appeal, not the price of admission.
Nobody admires a foundation. They admire the building. But the building only stands because someone did the careful, boring, unwitnessed work underneath it — and got it right, quietly, where no one was looking. OZ is me deciding to be the person who does that work. The scores were never the hard part. Making them trustworthy was, and that's the part I wanted to own.