למה נתוני שורט תמיד מגיעים באיחור של שבועיים
נתוני שורט אינם פיד חי. ברוקרים מצלמים פוזיציות במועדי סילוק של FINRA פעמיים בחודש, והמצרף מתפרסם כשמונה ימי עסקים אחר כך. הפער בין המועד הקובע למסך שלכם מסביר את האיחור המבני.
נתוני שורט תמיד מגיעים באיחור, מסיבה מבנית: זה אינו פיד חי. ברוקרים מצלמים את המניות המוחזקות בשורט בחשבונותיהם בתאריכי סילוק שנקבעים על ידי FINRA – פעמיים בחודש, באמצע החודש ובסופו – ואז מגישים את הסכומים האלה ל-FINRA, שמרכזת את הדיווחים של כל החברות החברות ומפרסמת את המצרף כשמונה ימי עסקים לאחר מכן. תוסיפו את הקפיצה דרך הספק ומסד הנתונים שמביאה את הקובץ למסך שלכם, ומספר השורט הטרי ביותר שזמין בכל יום נתון מתאר פוזיציות כפי שהיו לפני שבוע עד ארבעה שבועות. עמוד זה מודד את הפער הזה במקום להצהיר עליו.
איך נוצר למעשה פער הדיווח
למחזור יש ארבעה שלבים, וכל אחד מהם מוסיף ימים.
- מועד הקובע. FINRA מפרסמת לוח זמנים של מועדים קובעים — אחד באמצע החודש, אחד בסופו. בכל מועד כזה, כל ברוקר-דילר רושם את פוזיציות השורט המוחזקות בחשבונות הלקוחות והחשבונות העצמיים שלו. אלה מועדי סליקה, לא מועדי מסחר: תחת סליקת T+1, עסקה שנעשתה ביום שני מסתלקת ביום שלישי, כך שהפוזיציות שנספרות במועד קובע הן אלו שהעסקאות שלהן נסלקו עד אז.
- מועד הדיווח. כל חברה מדווחת ל-FINRA על סך השורט לנייר ערך בתוך שני ימי עסקים לאחר מכן. דבר אינו פומבי בשלב זה; זהו דיווח רגולטורי, לא הזנת נתוני שוק.
- ריכוז. FINRA מסכמת אלפי דוחות ברמת החברה עבור כל נייר ערך ומרכיבה קובץ אחד: מספר בודד לנייר ערך למועד קובע — ללא היסטוריה תוך-יומית, ללא פירוט לפי זירת מסחר, ללא פילוח לפי חברה.
- הפצה. הקובץ מתפרסם לציבור כשמונה ימי עסקים לאחר המועד הקובע שהוא מתאר. לאחר מכן ספקי נתונים שואבים אותו, בורסות מפיצות אותו מחדש, ומחסני נתונים כמו זה שמאחורי העמוד הזה קולטים אותו.
אף אחד לא יושב על המספר. העיכוב הוא סכום חלון האיסוף, חלון הריכוז ושלב ההפצה — כל שלב הוא תהליך אצווה בלוח שנה, לא תזרים.
כמה זמן האיחור, בימים מדודים?
להלן כל תאריך סליקה שהמחסן הזה קיבל כמסירה חיה, מצטברת — תאריך סליקה בצד אחד, היום שבו השורות הופיעו כאן לראשונה בצד השני.
ה-SQL המדויק מאחורי כל מספר
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הסליקה העדכנית ביותר בתיק, 2026-06-30, הגיעה לכאן ב-2026-07-11 — 11 ימים לאחר שהפוזיציות שהיא מתארת נרשמו. זו שלפניה ארכה 16 ימים. לאורך כל הסדרה הצורה היא רצועה, לא קבוע:
ה-SQL המדויק מאחורי כל מספר
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לאורך 8 סליקות שנמסרו באופן מצטבר, ההדפסה המהירה ביותר נחתה 10 ימים לאחר תאריך הסליקה שלה והאיטית ביותר ארכה 26 ימים; החציון הוא 14 ימים — "בן שבועיים" שבכותרת, נמדד ולא משוער.
שימו לב מה השאילתות האלה שוללות. ההיסטוריה של מחסן אינה תיעוד של מהירות הפרסום: ב-2026-03-16 מסד הנתונים הזה טען 197 סליקות בבת אחת, במילוי חוזר יחיד של הארכיון. חותמות הזמן של הקליטה על השורות האלה מתארכות את המילוי החוזר, לא את החשיפה, וכל "איחור" שמחושב מהן הוא חפץ של לוח הזמנים של הטעינה שלנו. רק סליקות שהגיעו אחת-אחת, לאחר שהארכיון היה במקומו, מודדות את הצינור האמיתי — אלו הן השורות שלעיל.
היכן עומד המחזור כעת
קל להבחין בפיגור דרך הפער עצמו: בכל רגע נתון קיים תאריך סליקה שכבר חלף וטרם פורסם. לוח זה הוא הקבלה החיה.
ה-SQL המדויק מאחורי כל מספר
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נתון הריבית השורט העדכני ביותר בתיק הוא סליקת 2026-06-30, המכסה 22207 ניירות ערך ונמסר 11 ימים לאחר מעשה. הסליקה הבאה במחזור מציגה 0 שורות: היא טרם פורסמה, ובהתחשב בפיגורים שנמדדו לעיל הדבר תקין לחלוטין. עמודה זו מאופסת לאפס בכוונה. כאשר הנתון נוחת, האיפוס מתבטל ודף זה מוחזק לצורך עדכון במקום להגיש בשקט משפט לא מעודכן – אותו מנגנון התראה שסיכום יוני נשא בתוכו, מחזור אחד קדימה.
בינתיים, קובץ נפח השורט היומי פורסם 12 פעמים מאז אותו תאריך סליקה, כשהיום הטרי ביותר שלו חדש ב-17 ימים מתמונת מצב הריבית השורט העדכנית ביותר. שני מערכי נתונים של FINRA, שני שעונים שונים.
מה זז בזמן שהנתונים עוד בצנרת
לפיגור יש משמעות רק אם המחירים נעים בתוכו. והם אכן נעים. הפאנל הזה לוקח את הנתון המעודכן האחרון, ואז מודד את שער הסגירה של כל מניה במסחר הרגיל בתאריך הקובע מול שער הסגירה שלה ביום שבו הקובץ הגיע בפועל.
ה-SQL המדויק מאחורי כל מספר
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החלון נמשך 8 ימי מסחר. התזוזה הרחבה ביותר מבין החמישה הייתה של MU, שעלתה מ-$1151.01 בסגירה של התאריך הקובע ל-$978.69 ביום שבו נתון השורט התפרסם — שינוי של -15% בתקופה שבה פוזיציית השורט המדווחת הייתה, מעצם הגדרתה, קפואה על 31.7 מיליון מניות. הצרה ביותר, GME, עדיין זזה -1.9%.
זהו התוכן המעשי של הפיגור. כל כותרת שמדווחת על "שורט באינטרסט במניה X" מתארת את הפוזיציה נכון למועד הקובע האחרון — כל מה שקרה בחלון שלמעלה בלתי נראה לה. השורטיסטים אולי כיסו תוך כדי עליות או הוסיפו תוך כדי ירידות; המספר אינו יכול לומר, ולא יאמר עד לנתון הבא.
ימים לכיסוי, מחושבים עם מונה שאינו עדכני
ימים לכיסוי — מניות בשורט חלקי מחזור יומי ממוצע — הוא היחס שרוב הקוראים פוגשים בפועל, והוא יורש את חוסר העדכניות פעמיים: מונה שנקבע בתאריך הסליקה, ומכנה של מחזור שהקובץ עצמו חישב לפני שבועות. GameStop הוא המקרה הברור ביותר, משום שהוא גם שם מוכר וגם אחד הניירות הנזילים והצפופים יותר.
ה-SQL המדויק מאחורי כל מספר
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)קראו את השורה משמאל לימין. בסליקה של 2026-06-30, GameStop נשא 55.9 מיליון מניות בשורט. הקובץ מצמיד לכך מחזור יומי ממוצע של 5.2 מיליון מניות ומדווח על 10.75 ימים לכיסוי — המספר שסורק מניות מראה לכם.
כעת החליפו את המכנה במציאות. במהלך 7 ימי המסחר הרגילים שהתקיימו בעוד הנתון עוד היה בצנרת, GameStop רשם ממוצע של 3.09 מיליון מניות ביום בקלטת המאוחדת. אותה פוזיציית שורט מעל מחזור זה מסתכמת ב-18.08 ימים — 7.33 ימים מהיחס שפורסם, כשהמונה נותר זהה. רק הנחת המחזור השתנתה. התייחסו לימים לכיסוי כיחס המתוארך בתאריך מסוים, הבנוי משני רכיבים מתוארכים, לא כמדד חי לזמן שייקח לסגור פוזיציה.
שורט סקוויז: המקום שבו הפיגור באמת נושך
הסיבה שרוב האנשים מחפשים את השאלה הזו מלכתחילה היא הסקוויז. בסקוויז, פוזיציית השורט היא הסיפור – וזו בדיוק הכמות שאיש אינו יכול לראות בזמן אמת. גיימסטופ בתחילת 2021 היא ההמחשה מספר הלימוד. העמודות למטה מסמנות את שער הסגירה במסחר הרגיל של כל סליקה ואת שער הסגירה שמונה סשנים מאוחר יותר, המייצגים את יעד ההפצה של FINRA של כשמונה ימי עסקים.
ה-SQL המדויק מאחורי כל מספר
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עקבו אחר סליקת 2021-01-15. היא רשמה 61.8 מיליון מניות בשורט כשהמניה בשער $35.49. שמונה סשנים מאוחר יותר – בערך כשנתון כזה מגיע לציבור – גיימסטופ נסגרה ב-$197.44, מהלך של 456.3%. כל מי שקרא את נתון הריבית הקצרה ביום פרסומו קרא תיאור של מניה שכבר לא התקיימה באותו מחיר.
הנתון הבא הופך את המלכודת. סליקת 2021-01-29 רשמה 21.4 מיליון מניות בשורט – רוב הפוזיציה נעלמה, כשהמניה ב-$328.24. שמונה סשנים מאוחר יותר היא הייתה ב-$51.19, -84.4%. הכיסוי כבר התרחש לפני שהקובץ שהראה אותו היה ציבורי. שני חצאי הסקוויז – ההצטופפות והפתיחה – נחשפו לאחר מעשה.
בת הדודה היומית, ומה שהיא אינה מספרת
FINRA אכן מפרסמת משהו מדי יום: נפח שורט, החלק מנפח המסחר היומי המדווח המסומן כביצועי מכירה בחסר, למחרת בבוקר. זהו נתון כמעט בזמן אמת, וזוהי מדידה שונה. נפח שורט סופר תזרים מסחר — שחלק ניכר ממנו הוא גידור של עושי שוק שמאוזן עד הסגירה — לא פוזיציות מוחזקות. מניה יכולה להדפיס נפח שורט גבוה מדי יום במשך שבוע בעוד שהשורט אינטרסט שלה אינו זז. ההבדל בין שני מערכי הנתונים הוא ההבדל בין התנועה על הכביש לבין המכוניות החונות בסופו; שני הקבצים מתוארים כאן בפירוט.
אין נתון שורט אינטרסט יומי מפורסם בארה"ב. ספקים מוכרים אומדנים יומיים המבוססים על מודלים מנתוני השאלת ניירות ערך ותזרים; אלו מודלים, לא גילויים. הנתון המגולה קיים פעמיים בחודש, והוא מגיע באיחור.
שאלות נפוצות
מדוע נתוני השורט בני שבועיים?
ברוקרים מצלמים את פוזיציות השורט רק במועדי הסליקה הדו-חודשיים של FINRA, מגישים את הסיכומים כעבור ימי עסקים ספורים, ו-FINRA מפיצה את הקובץ המרוכז כשמונה ימי עסקים לאחר מועד הסליקה. לאורך הסליקות שמסד נתונים זה קיבל כמשלוחים חיים, ארך הצינור המלא 10 עד 26 ימים, עם חציון של 14 ימים.
כיצד מחושבת ומדווחת ריבית השורט על ידי הברוקרים?
כל ברוקר-דילר סופר את המניות המוחזקות בשורט בחשבונות הלקוחות והפירמה שלו נכון למועד הסליקה, מצרף אותן לפי נייר ערך, ומגיש את הסכום הכולל ל-FINRA. FINRA מסכמת את הדיווחים מכל החברות החברות למספר אחד לנייר ערך — 22207 מהן בקובץ 2026-06-30. זהו מניין רגולטורי של פוזיציות, לא ספירה של עסקאות.
האם מחזור הדיווח שונה עבור מניות NYSE, Nasdaq או OTC?
לא. אותו לוח סליקה דו-חודשי ואותו מחזור ריכוז והפצה חלים על כל זירות המסחר בארה"ב, והבורסות מפרסמות מחדש מתוך קובץ FINRA במקום להפיק ספירה משלהן. זירת הרישום של מניה אינה משנה דבר לגבי גיל מספר ריבית השורט שלה.
מהו אחוז ריבית שורט טוב או רע?
אין סף שהופך מניה להחזקה טובה או רעה, וקריאה גבוהה אינה תחזית. מה שמדדי צפיפות כן מתארים הוא עד כמה פוזיציית שורט גדולה ביחס לנפח הסחיר של המניה: הקובץ האחרון של GameStop נושא 10.75 ימי כיסוי מדווחים, לעומת ספרות בודדות נמוכות עבור רוב השמות הסחירים — ראו מובילי הצפיפות הנוכחיים לפיזור.
האם פיגור הדיווח משנה לסחיטות שורט?
זהו המקום שבו הפיגור משנה ביותר. בסליקת 2021-01-15 של GameStop, נעה המניה 456.3% בין המדידה לנקודת שמונת המושבים שמקורבת לפרסום — ועד לקובץ 2021-01-29 כבר ירדה פוזיציית השורט ל-21.4 מיליון מניות. צפיפות סחיטה מאושרת בנתונים ציבוריים רק לאחר האירוע.
כל פאנל לעיל מגיע עם ה-SQL שהפיק אותו — הרחב כל אחד כדי לבקר את המספרים, או הרץ את לוח הסליקה במסוף Strasmore.