- Role
- Founder & Builder
- Product
- Live pricing intelligence and market benchmarking tool
- Stack
- Python, FastAPI, OpenAI web search (Tavily fallback), Supabase, Airtable, Railway
- Focus
- Low-friction UX, data normalization, and fast time-to-value
Challenge
Fine-wine pricing is scattered across sources and slow to evaluate. Buyers often have to cross-reference multiple merchant listings, inconsistent critic scores, and scattered vintage guidance just to get to a usable pricing view. That slows decision-making for collectors, sommeliers, and retailers, and increases the odds of weak pricing decisions. BurgReport was built to compress that scattered research into a single benchmark view that can be used in seconds.
Build Decisions
BurgReport acts as a specialized aggregation and pricing-reference layer for fine wine. It provides:
- Live price snapshots with average, minimum, and maximum retail pricing.
- Merchant-count visibility.
- A seen-price checker to compare an observed price against market benchmarks.
- Normalized critic consensus across major sources.
- Vintage and drinking-window context to make the pricing signal more useful.
The product
A no-login benchmark view that compresses scattered merchant and critic data into one fast read. Click any frame to enlarge.
Outcome Evidence
This project was less about model development and more about live data acquisition, normalization, and fast search-to-insight UX. Key technical decisions:
- Python FastAPI backend on Railway with three routers (search, wines, vintages).
- Uses the OpenAI Responses API web-search tool (with a Tavily fallback) to fetch live pricing from public merchant listings — unvalidated estimates parsed from public web pages, not a licensed feed or Wine-Searcher integration.
- Supabase Postgres for a 24-hour TTL price cache to keep response times sub-3 seconds.
- Airtable REST API for curated Grand Cru content (descriptions, producers, pairings) with a 1-hour in-memory cache.
- Nightly Railway cron refreshes 34 Grand Crus across 5 vintages so the cache stays warm.
- Designed for near-instant utility with no login wall or onboarding friction.
- 24-hour Supabase cache and nightly cron keep price lookups fast and repeatable.
- Multiple source normalization reduces outlier noise before benchmark display.
- No onboarding wall: interface is optimized for immediate utility in high-intent sessions.
