I've been building Freebo, a booking platform for tour operators. Kayak companies, party bikes, guided hikes -- the kind of businesses where people pay money to have fun outside.
For months, I thought the core challenge was availability. Slot holds, capacity tracking, preventing double-bookings across shared assets. That stuff is tricky. It's also table stakes.
The real beast is pricing.
Here's what I didn't know: a single boat tour can have four completely different pricing models depending on who's booking, when, and how many people show up. Per-person for public mixers. Flat-rate for private charters. Base price plus a surcharge per extra guest after twelve. Tiered rates that drop as the group gets bigger. And all of that can change based on whether it's a Saturday evening or a Tuesday morning.
One product. One boat. Dozens of possible prices.
The formula I ended up with looks like this:
grand_total = subtotal_after_promo + platform_fee + fees + tax
That single line hides six layers of computation underneath it. Add-ons, custom charges, promo codes, platform fees, taxable vs non-taxable line items, refund tracking. Every layer depends on the one before it, and the order matters. Rearrange the formula and the math breaks in ways that are very hard to catch.
I spent weeks getting this right. Then I realized I needed someone who's lived inside this industry to pressure-test the whole monetization model. Not the code -- the strategy. What do operators actually expect to pay? Where do they get burned? What pricing structures make them switch platforms?
So I compiled everything I know about the product into a single briefing document and handed it to an industry veteran. Someone who's been on the inside of how this market works at scale.
That conversation hasn't happened yet. But writing that document forced me to articulate things about Freebo that I'd been carrying around in my head for months. The act of explaining your product to an expert -- clearly enough that they can challenge it -- turns out to be its own kind of stress test.
I'll share what comes out of it. For now, I'm sitting with the uncomfortable realization that the feature I thought was a module is actually the entire product.
Pricing isn't a settings page. It's the thing.