We compare how accurate the AI is against a simple rule-based approach, check that no numbers are invented and test the data itself. The tests are open and can be rerun. Last updated: 12 Oct 2026, 16:20 (Baku time).
Sample sizes are small (10–30 cases); results are indicative only.
27 queries in Azerbaijani (3 ambiguous, 2 misspelt or colloquial). Accuracy by field.
11 queries in English (same schema, same checks).
18 listing texts: 6 clean, 12 risky (including a hidden risk: “sənədlər sonra düzələcək”, documents to be sorted later).
On the site the two work together: any phrase the rule finds is always added to the AI's list, so known phrases are never missed.
Every number in 29 AI texts was extracted and looked up (±1%) in the JSON given to the model.
Not found: 1. Examples: az-xankendi → 355
English profiles: 29 texts, 747 numbers, 98.8% found in the JSON.
| Query (hard constraints) | Matching / returned | Result |
|---|---|---|
| Nərimanov + metro ≤800 m | 5 / 5 | ✓ passed |
| Yasamal + school ≤500 m | 5 / 5 | ✓ passed |
| Bakı + metro ≤500 m + kindergarten ≤600 m | 5 / 5 | ✓ passed |
| Binəqədi + park ≤400 m | 5 / 5 | ✓ passed |
| Bakı + ≤2000 AZN/m² | 5 / 5 | ✓ passed |
| Outside Baku + mountainous | 5 / 5 | ✓ passed |
| Coastal district | 5 / 5 | ✓ passed |
| Xətai + metro ≤1000 m + school ≤700 m | 5 / 5 | ✓ passed |
| Gəncə + school ≤800 m | 5 / 5 | ✓ passed |
| Nəsimi + metro ≤600 m + park ≤500 m | 4 / 4 | ✓ passed |
| Result | Check | Detail |
|---|---|---|
| ✓ | 75 districts/cities present | 75 |
| ✓ | All 12 Baku districts present | Nizami, Sabunçu, Xətai, Pirallahı, Suraxanı, Xəzər, Qaradağ, Yasamal, Səbail, Nərimanov, Nəsimi, Binəqədi |
| ✓ | Every area has a population (SSC) | all have one |
| ✓ | Sum of Baku district populations = Baku (±2%) | 2356200 vs 2356200 |
| ✓ | No NaN or negative values | none |
| ✓ | No district holds more than 25% of the country's POIs (except Baku) | max: 6.0% |
| ✓ | Per-10,000-resident figures are plausible (≤10× median) | all within range |
| ✓ | Areas with a population–OSM mismatch are flagged | Xankəndi, Ağdərə, Xocalı |
| ✓ | No area scores 99 on 4+ indices | none |
| ✓ | PM2.5, temperature, density and paved % within plausible limits | all |
| ✓ | Prices within plausible limits (200–20,000 AZN/m²) | 101 prices checked |
| ✓ | Metro: 27 operating stations (from official exits) | Bakı 27, opendata 27 stations / 98 exits |
| ✓ | opendata.az: every dataset has records | settlements 4589, gazetteer 4589, rail_regions 87, roads 60, poi_areas 14, metro_pax 27 |
| ✓ | Every settlement (PARENT_ID) maps to a district | 4589 settlements |
| ✓ | No NaN in the new official metrics | none |
| ✓ | Gazetteer: lowercase village names resolve; common words are not treated as villages | 5 checks |
| ✓ | H3 compute grid: every cell lies inside its own district | 3700 cells checked |
| ✓ | H3 compute grid: sum of cells ≈ district area (±3%) | max difference 1.60% |
| ✓ | Every neighbourhood lies inside its own district | 1125 neighbourhoods checked |
| ✓ | Neighbourhoods do not overlap (simplification allowance ≤0.5%) | 14 districts |
| ✓ | Total neighbourhood area ≈ district area (±3%) | max difference 0.11% |
| ✓ | The place in each neighbourhood name lies inside its own district | 1125 names checked |
| ✓ | Every neighbourhood has a name | 1125 names |
| ✓ | Share of areas with low OSM coverage | 17/87 (20%) |
| ✓ | Share of real (published) prices | 61/101 |
The same task (“pick 3 areas in Nərimanov near the metro with a school and find their prices”): by hand with bina.az + Google Maps vs Məskən.
| Participant | By hand, min | Məskən, min |
|---|---|---|
| Participant 1 | being measured | being measured |
| Participant 2 | being measured | being measured |
| Participant 3 | being measured | being measured |
User testing is under way; results and quotes will be added here. We make no claims until we have the numbers.
OSM counts for Baku's districts, Sumqayıt and Abşeron (14 areas) are compared with the opendata.az list (Ministry of Ecology and Natural Resources). The sources are not added together. 1,593 places have the status “Checking”; 924 CUSTOMIZABLE_POINT entries are ignored.
| Category | OSM | opendata.az |
|---|---|---|
| School | 1,099 | 655 |
| Kindergarten | 682 | 331 |
| Hospital | 690 | 527 |
| Pharmacy | 645 | 482 |
| Grocery shop | 4,358 | 1,819 |
| Bank / ATM | 1,004 | 644 |
| Park | 3,338 | 79 |
| Area | Category | OSM / opendata.az |
|---|---|---|
| Abşeron | Grocery shop | 754 / 50 |
| Xəzər | Grocery shop | 588 / 11 |
| Sabunçu | Grocery shop | 581 / 83 |
| Suraxanı | Grocery shop | 431 / 48 |
| Xəzər | Park | 375 / 1 |
| Binəqədi | Grocery shop | 471 / 99 |
| Sumqayıt | Park | 377 / 21 |
| Sabunçu | Park | 331 / 1 |
OSM categories are broader (e.g. grocery kiosks, small green spaces) and the official list may be incomplete. A gap does not show which source is right; it shows where checking is needed.