A golfer was the user, but the consumer space was never the goal. Golf Geek is our proof of concept for golf OEMs, the launch-monitor, wearable, and simulator makers, built to show what their hardware can do with an intelligence layer on top. The problem class it solves, system fragmentation, is the same one enterprise operations face every day. What follows is how we framed five of those gaps and what we built to close them.
Before we wrote a line of code, we walked the data. Six tracker formats. A third-party course catalog. Paper scorecards still in active use. Weather. The player's own input. We mapped where each lived, what it could be trusted to say, and where it broke down. Then we asked the question that drives every BL engagement: in the moment a decision needs to be made, where is the gap between what is known and what is reachable?
What follows is how we closed five of those gaps.
Every golfer with a launch monitor has data trapped in a vendor silo. Garmin, Rapsodo, TrackMan, SkyTrak. Each exports a different CSV with a different schema, a different idea of what a "shot" is, a different way of naming clubs. The player's actual ability lived in the union of all of those, but no system could read the union.
We built parsers per vendor, a normalized shot model that treats device-source as metadata rather than as a wall, and a write-once-read-anywhere data layer that lets every downstream feature draw from one truth. Adding a seventh format becomes a parser, not a project.
Where this transfers: any business with multiple data vendors that don't reconcile. Sales tools, inventory systems, compliance feeds, claims processors.
The licensed course catalog provides industry-standard course geometry. It is expensive, generic, and identical for every customer who licenses it. Geometry alone tells a player nothing about how to play. It just tells them where the hazards are.
We built a strategy model that pairs that licensed geometry with the player's own dispersion patterns and per-club tendencies. The result is hazard guidance no other product on the market can produce, because no other product has both the substrate and the personalization layer. The licensed data became valuable only when fused with what was ours.
Where this transfers: licensed market data fused with internal forecasts. Industry benchmarks fused with customer-specific behavior. Any place a generic dataset becomes valuable only when paired with what's yours.
Every golfer still uses paper scorecards. Manually entering them post-round is friction. Skipping them creates data gaps. The product had two choices: pretend the paper doesn't exist, or build a path through it.
We built the path. A phone photo runs through Claude Opus vision extraction, the result is reconciled in real time against shot-tracker data already in the database, and discrepancies are surfaced rather than hidden. Sub-two-second turnaround, paper to structured record.
Where this transfers: invoice OCR reconciled against purchase orders. Inspection photos reconciled against work orders. Anywhere paper or images meet structured systems.
A golfer asking "what should I hit right now" needs different reasoning than the same golfer asking "what should I practice this week." The first question wants current form, recent misses, what's working today. The second wants trends, regressions, what to invest in. Same player, same data, two distinct windows.
We built two AI personas over one shot database. The Caddie reasons over a 30-day window. The Coach reasons over 90. One source of truth, two lenses, two recommendations that don't contradict each other because they're answering different questions.
Where this transfers: tactical dashboards and strategic reviews drawing from one warehouse. Sales coaching and territory planning from one CRM. Anywhere the same data needs to answer different questions on different time horizons.
Every analytics product is haunted by the dashboard no one opens. Insight without surface area is dead weight. The hardest part of this engagement was not the model layer or the data layer. It was making sure the system met the player in the moment, on the device in their pocket, with one tap.
We built native iOS and Android from a single React Native codebase, with contextual surfaces. Round Prep before the round. Caddie during. Coach after. The system shows up where decisions actually happen, not on a desktop hours later when the moment has passed.
Where this transfers: any team where the difference between "the data exists" and "the data is used" is whether the tool gets opened at 2 PM on a Tuesday.
The vocabulary changes. Yours might be inventory across three warehouses, claims data across two underwriters, sales activity across CRMs that won't merge, or maintenance signals scattered across hardware that doesn't share a backplane. The problem class is the same: reality is showing up in fragments, and the people who need to act on it can't reach the whole picture in the moment that matters.
We don't sell a platform. We architect the bridge between what you already have and the decisions your people need to make on top of it. We work the data first, the model second, the surface third.
If you can describe your version of this, we can work through it with you.
We'll show you what it looks like as a system that thinks.
Start a discovery call →