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 are reconciled from official public sources, in the following priority order:
- ANPC Price Monitor (monitorulpreturilor.info) β the official API of the Romanian Competition Council / ANPC, mandatory for retailers. Our authoritative source covering 343 administrative units (UATs). Covers all major networks and independents.
- SOCAR direct β direct feed from SOCAR Romania's network, using prices published on the operator's official website. Highest priority for SOCAR stations.
- OSCAR direct β similar direct feed for the Oscar network.
- Official public pages of major networks β data openly published by each operator (Petrom, OMV, Rompetrol, MOL, Lukoil, Gazprom) on their public commercial sites. We use exclusively information that each operator has made publicly available.
All sources are public and free. PretCarburant.ro has no commercial contracts with any fuel network and receives no privileged data.
2. Update frequency
The collection pipeline runs every 2 hours, 24/7, in strictly ordered sequence on the production server (Hetzner, systemd + cron). A full run takes ~5-8 minutes and traverses 6 steps in this order:
- :00 β main scraper: collects baseline prices from network public sources and writes them to
statii_latest.json - :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) - :25 β
oscar_direct: overlays OSCAR network data - :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 the same station has prices from multiple sources simultaneously, the priority order is: SOCAR/OSCAR direct feed > ANPC Price Monitor > public network pages.
- 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 1518 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, investors or commercial contracts with fuel operators. The platform is funded exclusively by contextual advertising (Google AdSense on the web + Google AdMob in the mobile app) and optional in-app purchases to remove ads.
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 β