Skip to content

Inventory vs Views Correlation Analysis

Date: 2026-01-14 Data Period: 2024-2025 Analyst: Claude Code


Executive Summary

This analysis examines the correlation between listing inventory and views across Aqar’s top 5 property categories, with district-level granularity. Key findings:

  1. Platform-wide correlation is weak (0.18) - adding more listings doesn’t proportionally increase views
  2. Optimal inventory range: 140K-160K active listings platform-wide for maximum views/listing
  3. Villa for Sale experiencing market-wide demand collapse (-30-40% YoY across all top districts)
  4. Rental categories showing growth - Apartment for Rent and Villa for Rent are expanding
  5. Geographic shift: Jeddah apartment sales growing while Riyadh declining

Part 1: Historical Correlation (2020-2025)

Listings vs Views Over Time

YearNew ListingsTotal ViewsAvg Views/ListingActive Users
2020808,832672,973,495678.89N/A
20211,088,216714,033,854547.43N/A
20221,178,584622,827,389445.381,406,625
2023603,129438,941,972478.351,661,736
2024392,380437,583,087868.291,875,887
2025482,424421,725,270695.232,014,084

Key Observations

  1. Listings dropped 67% from 2022 peak (1.18M) to 2024 low (392K)
  2. Avg views/listing nearly doubled from 445 (2022) to 868 (2024)
  3. Active users grew 43% from 2022 to 2025 despite inventory decline
  4. 2023 regulatory changes caused the dramatic listing drop (REGA licensing enforcement)

Part 2: Platform-Wide Optimal Inventory

Correlation Analysis

MetricValue
Pearson Correlation (Listings ↔ Views)0.178 (Weak)
Avg Monthly Listings155,893
Avg Monthly Views35.8M

Optimal Inventory Buckets

Inventory RangeMonthsAvg Views/ListingEngagement/Listing
< 140K72316.6
140K-160K62758.96
160K-180K72269.58
180K+41818.81

Optimal Platform Inventory: 140,000 - 160,000 active listings

At 180K+ listings, views per listing drop by 34% compared to optimal range.


Part 3: Category-Level Analysis

Correlation by Category

CategoryDistrictsCorrelationAvg District ViewsInterpretation
Land for Sale3100.978237KLinear scaling
Villa for Rent890.960266KStrong demand
Apartment for Rent2800.9301.08MGrowth headroom
Villa for Sale2170.915677KMatched supply/demand
Apartment for Sale1730.661405KSaturated segments
CategoryPeak MonthPeak Views2024→2025 Trend
Apartment for RentAug 202418.5MGrowing (+21%)
Villa for SaleAug 20249.5MDeclining (-36%)
Land for SaleAug 20245.3MDeclining (-27%)
Apartment for SaleAug 20244.4MStable
Villa for RentAug 20241.7MGrowing (+12%)

Part 4: District-Level Analysis

Apartment for Rent - Top Districts by Total Views

RankCityDistrictTotal ViewsYoY %Trend
1الرياضالنرجس11.4M+9.7%Stable
2الرياضالملقا8.5M—7.7%Stable
3الرياضالعارض8.3M—5.8%Stable
4الرياضظهرة لبن8.2M+8.4%Stable
5الرياضالمونسية7.7M+4.3%Stable

Fastest Growing (Apartment for Rent):

  • الرياض - السليمانية: +53.2% YoY
  • الخبر - الحمرا: +34.8% YoY
  • الدمام - الشعلة: +28.8% YoY

Villa for Sale - Top Districts (DECLINING)

RankCityDistrictTotal ViewsYoY %Trend
1الرياضالنرجس7.2M—29.9%Declining
2الرياضالعارض5.6M—31.5%Declining
3الرياضالرمال5.6M—29.0%Declining
4الرياضالمهدية5.2M—39.4%Declining
5الرياضطويق4.3M—38.7%Declining

Critical Finding: Every top Villa for Sale district shows 29-40% YoY decline.

Land for Sale - Top Districts

RankCityDistrictTotal ViewsYoY %Trend
1الرياضبنبان4.0M—22.2%Declining
2الرياضالنرجس3.2M—51.4%Declining
3الرياضالشرق2.9M—30.9%Declining

Villa for Rent - Fastest Growing

DistrictTotal ViewsYoY %
الرياض - الجنادرية0.5M+100.6%
الرياض - مطار الملك خالد0.7M+61.3%
الدمام - الشعلة0.3M+52.0%

Part 5: Optimal Inventory by District

Marginal Views per Listing by Inventory Size

Category< 500500-1K1K-2K2K-5K5K+Optimal
Apt for Rent1,6061,4571,4831,246866< 2K
Villa for Sale1,3821,1888501,018705< 1K
Villa for Rent998775513609< 500
Apt for Sale871504499425171< 500
Land for Sale510520516577514Any
CategoryOptimal per DistrictRationale
Apartment for Rent1,000-2,000Diminishing returns above 2K
Villa for Sale500-1,000Sharp decline above 1K
Villa for Rent200-500Premium market, small inventory
Apartment for Sale300-500Saturated in many districts
Land for SaleAnyLinear returns (distribute evenly)

Part 6: Oversupplied vs Undersupplied Districts

Most Oversupplied (Reduce Inventory)

CategoryCityDistrictCurrentOptimalOversupply
Apt for Saleالرياضالجنادرية20912+1,643%
Apt for Saleالدمامالشاطئ الغربي13210+1,220%
Apt for Saleالرياضالمهدية79475+959%
Apt for Rentالدمامالسيف10713+720%

Most Undersupplied (Growth Opportunity)

CategoryCityDistrictCurrentOptimalGap
Apt for Rentابهادرة المنسك3873—49%
Apt for Rentجدةالفروسية3755—34%
Apt for Rentجدةالشاطئ4761—23%
Apt for Rentالدمامطيبة4457—23%

Part 7: Strategic Recommendations

Immediate Actions

  1. Reduce Villa for Sale inventory in Riyadh by 20-30% - market-wide demand decline
  2. Expand Apartment for Rent in growing districts:
    • السليمانية (+53% growth)
    • الحمرا in Khobar (+35% growth)
    • الشعلة in Dammam (+29% growth)
  3. Redistribute Land for Sale from النرجس (-51%) to more stable areas

Market Positioning

CategoryStrategyTarget Inventory
Apartment for RentExpand25K → 30K
Villa for SaleContract28K → 20K
Land for SaleRedistributeMaintain 28K, shift geography
Apartment for SaleShift to JeddahMaintain 32K
Villa for RentFocus premiumMaintain 5K

Key Metrics to Monitor

  1. Views per listing threshold: Maintain above 500 platform-wide
  2. Listings per active user ratio: Target 0.20-0.22
  3. District saturation: Alert when oversupply exceeds 200%

Appendix: SQL Queries Used

Platform Correlation Query

WITH
monthly_data AS (
SELECT
toYear (toDate (day_time)) AS YEAR,
toMonth (toDate (day_time)) AS MONTH,
COUNT(DISTINCT id) AS listings,
SUM(views) AS views
FROM
sadb_stats_listings_stats FINAL
WHERE
day_time > 0
AND _peerdb_is_deleted = 0
AND toYear (toDate (day_time)) >= 2024
AND toYear (toDate (day_time)) <= 2025
GROUP BY
YEAR,
MONTH
)
SELECT
ROUND(corr(listings, views), 4) AS correlation_listings_views,
ROUND(avg(listings), 0) AS avg_monthly_listings,
ROUND(avg(views), 0) AS avg_monthly_views
FROM
monthly_data

District-Level Category Analysis Query

SELECT
d.city_name,
d.district_name,
SUM(s.views) AS total_views_2024_2025,
SUM(
CASE
WHEN toYear (toDate (s.day_time)) = 2024 THEN s.views
ELSE 0
END
) AS views_2024,
SUM(
CASE
WHEN toYear (toDate (s.day_time)) = 2025 THEN s.views
ELSE 0
END
) AS views_2025,
ROUND(
(views_2025 - views_2024) / NULLIF(views_2024, 0) * 100,
1
) AS yoy_growth_pct
FROM
sadb_stats_listings_stats s FINAL
JOIN sadb_listings l FINAL ON s.id = l.id
JOIN sadb_districts d FINAL ON l.district_id = d.district_id
WHERE
s.day_time > 0
AND s._peerdb_is_deleted = 0
AND l._peerdb_is_deleted = 0
AND l.category = 1 -- Apartment for Rent
AND toYear (toDate (s.day_time)) >= 2024
GROUP BY
d.city_name,
d.district_name
ORDER BY
total_views_2024_2025 DESC

Optimal Inventory Bucket Query

WITH
district_stats AS (
SELECT
l.category,
l.district_id,
SUM(s.views) AS total_views,
COUNT(DISTINCT s.id) AS total_listings
FROM
sadb_stats_listings_stats s FINAL
JOIN sadb_listings l FINAL ON s.id = l.id
WHERE
toYear (toDate (s.day_time)) >= 2024
GROUP BY
l.category,
l.district_id
HAVING
total_listings >= 50
)
SELECT
c.name_en AS category,
CASE
WHEN total_listings < 500 THEN '< 500'
WHEN total_listings < 1000 THEN '500-1K'
WHEN total_listings < 2000 THEN '1K-2K'
ELSE '2K+'
END AS inventory_bucket,
COUNT(*) AS districts,
ROUND(SUM(total_views) / SUM(total_listings), 0) AS marginal_views_per_listing
FROM
district_stats
JOIN sadb_categories c ON category = c.category_id
GROUP BY
c.name_en,
inventory_bucket

Data Quality Notes

  • Data Period: 2024-01-01 to 2025-12-31
  • Filter Applied: _peerdb_is_deleted = 0 and FINAL modifier
  • Minimum Thresholds:
    • District analysis: ≥50 listings
    • Correlation analysis: ≥100 listings
  • Caveat: Pre-2024 data excluded due to regulatory changes affecting comparability