por qué el short interest tiene retraso
Análisis del ciclo de reporte de FINRA y el desfase en los datos de short interest. Entienda el impacto del spread y los días to cover en el mercado.
Los datos de short interest siempre están desactualizados por una razón estructural: no es una transmisión en tiempo real. Los brokers toman una captura de las acciones vendidas en corto en sus cuentas en las fechas de liquidación programadas por FINRA —dos veces al mes, a mitad de mes y al cierre de mes—; luego, presentan esos totales ante FINRA, que compila el reporte de cada firma miembro y publica el agregado aproximadamente ocho días hábiles después. Si se suma el proceso del proveedor y la base de datos para llevar el archivo a su pantalla, el número de short interest más reciente disponible en cualquier día describe el posicionamiento tal como estaba de una a cuatro semanas atrás. Esta página mide ese desfase en lugar de afirmarlo.
Cómo ocurre realmente el retraso en el reporte
El ciclo tiene cuatro pasos, y cada uno añade días.
- La fecha de liquidación. FINRA publica un cronograma de fechas de liquidación: una a mediados de mes y otra al cierre de mes. En cada una, cada broker-dealer registra las posiciones cortas mantenidas en sus cuentas de clientes y de la firma. Estas son fechas de liquidación, no fechas de operación: bajo la liquidación T+1, una operación realizada el lunes se liquida el martes, por lo que las posiciones contabilizadas en una fecha de liquidación son aquellas cuyas operaciones se liquidaron para entonces.
- El plazo de reporte. Cada firma miembro presenta sus totales de posiciones cortas por valor ante FINRA en los siguientes dos días hábiles. Nada es público en esta etapa; es una presentación regulatoria, no un feed de datos de mercado.
- Compilación. FINRA suma miles de reportes a nivel de firma para cada valor y ensambla un solo archivo: un único número por valor por fecha de liquidación; sin historial intradía, sin detalle de sede de negociación ni desglose por firma.
- Diseminación. El archivo se hace público aproximadamente ocho días hábiles después de la fecha de liquidación que describe. Luego, los proveedores lo extraen, las bolsas lo republican y los almacenes de datos como el que sustenta esta página lo ingieren.
Nadie retiene el número. El retraso es la suma de la ventana de recolección, la ventana de compilación y el salto de distribución; cada paso es un proceso por lotes basado en un calendario, no un flujo continuo.
¿Cuál es el retraso en días medidos?
Aquí se presenta cada fecha de liquidación recibida por este almacén como una entrega incremental: la fecha de liquidación en un lado y el día en que las filas aparecieron aquí en el otro.
El SQL exacto detrás de cada cifra
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_dateLa liquidación más reciente en archivo, 2026-06-30, llegó aquí el 2026-07-11 — 11 días después de que se registraran las posiciones que describe. La anterior tardó 16 días. En toda la serie, el patrón es una banda, no una constante:
El SQL exacto detrás de cada cifra
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 organicEn 8 liquidaciones entregadas incrementalmente, el registro más rápido llegó 10 días después de su fecha de liquidación y el más lento tardó 26 días; la mediana es de 14 días — las "dos semanas de antigüedad" del título, medidas en lugar de asumidas.
Observe qué excluyen esas consultas. El historial de un almacén no es un registro de la velocidad de publicación: el 2026-03-16 esta base de datos cargó 197 liquidaciones a la vez, en un único backfill del archivo. Las marcas de tiempo de ingesta en esas filas datan el backfill, no la divulgación, y cualquier "lag" calculado a partir de ellas es un artefacto de nuestro cronograma de carga. Solo las liquidaciones que llegaron una a una, después de que el archivo estuviera establecido, miden el flujo real — esas son las filas de arriba.
Estado actual del ciclo
El desfase es más evidente en la brecha misma: en cualquier momento existe una fecha de liquidación que ya ocurrió pero que aún no se ha publicado. Este panel es el registro en tiempo real.
El SQL exacto detrás de cada cifra
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_fileEl reporte de interés corto más reciente disponible es la liquidación del 2026-06-30, que cubre 22207 valores y se entregó 11 días después del evento. La siguiente liquidación en el ciclo muestra 0 filas: aún no se ha publicado, y con los desfases medidos anteriormente, esto es completamente normal. Esa columna está limitada a cero deliberadamente. Cuando el reporte se publica, el límite se activa y esta página se retiene para una actualización en lugar de mostrar datos obsoletos; es el mismo mecanismo que el resumen de junio presentó, con un ciclo de diferencia.
Mientras tanto, el archivo diario de volumen de posiciones cortas se ha publicado 12 veces desde esa fecha de liquidación; su día más reciente es 17 días más nuevo que la captura de interés corto más reciente. Dos conjuntos de datos de FINRA, dos cronologías distintas.
Qué se mueve mientras el reporte está en proceso
El desfase solo es relevante si los precios se mueven durante ese periodo. Y lo hacen. Este panel toma el último settlement y compara el cierre de la sesión regular de cada activo en la fecha del settlement contra su cierre el día en que el archivo llegó efectivamente.
El SQL exacto detrás de cada cifra
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 ASCEl periodo abarcó 8 sesiones de negociación. El activo con mayor movimiento de los cinco fue MU, que pasó de $1151.01 al cierre del settlement a $978.69 el día en que su reporte de short interest estuvo disponible; un cambio de -15% durante un periodo en el que la posición corta divulgada estaba, por definición, congelada en 31.7 millones de acciones. El de menor movimiento, GME, aun así varió un -1.9%.
Ese es el contenido práctico del desfase. Cualquier titular que reporte el "short interest en X" describe la posición al último settlement; todo lo ocurrido en el periodo anterior es invisible para dicho reporte. Los shorts pueden haber cubierto posiciones ante una subida de precios o haber aumentado su posición ante una caída; la cifra no puede ni dirá nada al respecto hasta el próximo reporte.
Days to cover, calculado con un numerador desactualizado
Days to cover —acciones en corto divididas por el volumen diario promedio— es la relación que la mayoría de los lectores utiliza, y hereda la desactualización dos veces: un numerador fijado en la fecha de liquidación y un denominador de volumen que el archivo mismo calculó hace semanas. GameStop es el caso más claro, ya que es un nombre familiar y uno de los tickers líquidos con mayor volumen de operaciones.
El SQL exacto detrás de cada cifra
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)Lea la fila de izquierda a derecha. Al cierre de 2026-06-30, GameStop tenía 55.9 millones de acciones en corto. El archivo combina esto con un volumen diario promedio de 5.2 millones de acciones y reporta 10.75 days to cover —la cifra que muestra un screener—.
Ahora reemplace el denominador por la realidad. Durante las 7 sesiones regulares que se negociaron mientras la impresión aún estaba en proceso, GameStop promedió 3.09 millones de acciones al día en la cinta consolidada. La misma posición en corto con ese volumen resulta en 18.08 días —7.33 días respecto a la relación publicada, manteniendo el numerador idéntico—. Solo cambió el supuesto de volumen. Considere el days to cover como una relación desactualizada construida a partir de dos datos antiguos, no como una medida en tiempo real de cuánto tardaría una salida de posición.
Short squeezes: donde el retraso realmente afecta
La razón por la que la mayoría busca esta pregunta es el squeeze. En un squeeze, la posición corta es el factor principal, y es precisamente la cantidad que nadie puede ver en tiempo real. GameStop a principios de 2021 es el ejemplo clásico. Las columnas a continuación muestran el cierre de la sesión regular de cada liquidación y el cierre ocho sesiones de negociación después, representando el objetivo de difusión de aproximadamente ocho días hábiles de FINRA.
El SQL exacto detrás de cada cifra
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_dateSiga la liquidación de 2021-01-15. Registró 61.8 millones de acciones en corto con la acción a $35.49. Ocho sesiones después —cerca de cuando una cifra así llega al público— GameStop cerró a $197.44, un movimiento de 456.3%. Cualquiera que leyera esa cifra de short interest el día de su publicación estaba leyendo la descripción de una acción que ya no existía a ese precio.
La siguiente cifra invierte la trampa. La liquidación de 2021-01-29 registró 21.4 millones de acciones en corto —la mayor parte de la posición ya había desaparecido— con la acción a $328.24. Para ocho sesiones después, estaba a $51.19, -84.4%. El covering ya había ocurrido antes de que el archivo que lo mostraba fuera público. Ambas partes del squeeze —la acumulación de posiciones y el cierre de las mismas— se divulgaron después de lo ocurrido.
El dato diario y lo que no revela
FINRA publica algo diariamente: el short volume, que es la proporción del volumen reportado en un día marcada como ejecuciones de ventas en corto, a la mañana siguiente. Es información casi en tiempo real y es una métrica distinta. El short volume mide el flujo de negociación —gran parte del cual es cobertura de market-makers que queda neutral al cierre— y no las posiciones mantenidas. Una acción puede registrar un alto short volume cada día durante una semana mientras su short interest no cambia. La diferencia entre ambos conjuntos de datos es la diferencia entre el tráfico en una carretera y los autos estacionados al final de la misma; ambos archivos se describen aquí en detalle.
En los EE. UU. no existe un número de short interest con divulgación diaria. Los proveedores venden estimaciones diarias modeladas a partir de datos de préstamo de valores y de flujo; son modelos, no divulgaciones oficiales. La cifra oficial se publica dos veces al mes y llega con retraso.
Preguntas frecuentes
¿Por qué los datos de short interest tienen dos semanas de antigüedad?
Los brokers registran las posiciones cortas únicamente en las fechas de liquidación quincenales de FINRA, reportan los totales un par de días hábiles después y FINRA distribuye el archivo compilado aproximadamente ocho días hábiles después de la fecha de liquidación. Entre las liquidaciones recibidas como entregas en vivo, el proceso completo duró entre 10 y 26 días, con una mediana de 14 días.
¿Cómo calculan y reportan el short interest los brokers?
Cada broker-dealer contabiliza las acciones vendidas en corto en las cuentas de sus clientes y de la propia firma a la fecha de liquidación, las agrega por valor y reporta ese total a FINRA. FINRA suma los reportes de todas las firmas miembros en una sola cifra por valor — 22207 de ellos en la impresión 2026-06-30. Es un recuento regulatorio de posiciones, no un conteo de operaciones.
¿Es diferente el ciclo de reporte para acciones de NYSE, Nasdaq o OTC?
No. El mismo cronograma de liquidación quincenal y el mismo ciclo de compilación y distribución se aplican en todos los centros de listado de EE. UU., y las bolsas republican la información desde el archivo de FINRA en lugar de producir su propio conteo. El centro de listado de una acción no cambia la antigüedad de su cifra de short interest.
¿Qué es un porcentaje de short interest bueno o malo?
No existe un umbral que determine si una acción es una buena o mala inversión, y una lectura alta no es un pronóstico. Lo que miden las métricas de crowding es qué tan grande es una posición corta en relación con el volumen negociable de la acción: la última impresión de GameStop presenta 10.75 días para cubrir reportados, frente a dígitos únicos bajos para la mayoría de los nombres líquidos — consulte los líderes actuales en crowding para ver la distribución.
¿Importa el retraso en el reporte para los short squeezes?
Es donde el retraso es más relevante. En la liquidación de GameStop del 2021-01-15, la acción se movió un 456.3% entre la medición y la marca de ocho sesiones que aproxima la publicación — y para la impresión del 2021-01-29 la posición corta ya había caído a 21.4 millones de acciones. El crowding de un squeeze se confirma en los datos públicos solo después del evento.
Cada panel anterior se entrega con el SQL que lo produjo; expanda cualquiera de ellos para auditar los números, o ejecute el calendario de liquidación en la terminal de Strasmore.