Cenę na stacji widać dopiero wtedy, gdy już się przy niej stoi. Wtedy jest za późno – albo tankujesz drożej, albo zawracasz. A informacja, że jutro będzie drożej, istnieje publicznie już dziś. Tylko prawie nikt jej nie czyta.
Z tego spostrzeżenia powstał Strażnik Paliwa – automat w Pythonie, który zbudował jeden z naszych kursantów. Kod jest publiczny na GitHubie.
Skąd wiadomo, co będzie jutro
Cena paliwa w Polsce powstaje w łańcuchu, w którym każdy element wyprzedza następny.
Ropa Brent (USD/baryłkę)
Reaguje na notowania w ciągu minut.
Hurt Orlenu (PLN/m³ netto)
Jawny cennik, publikowany codziennie.
Pylon stacji (PLN/litr brutto)
Zmienia się z opóźnieniem 1–2 dni.
Kluczowa jest środkowa kolumna. Cennik hurtowy Orlenu jest jawny i publikowany codziennie, a stacje przenoszą go na pylony z opóźnieniem mniej więcej doby. W momencie publikacji cennika wiadomo więc, co będzie jutro na dystrybutorze.
Strażnik nie zgaduje ceny, tylko jej zmianę:
zmiana na pylonie ≈ zmiana hurtu netto × 1,23 (VAT)
To celowa decyzja. Bezwzględnej ceny nie da się przewidzieć, bo nikt z zewnątrz nie zna marży konkretnej stacji. Ale ta marża zmienia się wolno, więc w różnicy się skraca. Prognoza zmiany jest odporna na to, czego automat nie wie.
Przykładowy alert
28 lipca rafineria podniosła cenę dla stacji. Strażnik wychwycił to w hurcie i wysłał taki raport:
TANKUJ TERAZ
Rafineria podniosła cenę dla stacji.
Na pylonach zobaczysz to zwykle w ciągu 1-2 dni.
Pb95: hurt 6.44 zł/l netto (7.92 z VAT)
na pylonie: +22 gr/l (+11.07 zł za bak 50 l)
ON: hurt 7.21 zł/l netto (8.87 z VAT)
na pylonie: +20 gr/l (+9.96 zł za bak 50 l)
Ropa Brent: 99.10 USD/bbl (+2.9%)
Kurs USD: 3.7080 zł
Sama ropa w litrze paliwa: 2.31 zł
Ostatnia linia to wsad surowcowy: ile w litrze paliwa kosztuje sama ropa, bez rafinacji, akcyzy, opłaty paliwowej i VAT. Zwykle to około jednej czwartej ceny na pylonie.
Cztery sygnały, nie jeden
| Sygnał | Kiedy | Co robić |
|---|---|---|
| TANKUJ | hurt w górę o ≥ 2 gr/l | zatankuj dziś, jutro będzie drożej |
| CZEKAJ | hurt w dół o ≥ 2 gr/l | odłóż tankowanie o dzień, dwa |
| UWAGA | Brent ±3%, hurt jeszcze śpi | wczesne ostrzeżenie |
| SPOKÓJ | ruchy poniżej progu | cisza, żadnego powiadomienia |
Próg 2 gr/l netto odsiewa szum. Mniejsze ruchy i tak nie docierają na pylon, a automat, który codziennie pisze „bez zmian”, zostaje wyciszony po tygodniu.
Wyłącznie publiczne źródła
| Dane | Źródło | Częstotliwość |
|---|---|---|
| Hurtowe ceny paliw | ORLEN S.A. – tool.orlen.pl | codziennie |
| Kurs USD/PLN | NBP, tabela A | dni robocze |
| Ropa Brent (ICE) | Yahoo Finance, symbol BZ=F | na bieżąco |
Żadnych kluczy API, żadnej rejestracji. Endpoint Orlenu jest tym samym, z którego korzysta oficjalna strona „Hurtowe ceny paliw”.
Brent akurat sprawił niespodziankę. Pierwotnym źródłem był Stooq, ale w marcu 2026 zamknęli darmowe pobieranie za kluczem API – dokładnie w trakcie budowy projektu. Zamiast podmienić jeden adres na drugi, Strażnik dostał łańcuch źródeł zapasowych: próbuje kolejnych kandydatów, dopóki któryś nie odpowie.
„Źródło, które działa dziś, nie musi działać jutro” – pierwsza rzecz, jakiej ten projekt nauczył jego autora.
Jak to jest zbudowane
Pięć plików, każdy z jednym zadaniem: zrodla.py pobiera dane z trzech API, analiza.py liczy progi i decyduje o sygnale, powiadomienia.py wysyła Discorda i Telegrama, straznik.py spina to w całość i pamięta stan, diagnostyka.py sprawdza po kolei, które źródła jeszcze żyją.
Rozdzielenie na warstwy nie jest dla ozdoby. Dzięki temu, że analiza.py nie wie nic o internecie, całą logikę decyzyjną dało się przetestować deterministycznie – 19 testami, bez czekania na to, aż Orlen zmieni cennik. Całość stoi na samej bibliotece standardowej Pythona: nie ma requirements.txt, bo nie ma czego instalować.
Automat ma też pilnować się w awarii: padnięcie jednego źródła nie przerywa raportu, stary punkt odniesienia nie znika przy chwilowym błędzie (inaczej po każdej awarii Strażnik zgłaszałby fałszywą wielką zmianę), a uszkodzony plik stanu jest wykrywany i odbudowywany od zera.

Efekt uboczny: otwarty zbiór danych
Przy każdym uruchomieniu Strażnik dopisuje wiersz do historia.csv i commituje go z powrotem. Po kilku tygodniach powstał z tego mały, publiczny szereg czasowy: hurt trzech paliw, Brent, kurs dolara i wyliczony wsad surowcowy, próbkowane co godzinę.
Nikt nie planował tego jako celu projektu. Może się jednak okazać, że to z niego zostanie najwięcej.
Prognoza jest szacunkiem opartym na jawnym cenniku hurtowym. Cena na konkretnej stacji zależy dodatkowo od lokalizacji, sieci i konkurencji. To nie jest porada finansowa, tylko automat, który czyta za kogoś publiczne dane.
Strażnik Paliwa chodzi sam na GitHub Actions co godzinę między 5:00 a 21:00 – w nocy cenniki i tak się nie zmieniają. Nie wymaga włączonego komputera.
To jeden z projektów, jakie kursanci StormIT budują dla siebie w trakcie nauki. Zobacz pozostałe albo sprawdź, jak zacząć swój.
