Data Quality Score

Każde schronisko ma data_quality_score jako float w skali 0.0-1.0. Wyższy wynik = bardziej kompletne dane.

Skala teoretyczna

ScoreCo oznacza
1.0Komplet danych: nazwa, adres, telefon, email, godziny, geo, www
0.8 - 0.99Brakuje 1-2 pola opcjonalne
0.6 - 0.79Brakuje 3+ pól opcjonalnych, ale telefon + adres są
0.4 - 0.59Mamy podstawy (telefon LUB adres)
0.2 - 0.39Bardzo niepełne, tylko nazwa + miasto + województwo
≤ 0.2Krytyczne braki, sprawdź telefonicznie przed wizytą

Realny rozkład v1.0

Phase 1 scraper jest konserwatywny, dlatego scores są zawężone do zakresu 0.50 - 0.75:

BucketSchroniska%
0.4 - 0.5912094.5%
0.6 - 0.7975.5%
≥ 0.800%

AVG: 0.51 · MIN: 0.50 · MAX: 0.75

Phase 2.5 enrichment (Google Places dla geo, DostInf wnioski o brakujące dane WIW) podniesie spektrum do 0.6-0.9 dla większości rekordów.

Filtrowanie po quality

Praktyczny threshold dla v1.0 to ≥ 0.55 (top ~30 schronisk z najpełniejszymi danymi):

// v1.0: top schroniska z pełnymi danymi (telefon + adres + email lub www)
const r = await fetch('https://otwarteschroniska.org.pl/api/v1/shelters.json');
const shelters = await r.json();
const top = shelters.filter(s => (s.data_quality_score ?? 0) >= 0.55);
console.log(`${top.length} schronisk z dobrym pokryciem danych`);

// Po Phase 2.5 enrichment: threshold ≥ 0.7 będzie sensowniejszy.

Jak score jest obliczany

Score wyliczany przez Phase 1 scraper na podstawie obecności pól + jakości źródła + cross-source verification. Nie jest to subjective ocena, deterministyczna formuła z 4 warstwami anti-hallucynacji (Pydantic strict + citation verify + cross-source fuzzy + sample audit).