docs: reorganize research docs + add project tracker and marketing strategy
Move historical docs from docs/ and .claude/ to research/. Add superseded notice to research/PLAN.md. Add CHANGELOG entries for previous fixes. New: PROJECT.md (task tracker), docs/MARKETING.md (marketing strategy). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
- Template sync: copier update v0.9.0 → v0.10.0 — `export_serving.py` module,
|
||||
`@padelnomics_glob()` macro, `setup_server.sh`, supervisor export_serving step
|
||||
|
||||
### Fixed
|
||||
- **Eurostat JSON-stat parsing** — API returns 4-7 dimension sparse dictionaries (583K values)
|
||||
that caused DuckDB OOM; extractor now pre-processes JSON-stat into flat records with
|
||||
configurable dimension filters per dataset
|
||||
- **Playtomic venue lat/lon** — staging model used wrong JSON path (`address.coordinate_lat`
|
||||
vs actual `address.coordinate.lat`)
|
||||
- **dim_cities CTE** — unused `eurostat_labels` CTE caused `city_slug_raw` column not found error
|
||||
|
||||
### Removed
|
||||
- `extract/.../execute.py` — replaced by per-source modules
|
||||
- `models/raw/` directory — raw layer eliminated; staging reads landing files directly
|
||||
|
||||
227
PROJECT.md
Normal file
227
PROJECT.md
Normal file
@@ -0,0 +1,227 @@
|
||||
# Padelnomics — Project Tracker
|
||||
|
||||
> Move tasks across columns as you work. Add new tasks at the top of the relevant column.
|
||||
> Last updated: 2026-02-22.
|
||||
|
||||
---
|
||||
|
||||
## Done ✅
|
||||
|
||||
> Confirmed by full code audit (2026-02-22). More is built than the original strategy docs assumed.
|
||||
|
||||
### Infrastructure & Deploy
|
||||
- [x] UV workspace monorepo structure (web/, transform/, extract/ members)
|
||||
- [x] Docker + docker-compose production deploy
|
||||
- [x] Litestream R2 backup (1-year retention, auto-restore on startup)
|
||||
- [x] CI pipeline (GitLab, env vars, health check gated deploys)
|
||||
- [x] Pre-migration DB backup + auto-restore on failed deploy
|
||||
- [x] Nginx router config
|
||||
|
||||
### Auth & Users
|
||||
- [x] Magic link auth (signup + login)
|
||||
- [x] User accounts + sessions
|
||||
- [x] RBAC (admin role, supplier role)
|
||||
- [x] User dashboard (stats, settings, account deletion)
|
||||
- [x] Admin impersonation (login as any user, return to admin)
|
||||
|
||||
### Planner / Calculator
|
||||
- [x] Full 60-var financial planner — **fully open, no login required**
|
||||
- [x] HTMX refactor (server-rendered tabs, ~200 line JS)
|
||||
- [x] Planner i18n (EN + DE, all strings translated)
|
||||
- [x] Currency formatting by country (€ / £ / $)
|
||||
- [x] Market data endpoint (`/planner/api/market-data`) — city-specific defaults from DuckDB
|
||||
- [x] Scenario save/load (requires login)
|
||||
- [x] "Get Supplier Quotes" button linking to quote wizard
|
||||
|
||||
### Leads / Quote Flow
|
||||
- [x] 9-step quote wizard — no login required, heat scoring, email verification
|
||||
- [x] Lead heat scoring (hot 35 credits / warm 20 / cool 8)
|
||||
- [x] Guest email verification (magic link sent before lead activates)
|
||||
- [x] Admin lead management (list, detail, status transitions, manual forwarding)
|
||||
- [x] Supplier credit-based lead unlock (atomic credit spend + email notification to both sides)
|
||||
- [x] i18n for full quote flow
|
||||
|
||||
### Supplier Directory & Dashboard
|
||||
- [x] Directory — fully public, search/FTS/filter/pagination/detail/enquiry
|
||||
- [x] Tier-based ordering (sticky > pro > growth > basic > free)
|
||||
- [x] Boost badges on directory cards
|
||||
- [x] Supplier signup wizard (4-step, plan selection, Paddle checkout, waitlist-gatable)
|
||||
- [x] Supplier dashboard (4 tabs: overview, leads feed, listing editor, boosts)
|
||||
- [x] Listing editor with live HTMX preview, logo/cover upload
|
||||
- [x] Boost purchase from dashboard (Paddle checkout)
|
||||
- [x] Credit pack purchase from dashboard
|
||||
- [x] i18n for directory + supplier pages
|
||||
|
||||
### Billing & Credits
|
||||
- [x] Paddle billing (SDK, 18 products, webhooks, checkout, subscription lifecycle)
|
||||
- [x] Credit system (balance, ledger, atomic unlock, monthly refill on 1st of month)
|
||||
- [x] Business Plan PDF purchase flow (Paddle one-time → webhook → async generation)
|
||||
- [x] Boost purchases (logo, highlight, verified, card color, sticky week/month)
|
||||
- [x] Credit pack purchases (25/50/100/250)
|
||||
- [x] Supplier subscription tiers (Basic free / Growth €149 / Pro €399, monthly + annual)
|
||||
- [x] `WAITLIST_MODE` toggle — gates supplier signup + export on GET (default: false)
|
||||
- [x] Resend email integration (transactional: magic link, welcome, quote verify, lead forward, enquiry)
|
||||
- [x] Auto-create Resend audiences per blueprint (waitlist, planner nurture)
|
||||
|
||||
### Business Plan PDF Export
|
||||
- [x] Full WeasyPrint PDF pipeline (not just a CTA — actually generates PDFs)
|
||||
- [x] Paddle checkout for PDF purchase
|
||||
- [x] Async generation via worker queue, email on completion
|
||||
- [x] PDF content: executive summary, CAPEX, OPEX, 5-year P&L, financing, IRR/MOIC/payback/DSCR
|
||||
- [x] EN + DE PDF localization
|
||||
|
||||
### CMS / Programmatic SEO
|
||||
- [x] Article template engine (Jinja2 Markdown + `[scenario:slug:section]` markers)
|
||||
- [x] Seed script (`seed_content.py`) — 40 cities × EN + DE = 80 articles
|
||||
- [x] City coverage: DE (8), US (6), UK (4), ES (5), FR (3), IT (2), NL, AT, CH, SE, PT (2), BE, AE, AU (2), IE
|
||||
- [x] Per-city financial model overrides (rates, rent, utilities, permits, court config)
|
||||
- [x] Admin CMS (template CRUD, data row management, bulk CSV upload, bulk generate, publish toggle, rebuild)
|
||||
- [x] Markets hub (`/<lang>/markets`) — article listing with FTS + country/region filters
|
||||
- [x] DuckDB refresh script (`refresh_from_daas.py`)
|
||||
|
||||
### Data Pipeline (DaaS)
|
||||
- [x] Overpass API extractor (OSM padel courts)
|
||||
- [x] Eurostat extractor (city demographics)
|
||||
- [x] Playtomic unauthenticated tenant search extractor
|
||||
- [x] SQLMesh 3-layer DuckDB pipeline (staging → foundation → serving)
|
||||
- [x] `dim_venues` (OSM + Playtomic deduped), `dim_cities` (Eurostat population)
|
||||
- [x] `city_market_profile` (market score OBT), `planner_defaults` (per-city calculator pre-fill)
|
||||
- [x] DuckDB analytics reader in app lifecycle
|
||||
|
||||
### i18n
|
||||
- [x] Full i18n across entire app (EN + DE)
|
||||
- [x] URL prefixes (`/en/`, `/de/`) on all public blueprints
|
||||
- [x] Language detection (cookie + Accept-Language header)
|
||||
- [x] `tformat` Jinja2 filter for parameterized translations
|
||||
- [x] German copy: informal "Du/Dein" throughout
|
||||
- [x] hreflang tags + `x-default`
|
||||
|
||||
### Admin Panel
|
||||
- [x] Comprehensive admin: users, tasks, leads, suppliers, CMS templates, scenarios, articles, feedback
|
||||
- [x] Task queue management (list, retry, delete)
|
||||
- [x] Lead funnel stats on admin dashboard
|
||||
|
||||
### SEO & Legal
|
||||
- [x] Sitemap (both language variants, `<lastmod>` on all entries)
|
||||
- [x] robots.txt
|
||||
- [x] JSON-LD schemas (Organization, FAQPage, Article)
|
||||
- [x] OG tags + canonical on all pages
|
||||
- [x] German legal pages (Impressum, Datenschutz, AGB — DSGVO compliant)
|
||||
- [x] English legal pages (GDPR, proper controller identity)
|
||||
- [x] Cookie consent banner (functional/A/B categories, 1-year cookie)
|
||||
- [x] Virtual office address on imprint
|
||||
|
||||
### Other
|
||||
- [x] A/B testing framework (`@ab_test` decorator + Umami `data-tag`)
|
||||
- [x] Mobile nav (hamburger < 900px, full overlay panel)
|
||||
- [x] Padel racket SVG logo/favicon
|
||||
- [x] Feedback widget (HTMX POST, rate-limited)
|
||||
- [x] Interactive ROI calculator widget on landing page (JS sliders, no server call)
|
||||
|
||||
---
|
||||
|
||||
## In Progress 🔄
|
||||
|
||||
_Move here when you start working on it._
|
||||
|
||||
---
|
||||
|
||||
## Next Up 📋
|
||||
|
||||
> Two independent tracks — pick from either at any time, no sequencing between them.
|
||||
> Tech tasks can be shipped in hours. Business tasks depend on other people and run in parallel.
|
||||
|
||||
### Go-Live (config, not code)
|
||||
|
||||
| 🛠 Tech | 📣 Business |
|
||||
|--------|------------|
|
||||
| Paddle: set production env vars + run `setup_paddle` against prod | First 3–5 supplier outreach emails |
|
||||
| Publish SEO articles: run `seed_content --generate` on prod (or trigger from admin) | First LinkedIn post |
|
||||
| Wipe 5 test suppliers (`example.com` entries from `seed_dev_data.py`) | |
|
||||
| Verify Resend production API key — test magic link email | |
|
||||
| Submit sitemap to Google Search Console | Set up Google Search Console + Bing Webmaster Tools |
|
||||
| Verify Litestream R2 backup running on prod | |
|
||||
|
||||
### Week 1–2 — First Revenue
|
||||
|
||||
| 🛠 Tech | 📣 Business |
|
||||
|--------|------------|
|
||||
| Email nurture sequence (3-email drip for planner users who save scenarios — Resend infra ready, just need content + scheduling) | 30–50 supplier outreach emails |
|
||||
| | 2–3 founding member deals (free leads for 3 months) |
|
||||
| | "State of Padel Q1 2026" report written + published |
|
||||
| | First 3 priority SEO articles (see `docs/MARKETING.md` for titles) |
|
||||
| | LinkedIn: 5 posts published |
|
||||
|
||||
### Week 2–4 — Market Map
|
||||
|
||||
| 🛠 Tech | 📣 Business |
|
||||
|--------|------------|
|
||||
| Market map UI (geographic visualization over DuckDB city data — no map exists yet) | Follow up on founding member outreach |
|
||||
| | More SEO articles |
|
||||
|
||||
### Month 2 — Market Intelligence
|
||||
|
||||
| 🛠 Tech | 📣 Business |
|
||||
|--------|------------|
|
||||
| Market Intelligence Dashboard (city analytics, occupancy estimates, demand map) | Explorer tier (€79/mo) promoted to email list |
|
||||
| Explorer tier paywall (€79/mo subscription gate) | Email drip running |
|
||||
|
||||
---
|
||||
|
||||
## Backlog 🗂️
|
||||
|
||||
> Validated ideas not yet scheduled. Pick up when capacity allows.
|
||||
|
||||
### Product
|
||||
- [ ] Market Intelligence Pro tier (€149/mo — hall-level data, competitor tracking, historical)
|
||||
- [ ] Location Scorer (mechanical turk first: form → manual PDF delivery → automate if demand)
|
||||
- [ ] Operational analytics for running venues (€49–99/mo, Phase 3 product)
|
||||
- [ ] Business Plan Pro subscription (€39/mo, saved scenarios + auto-updates)
|
||||
- [ ] Site Selection Reports (€499–999 high-ticket, productized)
|
||||
- [ ] "State of Padel" quarterly report product (€299–499, gated)
|
||||
- [ ] Enterprise / API tier (custom pricing)
|
||||
- [ ] Padel Hall Accelerator (€999 — report + call + supplier intros)
|
||||
|
||||
### Data & Intelligence
|
||||
- [ ] Multi-source data aggregation (add booking platforms beyond Playtomic)
|
||||
- [ ] Google Maps signals (reviews, ratings)
|
||||
- [ ] Weather + demographic overlays
|
||||
- [ ] Voluntary data sharing from operating venues (benchmarking network effects)
|
||||
- [ ] ML/forecasting layer (demand forecasting, pricing optimization)
|
||||
- [ ] Scraping risk mitigation: rotate sources, voluntary sharing fallback
|
||||
|
||||
### Bugs / Tech Debt
|
||||
- [ ] Resend audiences: two segments both using "waitlist-auth" — review audience/segment model and fix duplication
|
||||
- [ ] Transactional emails not all translated to German — some emails still sent in English regardless of user language
|
||||
- [ ] Resend inbound emails enabled — plan how to integrate (webhook routing, reply handling, support inbox?)
|
||||
- [ ] Extraction: Playtomic API only returns ~20 venues per bbox — investigate smaller/targeted bboxes
|
||||
|
||||
### Marketing & Content
|
||||
- [ ] LinkedIn presence (ongoing — founder posts, thought leadership)
|
||||
- [ ] "Wirecutter for padel" affiliate site (racket reviews, gear guides)
|
||||
- [ ] "The Padel Business Report" newsletter
|
||||
- [ ] Equipment supplier affiliate partnerships (€500–1,000/lead or 5%)
|
||||
- [ ] Padel podcasts (guest appearances)
|
||||
- [ ] Sports business media outreach
|
||||
- [ ] National padel associations (DTB, LTA — co-distribution)
|
||||
- [ ] Franchise partnerships (market data / leads)
|
||||
- [ ] Lender distribution (banks recommending Padelnomics plans)
|
||||
|
||||
### Geographic Expansion
|
||||
- [ ] Austria + Switzerland (language done, cities seeded — just outreach + supplier onboarding)
|
||||
- [ ] France (cities seeded in CMS)
|
||||
- [ ] Italy, Netherlands, Sweden (cities seeded)
|
||||
- [ ] UAE / Middle East (cities seeded)
|
||||
- [ ] Pan-European supplier directory
|
||||
|
||||
---
|
||||
|
||||
## Decisions Log
|
||||
|
||||
| Date | Decision | Rationale |
|
||||
|------|----------|-----------|
|
||||
| 2026-02-22 | Two-sided marketplace framing (Side A = aspiring owners, Side B = suppliers) | Suppliers are the main revenue engine; calling them "secondary" was wrong |
|
||||
| 2026-02-22 | Tennis/sports club owner as beachhead | Faster decision cycle, talk to each other, ~500–1,000 targets, small enough to dominate |
|
||||
| 2026-02-22 | Credit system over pay-per-lead blast | Suppliers self-select → higher quality perception; scales without manual intervention |
|
||||
| 2026-02-22 | No soft email gate on planner | Planner already captures emails at natural points (scenario save → login, quote wizard step 9). Gate would add friction without meaningful list value. Revisit if data shows a gap. |
|
||||
| 2026-02-22 | Wipe test suppliers before launch | 5 `example.com` entries from seed_dev_data.py — empty directory with "Be the first" CTA is better than obviously fake data |
|
||||
533
docs/MARKETING.md
Normal file
533
docs/MARKETING.md
Normal file
@@ -0,0 +1,533 @@
|
||||
# Padelnomics — Marketing Master Doc
|
||||
|
||||
> Living doc. Update state column as things progress. Last updated: 2026-02-22.
|
||||
|
||||
---
|
||||
|
||||
## Positioning & Messaging
|
||||
|
||||
**One-liner:** "The only platform that helps you plan, fund, and build a padel facility with real market data — not guesswork."
|
||||
|
||||
**DaaS framing (aspirational):** "Bloomberg for padel hall operators." We sell unfair advantages to people making six-figure facility investment decisions — using data nobody else is aggregating.
|
||||
|
||||
**30-second pitch:**
|
||||
> We're building the data intelligence platform for the padel industry. We start with a free court planning tool that captures every aspiring padel entrepreneur via SEO. Then we layer real market intelligence on top — occupancy data, pricing, demand gaps, competitive analysis — scraped and aggregated from booking platforms. Operators making €200K decisions pay €79–149/month to de-risk their investment. As the market grows from 25K to 50K+ facilities, we become the industry-standard data backbone. Think "Kpler for padel" — bootstrapped, capital-efficient, moat that compounds daily.
|
||||
|
||||
**Core insight:** The job is never "I need a calculator." It's "I need to feel confident committing €200K+." Confidence is the product. Calculator is the vehicle.
|
||||
|
||||
### Why This Works (DaaS Thesis)
|
||||
|
||||
| Check | Answer |
|
||||
|-------|--------|
|
||||
| High-stakes decisions? | ✅ €100K–€500K facility investments |
|
||||
| Information asymmetry? | ✅ No centralized market data exists |
|
||||
| Willingness to pay? | ✅ B2B operators, not casual players |
|
||||
| Unique data capability? | ✅ Playtomic scraping + multi-source aggregation |
|
||||
| 500+ potential customers? | ✅ ~25,000 padel facilities globally, growing to 50K+ |
|
||||
| Low commoditization risk? | ✅ Historical data depth = compounding moat |
|
||||
|
||||
**Analogy:** Kpler started by tracking LNG cargo shipments in an opaque commodity market. We're doing the same for padel: tracking "demand shipments" (bookings) across an opaque facility market.
|
||||
|
||||
### Competitive Positioning
|
||||
|
||||
| vs. | Their position | Our position |
|
||||
|-----|---------------|--------------|
|
||||
| Playtomic | OpenTable for padel — booking marketplace for players | Restaurant P&L analytics suite — optimizing for operators. Complementary, we sit on top of their data. |
|
||||
| Padelfinder | Directory, no planning tools | Intelligence layer + planning + directory |
|
||||
| Sportstättenrechner | Generic sports calculators, not padel-specific | Padel-specific, automated, with data moat |
|
||||
| Generic BI (Tableau, Power BI) | Operator finds, cleans, models own data | Padel-specific insights out of the box. No setup, no data engineering. Just answers. |
|
||||
| Nothing (current state) | Excel, gut feel, word of mouth. The real competitor. | 10× faster with 10× better data. |
|
||||
|
||||
---
|
||||
|
||||
## Platform Model (Two-Sided)
|
||||
|
||||
Padelnomics is a two-sided marketplace. Both sides must be acquired and retained.
|
||||
|
||||
```
|
||||
Side A — Aspiring Owners Side B — Suppliers / Builders
|
||||
(Lead Supply) (Lead Demand / Revenue Engine)
|
||||
|
||||
Free planner → email capture →→→ Lead marketplace → credits → MRR
|
||||
↓ ↑
|
||||
SEO traffic drives acquisition Outreach + founding deals
|
||||
↓ ↑
|
||||
Small direct revenue Main revenue: subscriptions + credits + upsells
|
||||
(PDF export, market intel)
|
||||
```
|
||||
|
||||
**Chicken-and-egg cold start:** Need aspiring owners using the planner to have leads. Need leads to sell supplier subscriptions. Need supplier directory for aspiring owners to trust the platform. Solve by: (1) launching calculator publicly first to build Side A, (2) simultaneously signing 2–3 founding suppliers at steep discount for social proof.
|
||||
|
||||
---
|
||||
|
||||
## Audiences
|
||||
|
||||
### Side A — Aspiring Owners (Lead Supply)
|
||||
|
||||
> First-time facility investor, €200K–2M decision. Primarily DACH.
|
||||
|
||||
**Job:** "Validate the opportunity with real data and build a credible financial case, so I can make a confident go/no-go decision and secure funding."
|
||||
|
||||
**Struggling moments (= acquisition triggers):**
|
||||
1. "I've been talking about this for months and I need to decide"
|
||||
2. "The bank asked for a business plan and I have no idea what to put in it"
|
||||
3. "I found conflicting information and I don't know what to trust"
|
||||
4. "A competitor just opened nearby — is there still room?"
|
||||
5. "My partner/spouse is skeptical and I need proof"
|
||||
|
||||
**Emotional job:** Feel smart and diligent, not like someone who gambled on hype.
|
||||
**Social job:** Look professional and thorough to banks / investors / spouse. ← underserved, pricing lever.
|
||||
|
||||
**Acquired via:** SEO, free calculator, content marketing.
|
||||
**Direct revenue:** Business plan PDF (€99), market intel subscriptions (future).
|
||||
|
||||
#### Beachhead Sub-segment — Tennis/Sports Club Owner (Germany)
|
||||
|
||||
> Seeing padel demand from members, competitors adding courts. ~500–1,000 targets. Club board vote, not investor pitch.
|
||||
|
||||
**Why start here:** Small enough to dominate, talk to each other (DTB/federations), fastest decision cycle.
|
||||
|
||||
**Whole product needed:** Club-specific planner defaults, business plan PDF for board vote, 2–3 builder quotes, financing options.
|
||||
|
||||
**What NOT to build for this segment:** Operator dashboards, M&A tools, franchise features, AI advisor.
|
||||
|
||||
### Side B — Suppliers / Builders (Lead Demand, Main Revenue)
|
||||
|
||||
> Growing a construction/equipment business, wants qualified prospects not cold leads.
|
||||
|
||||
**Job:** "Get a reliable stream of serious prospects so I can focus on closing, not chasing."
|
||||
|
||||
**Struggling moments:**
|
||||
1. "We quote 20 projects but only close 3. Most leads aren't serious"
|
||||
2. "We have capacity for 5 more projects this quarter but pipeline is thin"
|
||||
3. "A new competitor opened and they're undercutting price"
|
||||
|
||||
**Key insight:** Padelnomics leads come with full financial models attached — a builder can write a targeted proposal in 1 hour vs. 3 qualification calls.
|
||||
|
||||
**Acquired via:** Manual outreach, founding member deals, word-of-mouth.
|
||||
**Revenue:** Directory subscriptions, lead credits, upsell stack.
|
||||
|
||||
### Future Segments (Phase 3+)
|
||||
|
||||
| Segment | Pain | Product | Price sensitivity |
|
||||
|---------|------|---------|-------------------|
|
||||
| Operating venue owner | "Am I performing well vs. market?" | Operational analytics (€49–99/mo) | Medium — easy ROI |
|
||||
| Padel franchise | "Where should we expand next?" | Enterprise intelligence + API | Very low |
|
||||
| Real estate developer | "Is padel viable for this space?" | Site selection reports (€499–999) | Very low |
|
||||
| Equipment supplier | "Who's about to build a hall?" | Lead gen / affiliate partnerships | Pay per lead |
|
||||
| Investor | "What does the padel market look like?" | Industry reports (€299–499) | Very low |
|
||||
|
||||
---
|
||||
|
||||
## Demand Phases (Aspiring Owner Buying Timeline)
|
||||
|
||||
| Phase | Timeframe | State of Mind | What Padelnomics Needs |
|
||||
|-------|-----------|---------------|------------------------|
|
||||
| Passive | 3–12 mo | "Padel is booming, I wonder about investing" | Thought leadership, market reports, social content |
|
||||
| Active | 2–8 wk | "What does it cost? What's the ROI?" | Free calculator, SEO articles, city-specific pages |
|
||||
| Deciding | 1–4 wk | "I need a tool, a builder, and a bank" | Full planner, PDF export, builder quotes, financing |
|
||||
| Consuming | Ongoing | "Am I on track? Do I need to adjust?" | Benchmarks, competitive radar, performance tracking |
|
||||
|
||||
> **Current gap:** Padelnomics only serves Active + Deciding. Passive phase = no presence yet.
|
||||
|
||||
---
|
||||
|
||||
## Product Vision & Funnel
|
||||
|
||||
```
|
||||
FREE: Padel Court Planner (ROI Calculator)
|
||||
─ Distribution engine: SEO traffic, email capture, credibility
|
||||
─ Also generates leads for Side B
|
||||
↓
|
||||
PAID: Market Intelligence Dashboard (€79–149/mo)
|
||||
─ Core monetization from aspiring owners (Phase 2)
|
||||
─ Occupancy data, pricing, demand gaps, city analytics
|
||||
↓
|
||||
EXPANSION: Operational Analytics (€49–99/mo)
|
||||
─ Recurring revenue from operating venue owners (Phase 3)
|
||||
─ Benchmarking, optimization, competitor alerts
|
||||
↓
|
||||
HIGH-TICKET: Consulting + Reports (€499–999)
|
||||
─ Premium upsell: site selection reports, industry reports (Phase 4+)
|
||||
```
|
||||
|
||||
### Phase 2 — Market Intelligence Dashboard (Month 1–3)
|
||||
|
||||
**What we scrape from Playtomic:**
|
||||
- Booking slot availability → reverse-engineer occupancy rates per hall
|
||||
- Listed pricing → map pricing strategies (peak vs. off-peak)
|
||||
- New hall listings → track market expansion
|
||||
- Halls disappearing / low bookings → detect failure signals
|
||||
- Court counts per facility → supply density by area
|
||||
|
||||
**Dashboard features:**
|
||||
|
||||
| Feature | Value |
|
||||
|---------|-------|
|
||||
| Market Map | Interactive map of all halls with occupancy heat overlay |
|
||||
| City Analytics | Avg occupancy, pricing, court density, growth trends per city |
|
||||
| Site Selection Tool | "Enter a location → see demand, competition, revenue potential" |
|
||||
| Competitor Spy | Track any hall's occupancy and pricing over time |
|
||||
| Demand Gaps | Identify underserved areas (high population, low court density) |
|
||||
| Trend Reports | Which cities are growing fastest, weekly/monthly |
|
||||
|
||||
**Tiers:** Explorer (€79/mo) · Pro (€149/mo) · Enterprise (custom, multi-country + API)
|
||||
|
||||
**Killer pitch:** *"You're about to invest €200K. For €149/month, you'll know that the 4 halls near your target location run at 73% weekday occupancy and 94% weekends, charge €40/hour peak, and that there's an underserved suburb 15km north with zero courts and 200K residents."*
|
||||
|
||||
### Phase 3 — Operational Analytics (Month 3–6)
|
||||
|
||||
Every Phase 1 planner user who actually opens a hall becomes a Phase 3 customer. Built-in pipeline.
|
||||
|
||||
- Benchmark your hall vs. market averages (occupancy, pricing, revenue/court)
|
||||
- Pricing optimization — see competitor pricing, get dynamic suggestions
|
||||
- Demand forecasting — historical patterns + weather + local events
|
||||
- Competitor alerts — new hall openings, pricing changes nearby
|
||||
- Utilization tracking — connect booking system or manual input
|
||||
|
||||
---
|
||||
|
||||
## Data Moat Strategy
|
||||
|
||||
The moat compounds over time — this is critical to long-term defensibility.
|
||||
|
||||
1. **Historical depth** — Every day of scraping = data competitors can't replicate. In 12 months we'll have a year of occupancy trends nobody else has.
|
||||
2. **Multi-source aggregation** — Start with Playtomic, add other booking platforms, Google Maps reviews, social signals, weather, demographics, real estate pricing.
|
||||
3. **Network effects** — As operating customers share their own data for benchmarking, the dataset grows. More data → better insights → more customers → more data.
|
||||
4. **Processing layer** — Raw bookings → occupancy models → demand forecasting → site selection algorithms. The ML/analytics layer is hard to replicate.
|
||||
|
||||
**Scraping risk mitigation:** Scrape respectfully (1×/day), diversify data sources early, build toward voluntary data sharing from hall operators.
|
||||
|
||||
---
|
||||
|
||||
## Channel Strategy
|
||||
|
||||
### Owned (build now)
|
||||
|
||||
| Channel | Approach | State |
|
||||
|---------|----------|-------|
|
||||
| **Email list** | Gate planner results behind email; build from day 1 | [ ] Not live |
|
||||
| **SEO blog** | Programmatic city articles + editorial content | [~] In progress |
|
||||
| **Public free calculator** | No-signup, shareable URL; primary traffic driver | [ ] Not live |
|
||||
|
||||
### Rented (primary B2B)
|
||||
|
||||
| Channel | Approach | State |
|
||||
|---------|----------|-------|
|
||||
| **LinkedIn** | Founder posts, thought leadership, padel community | [ ] Not started |
|
||||
| **Reddit** | r/padel, r/entrepreneur — seeding calculator, articles | [ ] Not started |
|
||||
| **Facebook Groups** | Padel business groups, sports entrepreneur communities | [ ] Not started |
|
||||
|
||||
### Borrowed (Month 2+)
|
||||
|
||||
| Channel | Approach | State |
|
||||
|---------|----------|-------|
|
||||
| Padel podcasts | Guest appearances, case studies | [ ] Planned |
|
||||
| Sports business media | Press outreach ("padel boom + intelligence gap" angle) | [ ] Planned |
|
||||
| National padel associations | DTB, LTA, etc. — co-distribution potential | [ ] Planned |
|
||||
| Lenders as distribution | Banks recommend Padelnomics plans → massive trust signal | [ ] Future |
|
||||
|
||||
### Skip (explicitly excluded at launch)
|
||||
|
||||
- Product Hunt
|
||||
- Paid ads
|
||||
- Twitter/X
|
||||
- Webinars
|
||||
|
||||
---
|
||||
|
||||
## SEO & Content
|
||||
|
||||
### Topic Cluster Structure
|
||||
|
||||
```
|
||||
Hub: /padel-business/
|
||||
├── costs, market, location, business plan
|
||||
Hub: /rechner/ (or /calculator/)
|
||||
├── cost, ROI, financing calculators
|
||||
Hub: /markt/ (or /market/)
|
||||
├── /markt/berlin, /markt/muenchen, etc.
|
||||
```
|
||||
|
||||
### Priority Articles (write in this order)
|
||||
|
||||
| # | Title | Phase Served | State |
|
||||
|---|-------|--------------|-------|
|
||||
| 1 | "Is Padel Still a Good Investment in 2026? The Data Says..." | Passive | [ ] |
|
||||
| 2 | "How Much Does It Cost to Open a Padel Hall in Germany?" | Active | [ ] |
|
||||
| 3 | "What Banks Want to See in a Padel Business Plan" | Deciding | [ ] |
|
||||
| 4 | "State of Padel Q1 2026" (market report, email-gated) | Passive + PR | [ ] |
|
||||
| 5+ | Programmatic city pages (Berlin, Munich, Hamburg...) | Active | [ ] |
|
||||
|
||||
### SEO Targets
|
||||
|
||||
- "padel court business plan" / "padel halle business plan"
|
||||
- "padel hall ROI calculator" / "padel rechner"
|
||||
- "how to open padel hall" / "padel halle eröffnen"
|
||||
- "padel court cost Germany" / "padel halle kosten"
|
||||
- City variants: "padel [city]" patterns
|
||||
|
||||
### Programmatic SEO
|
||||
|
||||
City articles via CMS template engine (see `docs/CMS.md`). Template → CSV → generate → serve. `[scenario:slug:section]` markers embed planner output. Stagger via `articles_per_day`.
|
||||
|
||||
---
|
||||
|
||||
## Product-Led Growth
|
||||
|
||||
### Free Tool Flywheel (Finanzfluss / Sportstättenrechner model)
|
||||
|
||||
Proven by Sportstättenrechner: 18,400 unique users/month, 492 leads/month forwarded to paying suppliers, revenue ~€500K–750K/yr. We replicate padel-specific + add automated self-serve marketplace layer.
|
||||
|
||||
**Free tools to build (traffic generators):**
|
||||
|
||||
| Tool | URL | State |
|
||||
|------|-----|-------|
|
||||
| Padel ROI Calculator | /rechner or /calculator | [~] Exists, gated |
|
||||
| Padel Market Map | /map or /courts | [ ] Planned |
|
||||
| Location Scorer | /score | [ ] Future |
|
||||
| Market Report PDF | /reports/q1-2026 | [ ] Planned |
|
||||
| Unit Economics Benchmarks | /benchmarks | [ ] Future |
|
||||
|
||||
**Critical first step:** Ungate the calculator — no signup required, shareable URL, email gate after results. #1 RICE item (score 1,350).
|
||||
|
||||
### Email Capture Gate
|
||||
|
||||
After calculator results: prompt for email to save/share scenario. Every planner user = email lead.
|
||||
|
||||
---
|
||||
|
||||
## Supplier Acquisition (Side B)
|
||||
|
||||
### Founding Member Deals (launch goal)
|
||||
|
||||
- Steep discount in exchange for testimonials / social proof
|
||||
- Target: 2–3 deals in first 30 days
|
||||
- Manual outreach, 30–50 contacts per market
|
||||
- Script: "Free leads for 3 months, just respond within 48hr. After month 1, would you pay €199/mo for continued access?" (Infiltrator pretotype)
|
||||
|
||||
### Directory Tiers
|
||||
|
||||
| Tier | Price | Includes | State |
|
||||
|------|-------|----------|-------|
|
||||
| Basic | Free | Listing, no leads | [ ] |
|
||||
| Growth | €149/mo | Listing + 30 credits/mo + basic analytics | [ ] |
|
||||
| Pro | €399/mo | Listing + 100 credits/mo + full analytics | [ ] |
|
||||
|
||||
### Upsell Stack (RemoteOK playbook)
|
||||
|
||||
Pre-select recommended bundle (logo + highlight + verified + lead feed = ~€316/mo). Suppliers actively uncheck what they don't want. When Pieter Levels added upsells on RemoteOK, avg price jumped from $310 → $484 overnight.
|
||||
|
||||
| Upsell | Price | Claimed lift | State |
|
||||
|--------|-------|--------------|-------|
|
||||
| Company logo | €29/mo | +40% clicks | [ ] |
|
||||
| Highlight listing | €39/mo | +65% views | [ ] |
|
||||
| Verified badge | €49/mo | +55% inquiries | [ ] |
|
||||
| Custom brand color | €59/mo | +80% recognition | [ ] |
|
||||
| Lead feed access | €199/mo | Direct contact | [ ] |
|
||||
| Newsletter feature | €99/mo | +120 impressions/wk | [ ] |
|
||||
| Sticky top 1 week | €79 | 2× views | [ ] |
|
||||
| Sticky top 1 month | €199 | 6× views | [ ] |
|
||||
|
||||
### Lead Marketplace (credit system)
|
||||
|
||||
Inspired by Bark.com. Planner users' specs become anonymized briefs in a feed:
|
||||
> "Indoor padel center, 6 courts, Lower Saxony, €400K–600K budget, Q3 2026"
|
||||
|
||||
Suppliers self-select which leads to unlock with credits. Lead cost scales by project value.
|
||||
|
||||
**Heat scoring:**
|
||||
|
||||
| Heat | Credits | Signals |
|
||||
|------|---------|---------|
|
||||
| Hot | 30–40 | Location secured + financing + <6mo timeline + solo decision |
|
||||
| Warm | 15–25 | Shortlisted + seeking financing + 6–12mo + partners |
|
||||
| Cool | 5–10 | Still searching + not started + 12+mo + committee |
|
||||
|
||||
**Credit packs:**
|
||||
|
||||
| Pack | Price | Per credit |
|
||||
|------|-------|-----------|
|
||||
| 25 credits | €99 | €3.96 |
|
||||
| 50 credits | €179 | €3.58 |
|
||||
| 100 credits | €329 | €3.29 |
|
||||
| 250 credits | €749 | €3.00 |
|
||||
|
||||
---
|
||||
|
||||
## Revenue Streams
|
||||
|
||||
### Core (now)
|
||||
|
||||
| Stream | Model | State |
|
||||
|--------|-------|-------|
|
||||
| Lead credits (Side B) | Suppliers buy credits to unlock leads | [ ] Not live |
|
||||
| Directory subscriptions (Side B) | Growth €149/mo, Pro €399/mo | [ ] Not live |
|
||||
| Directory upsells (Side B) | Logo, highlight, verified, sticky | [ ] Not live |
|
||||
| Business Plan PDF (Side A) | €99 one-time | [ ] CTA exists, no product |
|
||||
|
||||
### Near-term (Phase 2–3)
|
||||
|
||||
| Stream | Model | State |
|
||||
|--------|-------|-------|
|
||||
| Business Plan Pro (Side A) | €39/mo subscription | [ ] Planned |
|
||||
| Market Intelligence Explorer | €79/mo | [ ] Phase 2 |
|
||||
| Market Intelligence Pro | €149/mo | [ ] Phase 2 |
|
||||
| Operational Analytics | €49–99/mo (operating venues) | [ ] Phase 3 |
|
||||
|
||||
### High-ticket (Phase 4+)
|
||||
|
||||
| Stream | Model | State |
|
||||
|--------|-------|-------|
|
||||
| Site Selection Reports | €499–999 one-time | [ ] Future |
|
||||
| Padel Hall Accelerator | €999 (report + call + introductions) | [ ] Future |
|
||||
| Industry Reports | €299–499 quarterly | [ ] Future |
|
||||
| Enterprise / API | Custom pricing | [ ] Future |
|
||||
|
||||
### Affiliate & Partnerships
|
||||
|
||||
| Stream | Model | State |
|
||||
|--------|-------|-------|
|
||||
| Equipment supplier affiliates | €500–1,000/lead or 5% of sale | [ ] Future |
|
||||
| "Wirecutter for padel" | SEO affiliate site: racket reviews, gear guides, €1–3K/mo passive | [ ] Future |
|
||||
| Franchise partnerships | Market data or qualified leads for franchise brands | [ ] Future |
|
||||
| Newsletter sponsorships | "The Padel Business Report" — €200–1,000/wk at 5K+ subs | [ ] Future |
|
||||
| API / data licensing | Raw data feeds to hedge funds, analysts, franchise operators | [ ] Future |
|
||||
|
||||
---
|
||||
|
||||
## Email & Nurture
|
||||
|
||||
| Step | Description | State |
|
||||
|------|-------------|-------|
|
||||
| Capture | Email gate on planner results | [ ] Not live |
|
||||
| Welcome sequence | Introduce platform, case studies, articles | [ ] Not started |
|
||||
| Lead nurture (Side A) | 5–7 email sequence for aspiring owners | [ ] Not started |
|
||||
| Supplier nurture (Side B) | Separate sequence for suppliers | [ ] Not started |
|
||||
|
||||
---
|
||||
|
||||
## PR & Partnerships
|
||||
|
||||
| Opportunity | Approach | State |
|
||||
|-------------|----------|-------|
|
||||
| "State of Padel Q1 2026" report | Write with limited data, gate behind email, post LinkedIn, email 20 industry contacts. Target: 200+ downloads, 5+ shares, 1+ media citation | [ ] Planned |
|
||||
| Padel podcasts | Guest spots, position as data/planning expert | [ ] Month 2+ |
|
||||
| National associations (DTB etc.) | Co-distribution, credibility | [ ] Month 2+ |
|
||||
| Sports business press | Angle: "padel boom + nobody has the data" | [ ] Month 2+ |
|
||||
| Lenders as distribution | Banks recommend Padelnomics plans → massive trust signal + built-in pipeline | [ ] Future |
|
||||
|
||||
---
|
||||
|
||||
## Pretotypes (validate before building)
|
||||
|
||||
| Idea | Test Method | Success Metric | State |
|
||||
|------|------------|----------------|-------|
|
||||
| Business Plan PDF export | Fake door: button → "launching soon + email capture" | 10%+ click rate, 30%+ leave email | [ ] |
|
||||
| Location Scorer | Mechanical Turk: landing page → manual PDF delivery within 24hr | 20+ submissions/wk, 3+ ask "how much for more detail?" | [ ] |
|
||||
| Operator Benchmarking | One-night stand: offer 5 venue owners free competitive analysis | 3/5 say yes AND ask for next update unprompted | [ ] Future |
|
||||
| Builder Subscriptions | Infiltrator: free leads for 3mo → ask if they'd pay €199/mo | 3+ builders want to continue AND will pay | [~] Doing with founding members |
|
||||
| Market Reports | Pinocchio: write Q1 2026 report with limited data, gate + share widely | 200+ downloads, 5+ shares, 1 media citation | [ ] |
|
||||
|
||||
---
|
||||
|
||||
## Geographic Expansion
|
||||
|
||||
**Current:** Germany + English (USA, UK).
|
||||
|
||||
**Whitespace (nobody has replicated Sportstättenrechner model in):**
|
||||
France, Italy, Netherlands, Sweden, Belgium, Austria, Portugal, UAE/Middle East, Mexico/Latin America, UK (properly).
|
||||
|
||||
First-mover in each captures the entire search funnel for "how to open a padel hall in [country]."
|
||||
|
||||
**Roadmap:** DACH → Western Europe → Global. ~Month 12–24.
|
||||
|
||||
---
|
||||
|
||||
## Timelines
|
||||
|
||||
> Assumes ~half a day per feature, 20–30 hrs/week. Big chunks are already built: planner (HTMX-refactored), auth, CMS + 80 SEO articles, i18n (EN+DE), supplier directory scaffold, 9-step quote wizard, Playtomic extractor + DuckDB pipeline, market data endpoint, Paddle billing setup, Resend + waitlist mode. Timelines reflect remaining work only.
|
||||
|
||||
### What's already done (confirmed by code audit 2026-02-22)
|
||||
|
||||
Most "Week 1" items were already shipped. The actual state:
|
||||
- ✅ Planner fully open — no login gate, never was one
|
||||
- ✅ Supplier directory live — public, no waitlist gate
|
||||
- ✅ Business Plan PDF — full WeasyPrint pipeline, not just a CTA
|
||||
- ✅ Paddle billing — 18 products, webhooks, checkout, subscription lifecycle fully wired
|
||||
- ✅ Lead admin view — full list/detail/status/manual-forward management
|
||||
- ✅ Supplier dashboard — 4 tabs, credit-based unlock, listing editor, boosts
|
||||
- ✅ Credit system — balance, ledger, atomic unlock, monthly refill
|
||||
- ✅ Quote wizard — 9-step, heat scoring, email verification
|
||||
|
||||
### Go-Live (this week, config not code)
|
||||
- [ ] Paddle: switch from sandbox to production (env vars + `setup_paddle`)
|
||||
- [ ] Publish SEO articles on prod (`seed_content --generate` or admin panel)
|
||||
- [ ] Wipe 5 test suppliers (`example.com` entries, not real data)
|
||||
- [ ] Verify Resend production API key — test a real email
|
||||
- [ ] Submit sitemap to Google Search Console
|
||||
|
||||
### Week 1–2 — First Revenue Signal
|
||||
- [ ] Email nurture sequence (3-email drip for planner users — Resend infra exists, write content + schedule)
|
||||
- [ ] 30–50 supplier outreach emails
|
||||
- [ ] 2–3 founding member deals (free leads for 3 months)
|
||||
- [ ] "State of Padel Q1 2026" report written + published
|
||||
- [ ] First 3 priority SEO articles
|
||||
- [ ] LinkedIn: first 5 posts
|
||||
|
||||
### Week 2–4 — Market Map
|
||||
- [ ] Market map UI (geographic viz over DuckDB city data — only tech that doesn't exist yet)
|
||||
- [ ] Follow up on founding member outreach
|
||||
- [ ] More SEO articles
|
||||
|
||||
### Month 2 — Market Intelligence MVP
|
||||
> Data pipeline already running (Playtomic + SQLMesh + DuckDB). Mostly a UI build.
|
||||
- [ ] Market Intelligence Dashboard (city analytics, occupancy estimates, demand map)
|
||||
- [ ] Explorer tier paywall (€79/mo)
|
||||
- [ ] Target: €1,500–3,000/mo
|
||||
|
||||
### Month 3–6 — Pro Tier + Operational Analytics
|
||||
- [ ] Market Intelligence Pro (€149/mo, hall-level data, competitor tracking)
|
||||
- [ ] Operational analytics for running venues (€49–99/mo)
|
||||
- [ ] Location Scorer MVP (mechanical turk initially)
|
||||
- [ ] Target: €3,000–8,000/mo
|
||||
|
||||
### Month 6–12 — Scale
|
||||
- [ ] Site Selection Reports (high-ticket)
|
||||
- [ ] "State of Padel" quarterly reports (gated, press distribution)
|
||||
- [ ] Enterprise tier + API
|
||||
- [ ] Pan-European expansion (FR, IT, NL, SE — cities already seeded)
|
||||
- [ ] Target: €8,000–20,000/mo
|
||||
|
||||
### Revenue milestones
|
||||
|
||||
| Milestone | Target MRR | Realistic timeline |
|
||||
|-----------|-----------|-------------------|
|
||||
| First paying customer | €99–499 | Week 1–2 (post go-live config) |
|
||||
| €1K MRR | €1,000 | Month 1 |
|
||||
| €3K MRR | €3,000 | Month 2 |
|
||||
| €8K MRR | €8,000 | Month 4–6 |
|
||||
| €20K MRR | €20,000 | Month 8–12 |
|
||||
| €35K+ MRR | €35,000+ | Month 12–18 |
|
||||
|
||||
**Path to €3K MRR:**
|
||||
- Builder lead credits: €150/lead avg × 10 leads/mo = €1,500/mo
|
||||
- Builder subscriptions: €199/mo avg × 3 builders = €597/mo
|
||||
- Business plan export: €49/mo avg × 15 subs = €735/mo
|
||||
- Total: ~€2,832/mo
|
||||
|
||||
---
|
||||
|
||||
## Source Files
|
||||
|
||||
> See `PROJECT.md` at repo root for open tasks, in-progress work, and done items.
|
||||
|
||||
These are the raw strategy files this doc consolidates. Treat this doc as the source of truth going forward.
|
||||
|
||||
- `research/PLAN.md` — Phase-by-phase execution plan with product specs & pricing
|
||||
- `research/padelnomics-master-strategy.md` — 22-section strategic reference
|
||||
- `research/padelnomics-strategy-stack.md` — 7 frameworks (Lean Canvas, Blue Ocean, Wardley, etc.)
|
||||
- `research/padelnomics-jtbd-analysis.md` — Customer segments and struggling moments
|
||||
- `research/padelnomics_lead_platform_discussion_summary.md` — Lead platform design + Sportstättenrechner analysis
|
||||
- `research/padel-daas-vision-plan.md` — DaaS thesis, "Bloomberg for padel" vision, data moat strategy, name candidates
|
||||
- `memory/launch-strategy.md` — Pre-launch sequencing and 30-day milestones
|
||||
@@ -1,5 +1,7 @@
|
||||
# Padelnomics — Execution Plan
|
||||
|
||||
> ⚠️ **Superseded.** This doc mixed technical and business/marketing tasks in sequenced phases, which imposed artificial dependencies. Use `PROJECT.md` (task tracker) and `docs/MARKETING.md` (marketing strategy) instead. Kept here as historical context.
|
||||
|
||||
**Date:** 2026-02-16
|
||||
**Model:** Zillow for padel — open consumer tool, monetize both sides
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Padel Business Intelligence — Vision & Plan
|
||||
|
||||
> ⚠️ **Superseded.** Content consolidated into `docs/MARKETING.md` (strategy + positioning + timelines). Kept here as historical context and for the naming candidates section.
|
||||
|
||||
## The One-Liner
|
||||
|
||||
**"Bloomberg for padel hall operators."** We sell unfair advantages to people making six-figure facility investment decisions — using data nobody else is aggregating.
|
||||
Reference in New Issue
Block a user