diff --git a/web/src/padelnomics/content/templates/city-cost-de.md.jinja b/web/src/padelnomics/content/templates/city-cost-de.md.jinja index 6fa44f8..682dbf4 100644 --- a/web/src/padelnomics/content/templates/city-cost-de.md.jinja +++ b/web/src/padelnomics/content/templates/city-cost-de.md.jinja @@ -5,43 +5,45 @@ content_type: calculator data_table: serving.pseo_city_costs_de natural_key: city_slug languages: [de, en] -url_pattern: "/markets/{{ country_name_en | lower | slugify }}/{{ city_slug }}" -title_pattern: "Padel in {{ city_name }} — Market Analysis & Costs" -meta_description_pattern: "How much does it cost to build a padel center in {{ city_name }}? {{ padel_venue_count }} venues, pricing data & financial model." +url_pattern: "/markets/{{ country_slug }}/{{ city_slug }}" +title_pattern: "Padel in {{ city_name }} — Investment Costs & Market Analysis {{ 'now' | datetimeformat('%Y') }}" +meta_description_pattern: "Is {{ city_name }} worth building a padel center in? {{ padel_venue_count }} venues, market score {{ market_score | round(1) }}/100, and a full financial model. Updated {{ 'now' | datetimeformat('%B %Y') }}." schema_type: [Article, FAQPage] priority_column: population --- -# Padel in {{ city_name }} +# Is {{ city_name }} Worth Building a Padel Center In? -{{ city_name }} ({{ country_name_en }}) is home to **{{ padel_venue_count }}** padel venues, serving a population of {{ population | int | default(0) }} residents. That gives the city a venue density of {{ venues_per_100k | round(1) }} venues per 100,000 people. +
+
+
Padel Venues
+
{{ padel_venue_count }}
+
+
+
Market Score
+
{{ market_score | round(1) }}/100
+
+
+
Peak Rate
+
{% if median_peak_rate %}{{ median_peak_rate | round(0) | int }}{% else %}—{% endif %}{% if median_peak_rate %}{{ price_currency }}/hr{% endif %}
+
+
+
Population
+
{% if population >= 1000000 %}{{ (population / 1000000) | round(1) }}M{% else %}{{ (population / 1000) | round(0) | int }}K{% endif %}
+
+
-## Market Overview +{{ city_name }} has a **market score of {{ market_score | round(1) }}/100** — placing it{% if market_score >= 70 %} among the strongest padel markets in {{ country_name_en }}{% elif market_score >= 45 %} in the mid-tier of {{ country_name_en }}'s padel markets{% else %} in an early-stage padel market with room for growth{% endif %}. The city currently has **{{ padel_venue_count }} padel venues** serving a population of {% if population >= 1000000 %}{{ (population / 1000000) | round(1) }}M{% else %}{{ (population / 1000) | round(0) | int }}K{% endif %} residents — a density of {{ venues_per_100k | round(1) }} venues per 100,000 people. -The padel market in {{ city_name }} shows a market score of **{{ market_score | round(1) }}** based on our analysis of venue density, pricing, and occupancy data. +The question investors actually need answered is: given current pricing, occupancy, and build costs, what does the return look like? The financial model below uses real {{ city_name }} market data to give you that answer. -| Metric | Value | -|--------|-------| -| Venues | {{ padel_venue_count }} | -| Venues per 100k | {{ venues_per_100k | round(1) }} | -| Market Score | {{ market_score | round(1) }} | -| Data Confidence | {{ data_confidence }} | - -## Pricing - -Court rental rates in {{ city_name }}: - -- **Peak hours**: {{ median_peak_rate | round(0) | int }} per hour -- **Off-peak hours**: {{ median_offpeak_rate | round(0) | int }} per hour -- **Average hourly rate**: {{ median_hourly_rate | round(0) | int }} per hour - -## What Would It Cost to Build? +## What Does a Padel Investment Cost in {{ city_name }}? Based on current market data for {{ city_name }}, here is what a padel center investment looks like: [scenario:{{ scenario_slug }}:capex] -## Revenue Potential +## Revenue Potential in {{ city_name }} [scenario:{{ scenario_slug }}:operating] @@ -49,16 +51,51 @@ Based on current market data for {{ city_name }}, here is what a padel center in [scenario:{{ scenario_slug }}:returns] +
+ Adjust these numbers for your own plan → + Model it in the Planner +
+ +## {{ city_name }} Padel Pricing + +Court rental rates in {{ city_name }} based on Playtomic availability data: + +| Rate Type | Price | +|-----------|-------| +| Peak hours | {% if median_peak_rate %}{{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr{% else %}No data{% endif %} | +| Off-peak hours | {% if median_offpeak_rate %}{{ median_offpeak_rate | round(0) | int }} {{ price_currency }}/hr{% else %}No data{% endif %} | +| Average hourly rate | {% if median_hourly_rate %}{{ median_hourly_rate | round(0) | int }} {{ price_currency }}/hr{% else %}No data{% endif %} | +| Estimated occupancy | {% if median_occupancy_rate %}{{ (median_occupancy_rate * 100) | round(0) | int }}%{% else %}No data{% endif %} | + +## {{ city_name }} Market Overview + +| Metric | Value | +|--------|-------| +| Venues | {{ padel_venue_count }} | +| Venues per 100K residents | {{ venues_per_100k | round(1) }} | +| Market Score | {{ market_score | round(1) }}/100 | +| Data Confidence | {{ (data_confidence * 100) | round(0) | int }}% | + ## FAQ +**Is {{ city_name }} a good location for a padel center?** +{{ city_name }} scores **{{ market_score | round(1) }}/100** on our market index, which accounts for population size, existing venue density, and data completeness. {% if market_score >= 70 %}A score above 70 indicates a strong market: high population, growing venue count, and solid pricing data. {% elif market_score >= 45 %}A mid-range score means decent fundamentals but a more competitive or data-limited market. {% else %}A lower score reflects either a smaller city, sparse venue data, or an early-stage market — which can also mean lower competition and first-mover advantage. {% endif %}Use the planner above to model your specific assumptions. + +**What is the return on investment for a padel center in {{ city_name }}?** +ROI depends on your build cost, court count, pricing, and occupancy assumptions. The financial model above uses real {{ city_name }} market data as defaults — peak rate {% if median_peak_rate %}{{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr{% else %}estimated from regional benchmarks{% endif %}, estimated occupancy {% if median_occupancy_rate %}{{ (median_occupancy_rate * 100) | round(0) | int }}%{% else %}based on country averages{% endif %}. Adjust the inputs in the planner to see how your scenario compares. + **How much does it cost to build a padel center in {{ city_name }}?** -Based on our financial model, building a padel center in {{ city_name }} with typical court configurations requires a total investment that depends on venue type (indoor vs outdoor), land costs, and construction standards in {{ country_name_en }}. +Total investment depends on venue type (indoor vs outdoor), land costs, and local construction standards in {{ country_name_en }}. The capex model above breaks down the key cost drivers for a typical {{ city_name }} build based on current market assumptions. **How many padel courts are there in {{ city_name }}?** -{{ city_name }} currently has {{ padel_venue_count }} padel venues. With a population of {{ population | int | default(0) }}, this translates to {{ venues_per_100k | round(1) }} venues per 100,000 residents. - -**Is {{ city_name }} a good location for a padel center?** -{{ city_name }} has a market score of {{ market_score | round(1) }} based on our analysis. Factors include current venue density, pricing levels, and estimated occupancy rates. +{{ city_name }} has **{{ padel_venue_count }} padel venues**. With a population of {% if population >= 1000000 %}{{ (population / 1000000) | round(1) }}M{% else %}{{ (population / 1000) | round(0) | int }}K{% endif %}, that translates to **{{ venues_per_100k | round(1) }} venues per 100,000 residents**. **What are typical padel court rental prices in {{ city_name }}?** -Peak hour rates average around {{ median_peak_rate | round(0) | int }} per hour, while off-peak rates are approximately {{ median_offpeak_rate | round(0) | int }} per hour. +{% if median_peak_rate %}Peak hour rates average around **{{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr**, while off-peak rates are approximately **{{ median_offpeak_rate | round(0) | int }} {{ price_currency }}/hr**. These figures come from live Playtomic booking data.{% else %}Pricing data from Playtomic is not yet available for {{ city_name }}. The financial model uses {{ country_name_en }}-wide benchmarks as a proxy.{% endif %} + +**How does {{ city_name }} compare to other {{ country_name_en }} cities?** +{{ city_name }}'s market score of {{ market_score | round(1) }}/100 reflects its ranking among tracked {{ country_name_en }} cities. See the [{{ country_name_en }} market overview](/markets/{{ country_slug }}) for a full comparison across cities. + +--- + +*More {{ country_name_en }} padel markets: [{{ country_name_en }} overview](/markets/{{ country_slug }})* diff --git a/web/src/padelnomics/content/templates/city-pricing.md.jinja b/web/src/padelnomics/content/templates/city-pricing.md.jinja new file mode 100644 index 0000000..de65bf3 --- /dev/null +++ b/web/src/padelnomics/content/templates/city-pricing.md.jinja @@ -0,0 +1,80 @@ +--- +name: "City Padel Court Prices" +slug: city-pricing +content_type: editorial +data_table: serving.pseo_city_pricing +natural_key: city_slug +languages: [en, de] +url_pattern: "/markets/{{ country_slug }}/{{ city_slug }}/court-prices" +title_pattern: "Padel Court Prices in {{ city_name }} — {{ 'now' | datetimeformat('%Y') }} Rates" +meta_description_pattern: "Current padel court rental prices in {{ city_name }}: peak {{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr, off-peak {{ median_offpeak_rate | round(0) | int }} {{ price_currency }}/hr. Data from {{ venue_count }} venues." +schema_type: [Article, FAQPage] +priority_column: venue_count +--- + +# Padel Court Prices in {{ city_name }} + +
+
+
Peak Rate
+
{{ median_peak_rate | round(0) | int }}{{ price_currency }}/hr
+
+
+
Off-Peak Rate
+
{{ median_offpeak_rate | round(0) | int }}{{ price_currency }}/hr
+
+
+
Price Range
+
{{ hourly_rate_p25 | round(0) | int }}–{{ hourly_rate_p75 | round(0) | int }}{{ price_currency }}
+
+
+
Avg Occupancy
+
{{ (median_occupancy_rate * 100) | round(0) | int }}%
+
+
+ +Padel court prices in {{ city_name }} range from **{{ hourly_rate_p25 | round(0) | int }} to {{ hourly_rate_p75 | round(0) | int }} {{ price_currency }}/hr**, with a median peak rate of **{{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr**. This data is sourced from **{{ venue_count }} venues** actively listed on Playtomic. + +## Pricing Breakdown + +| Rate Type | Median | Notes | +|-----------|--------|-------| +| Peak hours | {{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr | Weekday evenings, weekends | +| Off-peak hours | {{ median_offpeak_rate | round(0) | int }} {{ price_currency }}/hr | Weekday mornings/afternoons | +| Average hourly | {{ median_hourly_rate | round(0) | int }} {{ price_currency }}/hr | Blended across all slots | +| Price range (P25–P75) | {{ hourly_rate_p25 | round(0) | int }}–{{ hourly_rate_p75 | round(0) | int }} {{ price_currency }}/hr | Middle 50% of venues | +| Average occupancy | {{ (median_occupancy_rate * 100) | round(0) | int }}% | Across observed slots | + +*Based on {{ venue_count }} venues with at least 2 days of booking data in the last 30 days.* + +## How Does {{ city_name }} Compare? + +{{ city_name }} has {{ padel_venue_count }} padel venues for a population of {% if population >= 1000000 %}{{ (population / 1000000) | round(1) }}M{% else %}{{ (population / 1000) | round(0) | int }}K{% endif %} ({{ venues_per_100k | round(1) }} venues per 100K residents). {% if market_score >= 65 %}With a market score of {{ market_score | round(1) }}/100, {{ city_name }} is one of the stronger padel markets in {{ country_name_en }} — higher occupancy and pricing typically follow dense, competitive markets. {% elif market_score >= 40 %}A market score of {{ market_score | round(1) }}/100 reflects a mid-tier market: enough supply to have competitive pricing, but room for new venues to grow. {% else %}A market score of {{ market_score | round(1) }}/100 indicates an early-stage market where pricing and occupancy benchmarks may shift as the sport grows. {% endif %} + +See the [{{ country_name_en }} market overview](/markets/{{ country_slug }}) to compare {{ city_name }} against other cities. + +## What Drives Padel Pricing? + +**Peak vs off-peak:** The {{ ((median_peak_rate - median_offpeak_rate) / median_offpeak_rate * 100) | round(0) | int }}% premium between peak and off-peak slots in {{ city_name }} reflects demand concentration. Booking a court on a weekday morning is significantly cheaper than Friday evening. + +**Occupancy effect:** At {{ (median_occupancy_rate * 100) | round(0) | int }}% average occupancy, {{ city_name }} venues{% if median_occupancy_rate >= 0.6 %} run near capacity during peak hours — operators have pricing power to hold or raise rates{% elif median_occupancy_rate >= 0.4 %} have moderate utilisation, giving players flexibility to find slots at the lower end of the price range{% else %} have capacity to fill, which can mean better deals for players booking flexible slots{% endif %}. + +
+ Planning a padel center in {{ city_name }}? Use these rates as inputs → + Open the Planner +
+ +## FAQ + +**How much does it cost to rent a padel court in {{ city_name }}?** +The median padel court rental rate in {{ city_name }} is **{{ median_hourly_rate | round(0) | int }} {{ price_currency }}/hr** overall — **{{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr** at peak times and **{{ median_offpeak_rate | round(0) | int }} {{ price_currency }}/hr** off-peak. The cheapest venues charge from {{ hourly_rate_p25 | round(0) | int }} {{ price_currency }}/hr; premium venues reach {{ hourly_rate_p75 | round(0) | int }} {{ price_currency }}/hr or more. Data comes from {{ venue_count }} active Playtomic venues. + +**When are padel courts cheapest in {{ city_name }}?** +Off-peak slots — typically weekday mornings and early afternoons — are priced at around **{{ median_offpeak_rate | round(0) | int }} {{ price_currency }}/hr**, compared to **{{ median_peak_rate | round(0) | int }} {{ price_currency }}/hr** during peak hours. Booking in advance for mid-week mornings gives you the best rates in {{ city_name }}. + +**How many padel venues are there in {{ city_name }}?** +{{ city_name }} has **{{ padel_venue_count }} padel venues** in total. This pricing analysis covers **{{ venue_count }} venues** with sufficient Playtomic booking data (at least 2 days of availability snapshots in the last 30 days). + +--- + +*See also: [{{ city_name }} investment analysis](/markets/{{ country_slug }}/{{ city_slug }}) · [{{ country_name_en }} market overview](/markets/{{ country_slug }})* diff --git a/web/src/padelnomics/content/templates/country-overview.md.jinja b/web/src/padelnomics/content/templates/country-overview.md.jinja new file mode 100644 index 0000000..fb3afac --- /dev/null +++ b/web/src/padelnomics/content/templates/country-overview.md.jinja @@ -0,0 +1,81 @@ +--- +name: "Country Padel Overview" +slug: country-overview +content_type: editorial +data_table: serving.pseo_country_overview +natural_key: country_slug +languages: [en, de] +url_pattern: "/markets/{{ country_slug }}" +title_pattern: "Padel in {{ country_name_en }} — Market Overview {{ 'now' | datetimeformat('%Y') }}" +meta_description_pattern: "{{ total_venues }} padel venues across {{ city_count }} cities in {{ country_name_en }}. Market scores, pricing data, and investment analysis for each city." +schema_type: [Article] +priority_column: total_venues +--- + +# Padel in {{ country_name_en }} — Market Overview + +
+
+
Total Venues
+
{{ total_venues }}
+
+
+
Cities Tracked
+
{{ city_count }}
+
+
+
Avg Market Score
+
{{ avg_market_score }}/100
+
+
+
Median Peak Rate
+
{% if median_peak_rate %}{{ median_peak_rate | int }}{% else %}—{% endif %}{% if median_peak_rate and price_currency %}{{ price_currency }}/hr{% endif %}
+
+
+ +{{ country_name_en }} has **{{ total_venues }} padel venues** tracked across **{{ city_count }} cities**. The average market score across tracked cities is **{{ avg_market_score }}/100**{% if avg_market_score >= 65 %} — a strong market with widespread venue penetration and solid pricing data{% elif avg_market_score >= 40 %} — a growing market with healthy city coverage{% else %} — an emerging market where early entrants can still capture prime locations{% endif %}. + +## Top Cities in {{ country_name_en }} + +The cities below are ranked by market score — a composite of population size, venue density, and data quality. + +| City | Market Analysis | +|------|----------------| +{% for i in range(top_city_names | length) %}| [{{ top_city_names[i] }}](/markets/{{ country_slug }}/{{ top_city_slugs[i] }}) | [View investment analysis →](/markets/{{ country_slug }}/{{ top_city_slugs[i] }}) | +{% endfor %} + +## Pricing Overview + +{% if median_peak_rate %} +Court rental rates across {{ country_name_en }} cities (median from Playtomic live data): + +| Rate Type | Median | +|-----------|--------| +| Peak hours | {{ median_peak_rate | int }} {{ price_currency }}/hr | +| Off-peak hours | {% if median_offpeak_rate %}{{ median_offpeak_rate | int }} {{ price_currency }}/hr{% else %}No data{% endif %} | +| Average hourly | {% if median_hourly_rate %}{{ median_hourly_rate | int }} {{ price_currency }}/hr{% else %}No data{% endif %} | + +Prices vary significantly by city — larger cities with higher demand command premium rates. See individual city pages for city-specific benchmarks. +{% else %} +Detailed pricing data from Playtomic is not yet available for {{ country_name_en }} cities in aggregate. Visit individual city pages for the latest data where available. +{% endif %} + +## Build Your Business Plan for {{ country_name_en }} + +Every city has a different cost structure, competitive landscape, and customer base. The Padelnomics financial planner lets you model a padel center with real local market data as defaults — then adjust every assumption to match your specific site. + +
+ Build your business plan for a {{ country_name_en }} padel center → + Open the Planner +
+ +## FAQ + +**How many padel courts are there in {{ country_name_en }}?** +We currently track **{{ total_venues }} padel venues** across **{{ city_count }} cities** in {{ country_name_en }}. This covers venues listed on Playtomic and venues identified through our Overpass/OpenStreetMap data source. The actual total may be higher as independent clubs not listed on booking platforms are not always captured. + +**Which city in {{ country_name_en }} is best for a padel center?** +Our top-ranked city by market score is **{{ top_city_names[0] }}** (score: {{ top_city_market_score }}/100). Market score combines population size, existing venue density, and data quality — a high score indicates a large addressable market with validated pricing data. However, the best city for *you* depends on land availability, local competition, and your target customer profile. + +**What are typical padel court prices in {{ country_name_en }}?** +{% if median_peak_rate %}Based on live Playtomic data, median peak rates across {{ country_name_en }} cities are **{{ median_peak_rate | int }} {{ price_currency }}/hr** and off-peak rates are around **{% if median_offpeak_rate %}{{ median_offpeak_rate | int }}{% else %}—{% endif %} {{ price_currency }}/hr**. Individual cities vary — see each city's page for local benchmarks.{% else %}Pricing data is not yet available in aggregate for {{ country_name_en }}. Check individual city pages where Playtomic data is available.{% endif %}