Strasmore Research
Edukacja Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Dlaczego dane short interest są opóźnione

Analiza cyklu raportowania FINRA oraz przyczyn opóźnień w publikacji danych. Wyjaśnienie mechanizmu pomiaru pozycji krótkich oraz wskaźnika days to cover.

Dane dotyczące short interest są zawsze nieaktualne z przyczyn strukturalnych: nie stanowią one transmisji na żywo. Brokerzy wykonują migawki akcji zajętych przez krótkie pozycje na kontach w wyznaczonych przez FINRA datach rozliczenia — dwa razy w miesiącu, w połowie miesiąca oraz na jego końcu. Następnie przesyłają te sumy do FINRA, która gromadzi raporty wszystkich firm członkowskich i publikuje zagregowane dane około osiem dni roboczych później. Uwzględniając czas potrzebny na przekazanie pliku przez dostawcę i bazę danych na ekran, najświeższa dostępna w danym dniu liczba short interest opisuje pozycje, które istniały od jednego do czterech tygodni temu. Niniejsza strona mierzy tę różnicę, zamiast ją ignorować.

Jak powstaje opóźnienie w raportowaniu

Cykl składa się z czterech etapów, a każdy z nich wydłuża proces o kolejne dni.

  1. Data rozliczenia. FINRA publikuje harmonogram dat rozliczeń — jedna przypada w połowie miesiąca, druga na koniec miesiąca. W każdym z tych terminów każdy broker-dealer rejestruje krótkie pozycje prowadzone na rachunkach klientów oraz własnych rachunkach firmy. Są to daty rozliczenia, a nie daty transakcji: przy rozliczeniu T+1 transakcja zawarta w poniedziałek rozliczana jest we wtorek, zatem w dacie rozliczenia uwzględniane są pozycje, których transakcje zostały rozliczone do tego czasu.
  2. Termin raportowania. Każda firma członkowska składa do FINRA całkowite kwoty krótkich pozycji dla każdego papieru wartościowego w ciągu kolejnych kilku dni roboczych. Na tym etapie dane nie są publiczne; jest to raport regulacyjny, a nie strumień danych rynkowych.
  3. Kompilacja. FINRA sumuje tysiące raportów firmowych dla każdego papieru wartościowego i tworzy jeden plik: jedną liczbę na każdy papier wartościowy na daną datę rozliczenia — brak historii wewnątrz dnia, brak szczegółów dotyczących miejsca transakcji oraz brak podziału na poszczególne firmy.
  4. Dystrybucja. Plik zostaje upubliczniony około osiemnastu dni roboczych po opisywanej dacie rozliczenia. Następnie dostawcy pobierają dane, giełdy je publikują ponownie, a magazyny danych, takie jak ten obsługujący tę stronę, dokonują ich importu.

Nikt nie wstrzymuje tych danych. Opóźnienie stanowi sumę okna zbierania danych, okna kompilacji oraz etapu dystrybucji — każdy krok to proces wsadowy oparty na kalendarzu, a nie strumień danych.

Ile wynosi opóźnienie mierzone w dniach?

Poniżej znajduje się zestawienie wszystkich dat rozliczeń, które wpłynęły do tego magazynu jako dostawy przyrostowe — po jednej stronie widnieje data rozliczenia, po drugiej dzień, w którym dane wiersze pojawiły się tutaj po raz pierwszy.

ZapytanieKażde rozliczenie dostarczane stopniowo: mierzone w dniu publikacji, z opóźnieniem kilku dni
Dokładny kod SQL dla każdej liczby
WITH first_arrival AS (
    SELECT settlement_date,
           toDate(min(_ingest_time)) AS arrived
    FROM global_markets.stocks_short_interest
    GROUP BY settlement_date
),
bulk_days AS (
    SELECT arrived
    FROM first_arrival
    GROUP BY arrived
    HAVING count() > 5
)
SELECT settlement_date,
       toString(arrived) AS arrived_here,
       dateDiff('day', settlement_date, arrived) AS publication_lag_days
FROM first_arrival
WHERE arrived NOT IN (SELECT arrived FROM bulk_days)
ORDER BY settlement_date

Najnowsze rozliczenie w bazie, 2026-06-30, wpłynęło tutaj 2026-07-11 — czyli 11 dni po zarejestrowaniu opisanych przez nie pozycji. Poprzednie zajęło 16 dni. W całym szeregu wartości nie są stałe, lecz tworzą pasmo:

ZapytanieOpóźnienie w procesie — dane z pipeline'u oraz celowo wyłączone dane z backfillu
Dokładny kod SQL dla każdej liczby
WITH first_arrival AS (
    SELECT settlement_date,
           toDate(min(_ingest_time)) AS arrived
    FROM global_markets.stocks_short_interest
    GROUP BY settlement_date
),
bulk_days AS (
    SELECT arrived
    FROM first_arrival
    GROUP BY arrived
    HAVING count() > 5
),
organic AS (
    SELECT settlement_date,
           dateDiff('day', settlement_date, arrived) AS lag
    FROM first_arrival
    WHERE arrived NOT IN (SELECT arrived FROM bulk_days)
)
SELECT count() AS settlements_measured,
       min(lag) AS fastest_lag_days,
       round(quantileDeterministic(0.5)(lag, cityHash64(settlement_date)), 1) AS median_lag_days,
       max(lag) AS slowest_lag_days,
       (SELECT count() FROM first_arrival WHERE arrived IN (SELECT arrived FROM bulk_days)) AS settlements_bulk_loaded,
       (SELECT toString(max(arrived)) FROM bulk_days) AS bulk_load_date
FROM organic

W przypadku 8 rozliczeń dostarczanych przyrostowo, najszybszy zapis nastąpił 10 dni po dacie rozliczenia, a najwolniejszy trwał 26 dni; mediana wynosi 14 dni — jest to wspomniane w tytule „dwa tygodnie”, mierzone, a nie zakładane.

Należy zwrócić uwagę na to, czego nie obejmują te zapytania. Historia magazynu nie jest rejestrem szybkości publikacji: 2026-03-16 ta baza danych załadowała 197 rozliczeń jednocześnie, w ramach pojedynczego uzupełnienia archiwum. Znaczniki czasu wprowadzenia danych w tych wierszach określają moment uzupełnienia, a nie moment ujawnienia informacji; wszelkie „opóźnienie” obliczone na ich podstawie jest wynikiem harmonogramu ładowania danych. Tylko rozliczenia, które napływały pojedynczo po utworzeniu archiwum, mierzą rzeczywisty przepływ — są to wiersze wymienione powyżej.

Aktualny stan cyklu

Opóźnienie jest najlepiej widoczne w samym rozstrzygnięciu: w dowolnym momencie istnieje data rozliczenia, która już nastąpiła, ale nie została jeszcze opublikowana. Ten panel stanowi bieżące zestawienie.

ZapytanieBieżący stan cyklu — najnowsze dane oraz dane w procesie przetwarzania
Dokładny kod SQL dla każdej liczby
WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest
SELECT toString(latest) AS latest_settlement_on_file,
       (SELECT count() FROM global_markets.stocks_short_interest
        WHERE settlement_date = latest) AS securities_in_that_print,
       (SELECT dateDiff('day', latest, toDate(min(_ingest_time))) FROM global_markets.stocks_short_interest
        WHERE settlement_date = latest) AS its_publication_lag_days,
       (SELECT count() FROM global_markets.stocks_short_interest
        WHERE settlement_date > latest AND settlement_date <= latest + 16) AS next_settlement_rows_on_file,
       (SELECT count(DISTINCT date) FROM global_markets.stocks_short_volume
        WHERE date > latest) AS daily_short_volume_files_since,
       (SELECT dateDiff('day', latest, max(date)) FROM global_markets.stocks_short_volume) AS days_from_settlement_to_newest_daily_file

Najnowszy dostępny odczyt short interest dotyczy rozliczenia z dnia 2026-06-30, obejmuje 22207 papierów wartościowych i został dostarczony 11 dni po terminie. Kolejne rozliczenie w cyklu obejmuje 0 wierszy: nie zostało jeszcze opublikowane, a przy opóźnieniach zmierzonych powyżej jest to zjawisko całkowicie normalne. Ta kolumna jest celowo ograniczona do zera. Po publikacji danych ograniczenie zostaje zniesione, a strona oczekuje na aktualizację, zamiast wyświetlać nieaktualne dane — jest to ten sam mechanizm, który zawierał czerwcowe podsumowanie z jednym cyklem opóźnienia.

W międzyczasie plik dziennego wolumenu krótkich pozycji (short-volume) został opublikowany 12 razy od wspomnianej daty rozliczenia, przy czym najświeższy dzień jest o 17 dni nowszy od najnowszego zestawienia short interest. Dwa zbiory danych FINRA, dwa różne zegary.

Co ulega zmianom w okresie oczekiwania na dane

Opóźnienie ma znaczenie tylko wtedy, gdy w tym czasie zmieniają się ceny. Tak się dzieje. Niniejsza sekcja analizuje ostatnie rozliczenie, a następnie porównuje zamknięcie danej spółki w sesji regulacyjnej w dniu rozliczenia z jej zamknięciem w dniu, w którym plik z danymi faktycznie dotarł.

ZapytanieOkno informacyjne: wyniki pięciu spółek między datą rozliczenia a publikacją short interest
Dokładny kod SQL dla każdej liczby
WITH latest AS (SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest),
arrived AS (
    SELECT toDate(min(_ingest_time)) AS a
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
),
daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'TSLA', 'NVDA', 'GME', 'MU')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= (SELECT d FROM latest)
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= (SELECT a FROM arrived)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
          + toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959
    GROUP BY ticker, session
)
SELECT si.ticker AS ticker,
       round(si.short_interest / 1e6, 1) AS shares_short_m,
       round(argMin(d.rth_close, d.session), 2) AS close_at_settlement,
       round(argMax(d.rth_close, d.session), 2) AS close_when_published,
       round((argMax(d.rth_close, d.session) / argMin(d.rth_close, d.session) - 1) * 100, 1) AS move_while_pending_pct,
       count() AS sessions_in_window
FROM global_markets.stocks_short_interest AS si
INNER JOIN daily AS d ON d.ticker = si.ticker
WHERE si.settlement_date = (SELECT d FROM latest)
GROUP BY si.ticker, si.short_interest
ORDER BY abs(move_while_pending_pct) DESC, si.ticker ASC

Okres analizy obejmował 8 sesji handlowych. Największą zmianę odnotował instrument MU, którego cena wzrosła z $1151.01 przy zamknięciu rozliczeniowym do $978.69 w dniu publikacji danych o krótkiej sprzedaży — co stanowi zmianę o -15% w okresie, w którym ujawniona krótka pozycja była z definicji zamrożona na poziomie 31.7 milionów akcji. Najmniejszą zmianę odnotował instrument GME, który mimo to zmienił kurs o -1.9%.

To stanowi praktyczną istotę opóźnienia. Każdy nagłówek raportujący „short interest w X” opisuje pozycję według ostatniego rozliczenia — wszystkie zmiany w powyższym oknie czasowym pozostają dla niego niewidoczne. Krótkie pozycje mogły zostać zamknięte podczas wzrostów lub zwiększone podczas spadków; dane nie mogą tego określić i nie określą, dopóki nie pojawi się kolejny raport.

Days to cover, obliczone na podstawie nieaktualnego licznika

Days to cover — liczba akcji krótkich podzielona przez średni wolumen dzienny — to wskaźnik, z którym najczęściej spotykają się czytelnicy, a który cechuje się podwójnym opóźnieniem: licznik zostaje ustalony w dacie rozliczenia, natomiast mianownik stanowi wolumen obliczony przez plik wiele tygodni temu. GameStop jest najbardziej jaskrawym przykładem, ponieważ jest to zarówno powszechnie znana marka, jak i jeden z najbardziej obciążonych krótkimi pozycjami płynnych tickerów.

ZapytanieDni do pokrycia GME — wg raportów oraz po przeliczeniu wolumenu w okresie oczekiwania na dane
Dokładny kod SQL dla każdej liczby
WITH latest AS (SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest),
arrived AS (
    SELECT toDate(min(_ingest_time)) AS a
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
),
tape AS (
    SELECT count(DISTINCT toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
           sum(toFloat64(volume)) AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'GME'
      AND toDate(toTimeZone(window_start, 'America/New_York')) > (SELECT d FROM latest)
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= (SELECT a FROM arrived)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
          + toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959
)
SELECT toString((SELECT d FROM latest)) AS settlement,
       round(si.short_interest / 1e6, 1) AS shares_short_m,
       round(si.avg_daily_volume / 1e6, 2) AS file_adv_m,
       round(si.days_to_cover, 2) AS reported_days_to_cover,
       round(tape.shares / tape.sessions / 1e6, 2) AS tape_adv_since_settlement_m,
       round(si.short_interest / (tape.shares / tape.sessions), 2) AS days_to_cover_on_recent_volume,
       round(abs(si.short_interest / (tape.shares / tape.sessions) - si.days_to_cover), 2) AS days_of_difference,
       tape.sessions AS sessions_measured
FROM global_markets.stocks_short_interest AS si, tape
WHERE si.ticker = 'GME'
  AND si.settlement_date = (SELECT d FROM latest)

Należy czytać wiersz od lewej do prawej. W dacie rozliczenia 2026-06-30 GameStop posiadał 55.9 milionów akcji w krótkiej sprzedaży. Plik zestawia to ze średnim dziennym wolumenem wynoszącym 5.2 milionów akcji i raportuje 10.75 dni do pokrycia — wartość wyświetlaną przez skanery rynkowe.

Teraz należy zastąpić mianownik danymi rzeczywistymi. W ciągu 7 sesji regulaminowych, które odbyły się, gdy dane były jeszcze w procesie przetwarzania, średni dzienny obrót GameStop na skonsolidowanym taśmie wynosił 3.09 milionów akcji. Ta sama pozycja krótka przy takim wolumenie daje wynik 18.08 dni — o 7.33 dni mniej niż publikowany wskaźnik przy zachowaniu identycznego licznika. Zmieniło się jedynie założenie dotyczące wolumenu. Wskaźnik days to cover należy traktować jako nieaktualny stosunek zbudowany z dwóch nieaktualnych danych wejściowych, a nie jako bieżący pomiar czasu potrzebnego na zamknięcie pozycji.

Short squeezes: gdzie faktycznie występuje opóźnienie

Głównym powodem, dla którego ludzie zadają to pytanie, jest squeeze. W przypadku squeeze kluczowa jest krótka pozycja, a jej dokładna wielkość nie jest dostępna w czasie rzeczywistym. Przykładem podręcznikowym jest GameStop z początku 2021 roku. Poniższe kolumny przedstawiają zamknięcie sesji regulaminowej dla każdego rozliczenia oraz zamknięcie osiem sesji handlowych później, co odpowiada ośmiodniowemu terminowi publikacji danych przez FINRA.

ZapytanieGME, zima 2020-21: publikacje short interest i zmiany kursu przed ich upublicznieniem (ceny transakcyjne)
Dokładny kod SQL dla każdej liczby
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'GME'
      AND window_start >= toDateTime('2020-12-01 00:00:00')
      AND window_start < toDateTime('2021-03-15 00:00:00')
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
          + toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959
    GROUP BY session
),
ranked AS (
    SELECT session, cl, row_number() OVER (ORDER BY session) AS n
    FROM daily
)
SELECT toString(si.settlement_date) AS settlement,
       round(si.short_interest / 1e6, 1) AS shares_short_m,
       round(r0.cl, 2) AS close_at_settlement,
       round(r8.cl, 2) AS close_8_sessions_later,
       round((r8.cl / r0.cl - 1) * 100, 1) AS move_while_pending_pct
FROM global_markets.stocks_short_interest AS si
INNER JOIN ranked AS r0 ON r0.session = si.settlement_date
INNER JOIN ranked AS r8 ON r8.n = r0.n + 8
WHERE si.ticker = 'GME'
  AND si.settlement_date >= toDate('2020-12-15')
  AND si.settlement_date <= toDate('2021-02-26')
ORDER BY si.settlement_date

Należy przeanalizować rozliczenie 2021-01-15. Odnotowano wówczas 61.8 milionów akcji w krótkiej pozycji przy kursie akcji wynoszącym $35.49. Osiem sesji później — czyli w momencie, gdy takie dane trafiają do publicznej wiadomości — GameStop zamknął się na poziomie $197.44, co stanowi ruch o 456.3%. Każdy, kto zapoznał się z tą wartością short interest w dniu jej publikacji, czytał opis akcji, która nie istniała już po tej cenie.

Kolejne dane odwracają sytuację. Rozliczenie 2021-01-29 wykazało 21.4 milionów akcji w krótkiej pozycji — większość pozycji została już zamknięta, a kurs akcji wynosił $328.24. Po ośmiu sesjach kurs osiągnął $51.19, -84.4%. Proces zamykania pozycji (covering) zakończył się przed publikacją dokumentu z tymi danymi. Obie fazy squeeze — kumulacja pozycji oraz ich zamykanie — zostały ujawnione po fakcie.

Codzienne dane i czego nie mówią

FINRA publikuje codziennie dane dotyczące short volume, czyli udziału raportowanych transakcji sprzedaży krótkiej w całkowitym wolumenie z poprzedniego dnia. Dane te są dostępne następnego ranka. Są one zbliżone do czasu rzeczywistego, ale stanowią inną miarę. Short volume określa przepływ transakcji — w dużej mierze jest to hedging dealerów rynkowych, który zostaje zamknięty przed zamknięciem sesji — a nie otwarte pozycje. Akcje mogą wykazywać wysoki short volume każdego dnia przez cały tydzień, podczas gdy short interest pozostaje bez zmian. różnica między tymi dwoma zestawami danych polega na różnicy między natężeniem ruchu na drodze a samochodami zaparkowanymi na jej końcu; oba pliki są tutaj szczegółowo opisane.

W USA nie publikuje się codziennych danych dotyczących short interest. Dostawcy danych sprzedają codzienne szacunki oparte na danych z pożyczek papierów wartościowych oraz przepływach; są to modele, a nie oficjalne ujawnienia. Oficjalna liczba jest publikowana dwa razy w miesiącu i pojawia się z opóźnieniem.

FAQ

Dlaczego dane o short interest są sprzed dwóch tygodni?

Brokerzy sporządzają zestawienie krótkich pozycji tylko w dni rozliczeń dwa razy w miesiącu, przesyłają sumy kilka dni roboczych później, a FINRA udostępnia skompilowany plik około osiem dni roboczych po dacie rozliczenia. W przypadku wszystkich rozliczeń otrzymanych do tej bazy jako dane na żywo, pełny proces trwał od 10 do 26 dni, przy medianie wynoszącej 14 dni.

Jak brokerzy obliczają i raportują short interest?

Każdy broker-dealer zlicza akcje posiadane w krótkiej pozycji na rachunkach klientów oraz własnych na dzień rozliczenia, agreguje je dla każdego papieru wartościowego i przesyła sumę do FINRA. FINRA sumuje raporty wszystkich firm członkowskich w jedną liczbę dla każdego waloru — 22207 z nich w wydaniu 2026-06-30. Jest to regulacyjny spis pozycji, a nie zestawienie transakcji.

Czy cykl raportowania różni się dla akcji z NYSE, Nasdaq lub rynku OTC?

Nie. Ten sam dwumiesięczny harmonogram rozliczeń oraz ten sam cykl kompilacji i dystrybucji obowiązuje we wszystkich amerykańskich miejscach notowań, a giełdy publikują dane na podstawie plików FINRA, zamiast tworzyć własne zestawienia. Miejsce notowania akcji nie wpływa na aktualność jej wskaźnika short interest.

Jaki procent short interest jest dobry lub zły?

Nie istnieje próg, który klasyfikowałby akcje jako dobre lub złe do posiadania, a wysoki odczyt nie jest prognozą. Miary zagęszczenia (crowding) opisują jedynie, jak duża jest krótka pozycja w stosunku do wolumenu obrotu daną akcją: ostatnie dane dla GameStop wskazują na 10.75 dni pokrycia, podczas gdy dla większości płynnych walorów są to pojedyncze cyfry — szczegółowy rozkład widać w aktualnych liderach zagęszczenia.

Czy opóźnienie w raportowaniu ma znaczenie dla short squeezes?

To właśnie wtedy opóźnienie ma największe znaczenie. W rozliczeniu GameStop z 2021-01-15 akcje zmieniły kurs o 456.3% między pomiarem a ósmą sesją przybliżającą publikację — a do wydania 2021-01-29 krótka pozycja spadła już do 21.4 milionów akcji. Zagęszczenie typu squeeze jest potwierdzane w danych publicznych dopiero po wystąpieniu zjawiska.


Każdy powyższy panel zawiera kod SQL, który go wygenerował — można rozwinąć dowolny z nich, aby zweryfikować liczby, lub uruchomić kalendarz rozliczeń na terminalu Strasmore.