1. Surse de date

1.1 Locațiile farmaciilor

Sursa primară pentru locații e OpenStreetMap (OSM), interogată prin Overpass API cu un filtru pe amenity=pharmacy în limitele administrative ale României. Datele OSM sunt distribuite sub licența ODbL, care permite redistribuirea și folosirea lor cu atribuire — atribuire pe care o facem explicit în footer pe fiecare pagină și în endpoint-ul GeoJSON public.

Datele OSM sunt complementate cu store-locator-ele publice ale lanțurilor mari (Catena, Dr. Max, Help Net, Dona, Farmacia Tei, Mattca, Spring Farma) — acestea sunt o sursă secundară pentru program, telefon și informații de identificare a lanțului. Le folosim pentru a îmbogăți, nu pentru a înlocui, geo-coordonatele OSM.

1.2 Prețurile produselor

Prețurile vin din site-urile publice ale farmaciilor online. Mecanismul preferat e parsarea blocurilor JSON-LD schema.org/Product — un format structurat pe care îl publică majoritatea retailerilor pentru a facilita indexarea în Google Shopping. Când JSON-LD nu e disponibil, folosim parser-e HTML dedicate per site (selectoare CSS specifice).

Lanțuri din care extragem prețuri în prezent: Catena, Dr. Max (cu sub-brand Richter), Farmacia Tei, Help Net, Dona (când nu blochează crawler-ul), Mattca, Spring Farma, plus farmacii online independente (Minifarm, Farmacia Dav, Farmacia Ardealul) — coverage-ul efectiv variază în timp, depinde de disponibilitatea fluxurilor publice.

1.3 Referințele Rx (CANAMED)

Pentru medicamentele cu rețetă (Rx) folosim ca referință lista CANAMED — preț maxim cu amănuntul aprobat de Ministerul Sănătății și publicat lunar pe site-ul ministerului. CANAMED nu e prețul de vânzare — e plafonul peste care farmacia nu poate vinde. Îl afișăm strict ca reper. Lista se importă lunar (timer systemd pe VPS).

2. Frecvența actualizărilor

3. Calitatea datelor

3.1 Matching produs ↔ preț

Cea mai grea parte a unui comparator de prețuri farmaceutice e matching-ul: să decidem cu certitudine că „Nurofen 200mg cutie 24 cpr" de pe un site e același produs cu „NUROFEN 200 MG 24 COMPR. FILMATE" de pe alt site. Folosim trei semnale în ordine de încredere:

  1. GTIN / cod EAN-13 — când e disponibil în JSON-LD, e match deterministic.
  2. DCI (denumire comună internațională) + concentrație + formă farmaceutică + pack size — folosit ca match secundar.
  3. Nume comercial normalizat + pack size — fallback când lipsesc primele două.

Când două surse dezacord pe pack size (ex. una zice „24 cpr", alta „24 capsule"), facem un collision flag: ofertele rămân separate până la review manual. Preferăm un fals negativ (două intrări duplicate) în detrimentul unui fals pozitiv (preț greșit afișat sub un produs greșit).

3.2 Verificări automate

4. Limitări declarate explicit

Prețul afișat poate diferi de cel din farmacia fizică. Prețurile pe care le scraping-uim sunt din magazinele online ale lanțurilor — care nu sunt întotdeauna sincronizate cu prețul afișat la raft într-un punct de lucru fizic. Pentru cumpărare, verifică direct la farmacie.

5. Politica privind logo-urile

Folosim logo-urile lanțurilor în regim de fair-use descriptiv — pentru identificarea brand-ului în liste comparative și pe paginile de lanț. Nu sugerăm endorsement, parteneriat sau autorizare. Dacă un lanț cere takedown la contact@hartafarmacii.ro, eliminăm logo-ul în 48h și îl înlocuim cu un placeholder text neutru.

6. Politica privind AI-ul

HartaFarmacii folosește AI numai în pipeline-ul de asistare, nu în publicarea de conținut auto-generat fără revizie. Concret:

7. Conflict de interes

Declarăm explicit: zero conflict de interes. Nu suntem afiliați, nu primim comision pe vânzări și nu avem contracte cu lanțurile listate. Veniturile vin 100% din:

Nicio sursă de venit nu condiționează ordinea afișării prețurilor sau ce articol apare pe site. Dacă observi un suspect de conflict, scrie-ne și clarificăm.

8. Cum semnalezi o eroare

Un singur canal: contact@hartafarmacii.ro

Procesul intern: primim mailul → confirmăm în 24h → verificăm sursa (de obicei revenim la sursa publică originală) → aplicăm corectarea în baza de date → confirmăm rezultatul prin reply.

9. Versiuni și lifecycle

Această pagină de metodologie are data ultimei revizuiri 2026-05-01 și se actualizează ori de câte ori adăugăm o sursă, schimbăm o frecvență sau descoperim o limitare nouă pe care vrem s-o declarăm. Pentru istoricul complet, repository-ul de cod e privat dar deschis la audit la cerere.

Citește în continuare: Echipa editorială · Despre proiect · Termeni · Confidențialitate.