Overview & Restaurant Universe
Goal of this chapter: Understand why this system exists, how data travels from database to dashboard, and get a clear picture of the full restaurant universe at Hungry Hub.
1. Why Do We Need Restaurant Prioritization?
Hungry Hub connects thousands of hungry diners with top restaurants in Thailand. Every week, our marketing team has budgets and slots to promote partner restaurants across several channels:
- Facebook & Instagram Ads
- Influencer (KOL) Video Reviews & Posts
- Mobile App Push Notifications
- Email Newsletters & App Banners
The Challenge
Without data-driven scoring, marketing decisions face two major traps:
- The “Squeaky Wheel” Trap: Marketing slots go to restaurant owners who ask the loudest, even if their deals don’t convert well.
- Hidden Gems Get Ignored: High-converting, beloved restaurants with great customer reviews miss out on promotions simply because no one noticed them.
Restaurant Prioritization solves this by mathematically answering: “Which restaurants will deliver the highest return if we promote them this week, and which ones need help before they leave our platform?”
2. Understanding the Restaurant Universe (7,400+ Restaurants)
One common point of confusion is how many restaurants Hungry Hub actually tracks.
Older project drafts mentioned roughly 2,700 restaurants (which was a temporary sample from an early Bangkok test). In reality, our production database tracks over 7,400 restaurants across various regions and statuses.
Here is how the numbers break down:
graph TD
A["Total ClickHouse Universe<br/><b>7,403 Restaurants</b><br/>(Every restaurant in hh_power_bi.combined_rankings)"] --> B["Platform Bookable<br/><b>2,775 Restaurants</b><br/>(Live & accepting bookings across all cities)"]
A --> C["Inactive / Offboarded / Regional<br/><b>~4,628 Restaurants</b><br/>(Monitored for re-activation & account outreach)"]
B --> D["Bangkok Bookable Core<br/><b>1,898 Restaurants</b><br/>(Highest GMV density & daily marketing focus)"]
B --> E["Other Provinces & International<br/><b>877 Restaurants</b><br/>(Phuket, Pattaya, Chiang Mai, etc.)"]
Breakdown of the 3 Key Counts:
- 7,403 Total Universe: Every restaurant ID that exists in our ClickHouse serving table (
hh_power_bi.combined_rankings). This includes active restaurants, newly signed venues, and inactive or archived partner accounts. - 2,775 Bookable Platform-Wide: Restaurants that are currently live, active, and can be booked by users on the Hungry Hub mobile app or website right now.
- 1,898 Bangkok Bookable (Core Group): Active bookable restaurants located in Bangkok. This group generates the majority of weekly transactions and forms the primary target for everyday paid ads and influencer campaigns.
Note
By default, the marketing dashboard filters for Bookable restaurants so you only spend ad money on venues users can actually book today. However, account managers can turn off this filter to find churned restaurants that could be re-activated.
3. The 5-Stage System Pipeline
The entire system runs automatically on a scheduled cadence through 5 clear stages:
flowchart LR
S1["1. Data Ingestion<br/>(ClickHouse)"] --> S2["2. Feature Building<br/>(80 Clean Signals)"]
S2 --> S3["3. Machine Learning<br/>(LightGBM core_v2)"]
S3 --> S4["4. Segmentation &<br/>Ranking Logic"]
S4 --> S5["5. Dashboard &<br/>Action Delivery"]
- Data Ingestion (ClickHouse): Reads verified booking sales, covers (guest count), customer reviews, past ad spend, and influencer activity.
- Feature Building (80 Clean Signals): Calculates weekly trends, rolling moving averages, and promotional exposure while strictly preventing future data leakage.
- Machine Learning (
core_v2): LightGBM predicts each restaurant’s baseline sales potential and flags whether past promotions actually created positive lift. - Segmentation & Scoring: Combines prediction scores and recent marketing history into 4 clear business quadrants plus smart badges (e.g., Hidden Gem, At Risk).
- Dashboard Delivery: Publishes the processed results into our ClickHouse production table via an atomic swap and displays them on the interactive Streamlit dashboard.
4. Summary of the 4 Main Dashboard Pages
The final results are presented on a Streamlit web application divided into 4 intuitive tabs:
| Page Name | Who Uses It? | Primary Purpose |
|---|---|---|
| 1. Restaurant Rankings | Marketers & Leads | The master table. Browse restaurants sorted by Marketing Priority, filter by cuisine/location, and download Excel/CSV lists for weekly ad campaigns. |
| 2. Restaurant Deep Dive | Account Managers | Search a specific restaurant. See its 12-month sales trend, guest reviews, marketing history, and AI-predicted sales trajectory. |
| 3. Marketing Simulator | Campaign Planners | “What-if” sandbox. Test what happens to total bookings and revenue if marketing spend is shifted from one group of restaurants to another. |
| 4. Operations & System | Data & DevOps Engineers | Real-time monitoring of model freshness, data pipeline health, memory usage, and execution logs. |
5. Next Steps
To see how the 4 business segments and priority scores are calculated, proceed to 02. Business Context & Strategy.