PretCarburant.ro Methodology
Transparency is the foundation of any public-data comparator. Below we document exactly how we collect, reconcile, validate and publish Romanian fuel prices. If you spot any discrepancy between what's written here and what the site actually does, contact us — we correct within 24h.
1. Data sources
Prices displayed on PretCarburant.ro come from official public sources:
- ANPC Price Monitor (monitorulpreturilor.info) — the official API of the Romanian Competition Council / ANPC, mandatory for retailers. Our main source: we query it for the Petrom, OMV, Rompetrol, MOL, Lukoil, SOCAR and Gazprom networks, across more than 350 localities (administrative units, UATs).
- SOCAR direct — direct feed from SOCAR Romania's network, using prices published on the operator's official website. Highest priority for SOCAR stations.
- Rompetrol direct — prices published in the station locator on Rompetrol's official website. We use them only for the stations and fuels the Price Monitor does not send; the website does not say when a price was set, so the station page shows when we checked it.
- Driver reports — prices sent from the app or from station pages, shown only once published (automatically or after moderation) and only for a short time.
From the OSCAR network we only take station locations, fuels and services: its public feed contains no prices, so OSCAR stations are shown without a price.
All sources are public and free. PretCarburant.ro receives no privileged data from any fuel network, and none of them pays for how it appears on the site.
2. Update frequency
The collection pipeline runs several times a day, 24/7, in strictly ordered sequence on the production server (Hetzner, systemd + cron). A full run takes ~5-8 minutes and traverses the steps below in this order (the first one is retired):
- :00 — the scraper for the baseline source (a public price aggregator), which wrote
statii_latest.json; retired since 9 September 2026, it no longer brings prices - :05 —
cron_snapshot: aggregates the national daily snapshot (averages, min, max) + Brent price - :15 —
socar_direct: overlays SOCAR authoritative data (override on SOCAR stations) - :20 —
monitorul_merge: overlays ANPC data with multi-pass geo matching (200m → 500m → 800m tolerance) - :22 —
rompetrol_direct: fills in Rompetrol prices missing from the Price Monitor, from the official rompetrol.ro station locator - :25 —
oscar_direct: adds OSCAR station locations, without prices (the network's feed does not publish them) - :30 —
snapshot_statii: persists the final reconciled data intopreturi_statii.db(SQLite)
Ordering is critical — running snapshot_statii before monitorul_merge would persist only uniform national prices (1 price per brand/country), losing the real per-station variation from ANPC data.
Data is cached in-memory on the server with a 2-minute TTL, balancing freshness and performance under load.
3. Validation and outlier rules
No price reaches the site without passing the following filters hard-coded in helpers/constants.py:
- Absolute bounds per fuel type (exact production values):
- Petrol 95 standard: between 5.50 and 12.00 RON/L
- Diesel standard: between 5.50 and 13.00 RON/L
- Auto LPG: between 2.50 and 6.00 RON/L
- Coordinate-based deduplication — the same station may appear in multiple sources with slightly different addresses. The matching algorithm uses haversine distance: two reports under 200m are considered the same station. The 500m and 800m passes apply sequentially for cases where ANPC coordinates are approximate.
- Source prioritization — when a SOCAR station has a price both in the direct SOCAR feed and in the Price Monitor, the direct feed wins (it is read from the operator's own website).
- Brand normalization — scrapers return brands in different formats (e.g.
MolvsMOL). We normalize to consistent upper/lower case before matching and display.
4. Geographic coverage
The site monitors 1823 unique fuel stations distributed across all 41 counties + the municipality of Bucharest, with presence in over 440 localities. Networks monitored: Petrom (398+ stations), OMV, Rompetrol, MOL, Lukoil, Socar, Gazprom and independent stations.
5. Open dataset and academic citation
The national daily price history (2015 — present, 159+ snapshots) is published as an open-data dataset on Zenodo (CERN-backed repository), under a Creative Commons Attribution 4.0 International license, with an official DOI:
CSV with 16 columns (min/avg/max per standard petrol, premium petrol, standard diesel, premium diesel, LPG), UTF-8 format, updated daily.
For real-time programmatic access to current-day prices, use /api/v1/preturi — a public REST API, CC-BY 4.0 license, no API key, no strict per-IP rate limit.
The platform is registered as a brand entity on Wikidata (Q139285387) and is also documented in llms.txt per the llmstxt.org specification for AI crawlers (GPTBot, ClaudeBot, PerplexityBot etc.).
6. Corrections policy
If you notice an incorrect price or a station with wrong data, write to us at contact@pretcarburant.ro with:
- The URL of the affected page
- The correct price (if known) and time of observation
- Ideally: a photo of the pump / display at the station, for confirmation
We respond within a maximum of 24 business hours. Major corrections (station gone, brand change, wrong address) are reflected in the next pipeline run (within 2 hours). If the correction comes directly from the ANPC Price Monitor, it propagates automatically via the monitorul_merge pass.
7. Technical transparency and AI-readiness
- Schema.org structured data — every key page carries dense JSON-LD (Organization, Dataset, FAQPage, AggregateOffer, Article). The Dataset schema includes the Zenodo DOI as official identifier.
- XML Sitemap with 7 sub-sitemaps (~148 indexable URLs after the April 2026 AdSense cleanup) at pretcarburant.ro/sitemap.xml.
- AI-friendly robots.txt — we explicitly allow GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, OAI-SearchBot, anthropic-ai, CCBot, with Crawl-delay 2s.
- llms.txt following the llmstxt.org spec, listing pages recommended for LLM citation.
- Speakable schema on price pages — optimized for voice search / AI answer surfaces.
- hreflang alternates RO / EN / HU on every page with multilingual versions.
- Source stack — the backend runs on Python/Flask with SQLite, deployed via gunicorn + nginx on Hetzner Cloud. Detailed stack on the author's GitHub profile: github.com/An3treiu.
8. Known limitations
- Emergency Ordinance 19/2026 — commercial markup cap (1 April — 30 June 2026). During this legislative window, most major networks (MOL, OMV, Lukoil, Socar, Gazprom) display a uniform national price per brand as a direct effect of the markup being capped to the 2025 average. This is not a site error — it's the direct consequence of the ordinance. Real per-station variation remains at Rompetrol and independent stations. After 30 June 2026, prices should return to pre-ordinance dynamics.
- Some small stations only report to ANPC once a day — there may be a 1-12h delay compared to the actual pump display.
- Premium prices (petrol 98/100, premium diesel) are not available for all networks — we display them only where we have confirmed data.
- Auto-LPG coverage is incomplete — not all stations sell LPG, and some are LPG-only and don't appear in petrol/diesel results.
- Very small towns (<3 monitored stations) don't get dedicated pages — their data appears only on the global map and in county aggregates.
9. Author and editorial responsibility
PretCarburant.ro is developed and maintained by Stoian Andrei-Șerban, sole founder, based in Bucharest, Romania. There are no shareholders or investors, and no fuel operator pays for how it appears on the site. The platform is funded by contextual advertising (Google AdSense on the web + Google AdMob in the mobile app), optional in-app purchases to remove ads, and API subscriptions: companies, including a fuel network, use the API for a fee, at the public rate.
Full editorial responsibility for content, methodology and corrections belongs to the author. Direct contact: contact@pretcarburant.ro.
Last methodology update: 14 April 2026
Changes vs previous version (5 April): frequency corrected to 2h/run (was 3×/day), outlier bounds corrected to production values, added Zenodo DOI + CSV download + Wikidata entity, added step-by-step pipeline, added editorial responsibility section. Report an issue →