Raporty ESPI spółek z GPW: basal klasyfikuje typ, wydźwięk i wpływ, a my mierzymy reakcję kursu
Czytamy raporty bieżące ESPI spółek z GPW i chcieliśmy sprawdzić, czy da się je automatycznie opisać na tyle dobrze, żeby zmierzyć, jak reaguje na nie kurs. Nie potrzebujemy streszczeń, tylko decyzji: czego dotyczy raport, jaki ma wydźwięk dla akcjonariuszy i jak duży może mieć wpływ na wycenę.
Rola basal
Każdy raport (tytuł, podstawa prawna i treść, do 4000 znaków) trafia do basal-1.5-4.5B z trzema pytaniami w jednym zapytaniu:
- typ: 10 kategorii opisanych zwykłym polskim zdaniem (umowa lub kontrakt, wyniki, dywidenda, skup akcji, emisja, transakcje insiderów, przejęcie, spór/kara/restrukturyzacja, walne i zarząd, sprawy rutynowe);
- wydźwięk dla akcjonariuszy: negatywny / neutralny / pozytywny;
- wpływ na wycenę: skala 0–3.
Raporty o transakcjach insiderów dostają drugie zapytanie: kierunek (kupno / sprzedaż / nie wynika z treści / brak transakcji) i kto (osoba zarządzająca z art. 19 MAR czy znaczący akcjonariusz z art. 69). Zmiana taksonomii to edycja słownika w kodzie, bez trenowania.
Infrastruktura
basal-serve na Modal (serverless GPU) za uwierzytelnionym endpointem, klient w ok. 100 liniach Pythona bez zależności. Kontener zasypia po 2 minutach bez ruchu, więc płacimy tylko za faktyczną pracę.
Skala
6 236 raportów ESPI z okresu 8.06–5.10.2026. 5 917 raportów z tickerem przeszło przez 3 pytania, 1 526 insiderskich przez 2 dodatkowe, razem ok. 20,8 tys. decyzji. Pewność typu ≥ 0,8 miało 71% raportów, wydźwięku 79%.
Wydajność na naszych raportach (mediana ok. 3,5 tys. tokenów wejścia na komplet 3 pytań)
- L4, tryb fast-nocompile: 333 ms na raport po stronie serwera, 2,3 raportu/s przy 32 równoległych zapytaniach.
- H100, tryb fast: 39 ms na raport, 22,4 raportu/s (67 decyzji/s) przy 32 równoległych.
Przy cenniku Modal (L4 ok. 0,80 USD/h, H100 ok. 3,95 USD/h) wychodzi ok. 0,10 USD za 1000 raportów na L4 i ok. 0,05 USD na H100. Przy pełnym obciążeniu H100 jest więc tańsza na raport, a całe 4 miesiące raportów przelicza w ok. 4,5 minuty zamiast 43.
Co wyszło z badania reakcji kursu
4 328 zdarzeń, 373 spółki; zwrot ponad medianę rynku z danego dnia, wejście na pierwszym otwarciu po publikacji.
- Negatywny wydźwięk (pewność ≥ 0,5): −0,82% w 2 sesje (t = −3,0; n = 320), w płynnych spółkach −1,33% (t = −3,3; n = 98). Podniesienie progu pewności nie wzmacnia efektu.
- Pozytywna informacja bez luki na otwarciu (|luka| < 1%), płynne spółki: +1,24% w 5 sesji (t = 2,9; n = 169). Znalezione po fakcie, więc traktujemy to jako hipotezę do testu na nowych danych.
- Po kosztach transakcyjnych (szacujemy je, bo nie mamy kwotowań bid/ask) w małych spółkach nie zostaje nic. Etykiety basal sprawdzają się raczej jako filtr „czego unikać” niż gotowa strategia.
Przetestowaliśmy ok. 130 kombinacji na 4 miesiącach danych, więc część wyników to szum.
Czego basal tu nie robi
Nie przewiduje kursu. Prawdopodobieństwa mówią, jak pewna jest klasyfikacja tekstu. Związek etykiet z ceną to osobny pomiar.
Co nam się najbardziej przydało
Polskie kategorie bez tłumaczenia, kilka pytań o ten sam raport w jednym zapytaniu, prawdopodobieństwa, które można progować, i koszt rzędu centów za tysiące raportów.
Następne kroki
Ręcznie oznaczyć ok. 150 raportów i zmierzyć trafność klasyfikacji; test reguł zamrożonych 5.10.2026 na raportach z kolejnych miesięcy.