Strasmore Research
Deep dive investigation Matt ConnorBy Matt Connor · Updated 2026-07-25

Tesla 10-K wey show $1.5B bitcoin buy for Feb 8, 2021

Di exact filing and session tape from dat day. See how bitcoin stocks rally, why di options market no send, and di 2022 exit wey carry most of di coins comot.

For morning of February 8, 2021, Tesla come out say dem don buy $1.5 billion of bitcoin and dem plan to accept am as payment — no be for press release or one flashy 8-K, but inside di risk-factors-and-everything-else text of dia annual report. Na di moment wey corporate-treasury crypto move from meme to filed fact. Dis page dey capture di whole story: di 10-K, di session, di crypto-adjacent stocks wey move by order of magnitude more, di options tape wey no send, and di 2022 disclosure wey send most of di bitcoin back outside. Every number na stored query; expand any panel for di SQL.

Di filing wey dem stamp

QueryTesla SEC filing wey dem date February 8, 2021 — plus di year-end cash wey dem use buy am
The exact SQL behind every number
WITH (
    SELECT round(toFloat64(cash_and_equivalents) / 1e9, 1)
    FROM global_markets.stocks_balance_sheets
    WHERE has(tickers, 'TSLA') AND timeframe = 'annual' AND fiscal_year = 2020
    LIMIT 1
) AS yearend_cash_bn
SELECT
    count() AS tesla_filings_that_day,
    countIf(form_type = '10-K') AS annual_reports,
    any(form_type) AS form_type_on_file,
    yearend_cash_bn AS fy2020_cash_bn,
    round(100 * 1.5 / yearend_cash_bn, 1) AS purchase_pct_of_cash
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2021-02-08'
  AND (issuer_name ILIKE '%tesla%' OR cik = '0001318605')

One filing for dat date: na 10-K — di annual report. Di bitcoin gist bin dey inside di 10-K risk factors and wetin happen after di period end, one detail wey matter for how di news spread: annual reports get plenty plenty pages, and market reaction start as people dey find di paragraph, no be for one planned headline time. Di SEC filings guide dey explain wetin each form dey do — and why na inside 10-K dem dey hide di real tori.

Di filing still talk di reason, with treasury language: Tesla don update im investment policy for January 2021 dey find "more flexibility to further diversify and maximize returns" on cash wey e no need for operating liquidity, and under dat policy e "invested an aggregate $1.50 billion in bitcoin" — add say e dey expect "to begin accepting bitcoin as a form of payment for our products in the near future." One paragraph, two commitments — one treasury position and one payments experiment — each one get im own aftermath.

Wetin Tesla really buy

Di 10-K show dollars, no be coins: $1.50 billion, and no coin count dey anywhere inside di filing. Every "Tesla buy roughly dis many bitcoins" figure wey you don read na outside estimate — dem just divide di dollar amount by di bitcoin price for dat window — and since bitcoin own market dey outside dis warehouse licensed universe, dis page no go manufacture one. Wetin di filing record fit support na scale: against di $19.4 billion of cash and equivalents wey dey Tesla year-end 2020 balance sheet (wey dem receipt above), di purchase come be 7.7% — na real allocation, e no near bet-di-company number at all.

Di day, for one row

QueryTSLA for February 8, 2021 — di session wey dem disclose am, receipted
The exact SQL behind every number
WITH
    (
        SELECT argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'TSLA'
          AND window_start >= toDateTime('2021-02-05 00:00:00') AND window_start < toDateTime('2021-02-08 04:00:00')
    ) AS prior_rth_close
SELECT
    round(prior_rth_close, 2) AS prior_close,
    round(toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_open,
    round((toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS gap_pct,
    round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_low,
    formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 'America/New_York'), '%H:%i') AS low_et,
    round(maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_high,
    round(toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_close,
    round((toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS day_change_pct,
    round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / prior_rth_close - 1) * 100, 1) AS low_vs_prior_pct,
    round(toFloat64(sum(volume)) / 1e6, 1) AS day_shares_m,
    countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth_minute_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'TSLA'
  AND window_start >= toDateTime('2021-02-08 04:00:00') AND window_start < toDateTime('2021-02-08 23:59:00')

Na wetin di tape tok for quiet be dis: TSLA open for $869.67 (+2% from Friday), e touch $877.77, come close for $863.3+1.3% for di day, on top 19.7 million shares. Na famous market moment, and na ordinary session for 2021-vintage TSLA, one stock wey don spend months dey move plenty percent without any news at all. Di asset wey really move anyhow dat day na bitcoin itself, wey repricing double digits — but dat market dey outside di licensed universe of dis warehouse, so dis page go stick to wetin our tape fit verify.

"Ordinary" na measurement, no be vibe

Dat word — ordinary — na claim, so dis na im baseline: every TSLA session from September 2020 (di first full month afta im 5-for-1 stock split, so all closes dey on di same as-traded basis) reach di Friday before di disclosure.

QueryFebruary 8 big pass for TSLA? Im own five months before as yardstick
The exact SQL behind every number
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS close_usd
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'TSLA'
      AND window_start >= toDateTime('2020-08-31 00:00:00') AND window_start < toDateTime('2021-02-09 01:00:00')
    GROUP BY et_date
),
chg AS (
    SELECT
        et_date,
        close_usd,
        lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
    FROM daily
)
SELECT
    countIf(et_date >= toDate('2020-09-01') AND et_date < toDate('2021-02-08') AND prev_close > 0) AS baseline_sessions,
    round(quantileDeterministicIf(0.5)(abs(close_usd / prev_close - 1) * 100, toUInt32(et_date), et_date >= toDate('2020-09-01') AND et_date < toDate('2021-02-08') AND prev_close > 0), 1) AS median_abs_move_pct,
    countIf(et_date >= toDate('2020-09-01') AND et_date < toDate('2021-02-08') AND prev_close > 0 AND abs(close_usd / prev_close - 1) > abs((SELECT close_usd / prev_close - 1 FROM chg WHERE et_date = toDate('2021-02-08')))) AS sessions_moving_more,
    round(anyIf((close_usd / prev_close - 1) * 100, et_date = toDate('2021-02-08')), 1) AS feb8_change_pct
FROM chg
HAVING countIf(et_date >= toDate('2020-09-01') AND et_date < toDate('2021-02-08') AND prev_close > 0) > 0

Across dose 109 sessions, di median daily move na 2.5% for absolute terms — and 80 of di 109 move pass di bitcoin day own wey be +1.3%. One $1.5 billion treasury surprise show face as one below-median day for Tesla own tape.

How di session take be

QueryTSLA by half-hour — February 8, 2021 regular session
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(toFloat64(argMax(close, window_start)), 2) AS bucket_close,
    round(min(toFloat64(low)), 2) AS bucket_low,
    round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'TSLA'
  AND window_start >= toDateTime('2021-02-08 04:00:00') AND window_start < toDateTime('2021-02-08 23:59:00')
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY et_time
ORDER BY et_time

Di strength show early — di biggest buckets dey for morning as di disclosure dey spread — and afternoon just dey waka sideways inside small range. As event tapes dey go, dis one na wetin "price finish within di hour" be like, e get beta contrast with di overnight NVDA gap wey market don close before reaction fit happen, or di GME halt cascade wey di reaction no gree make market settle. Same era, three different event mechanics.

Di sympathy tape: wia di move really go

TSLA na wrong place to watch dis event. Di right place na di set of stocks wey dia treasury or business don already dey live on bitcoin — di miners, di corporate holders, di payment apps wey get crypto rails. Same headline, very different tapes:

QueryFebruary 8, 2021 across di bitcoin-adjacent names — close-to-close change, ET regular hours
The exact SQL behind every number
SELECT
    ticker,
    round((event_close / prior_close - 1) * 100, 1) AS change_pct
FROM (
    SELECT
        ticker,
        argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2021-02-05') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS prior_close,
        argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2021-02-08') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS event_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MSTR', 'RIOT', 'MARA', 'SQ', 'PYPL', 'SPY')
      AND window_start >= toDateTime('2021-02-05 00:00:00') AND window_start < toDateTime('2021-02-09 01:00:00')
    GROUP BY ticker
)
ORDER BY change_pct DESC

MARA close +42.5% and RIOT +40.2% — di two bitcoin miners for di set, dem repricing an order of magnitude more dan TSLA itself. MSTR, di software company wey don turn im treasury into bitcoin vehicle di summer before, gain 29.2%. Di payment platforms wey get crypto rails, SQ and PYPL, add single digits, and di broad-market ETF SPY close +0.7%. Di pattern clean: di session repriced bitcoin exposure, anywhere e dey live — and Tesla, wey im new position na 7.7% of im cash, get di smallest of am.

Di options tape no gree shake sef

Di crowd wey dey find leverage, dem show face for options market? Trade records for here stretch back to 2014, so di panel wey dey below compare February 8 against di twenty sessions wey don pass — dat baseline include di late-January craze weeks, na serious yardstick:

QueryTSLA options for February 8, 2021 vs di prior 20 sessions — contracts and put/call mix
The exact SQL behind every number
WITH daily AS (
    SELECT
        toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
        toFloat64(sum(size)) AS contracts,
        toFloat64(sumIf(size, option_type = 'P')) AS put_contracts,
        toFloat64(sumIf(size, option_type = 'C')) AS call_contracts
    FROM global_markets.options_trades
    WHERE ticker LIKE 'O:TSLA2%'
      AND sip_timestamp >= toDateTime('2021-01-08 00:00:00') AND sip_timestamp < toDateTime('2021-02-09 01:00:00')
    GROUP BY session
)
SELECT
    round(maxIf(contracts, session = toDate('2021-02-08')) / 1e6, 2) AS event_contracts_m,
    round(avgIf(contracts, session < toDate('2021-02-08')) / 1e6, 2) AS prior_avg_contracts_m,
    round(maxIf(contracts, session = toDate('2021-02-08')) / avgIf(contracts, session < toDate('2021-02-08')), 2) AS volume_multiple,
    countIf(session < toDate('2021-02-08')) AS baseline_sessions,
    round(maxIf(put_contracts, session = toDate('2021-02-08')) / maxIf(call_contracts, session = toDate('2021-02-08')), 2) AS event_put_call,
    round(sumIf(put_contracts, session < toDate('2021-02-08')) / sumIf(call_contracts, session < toDate('2021-02-08')), 2) AS baseline_put_call,
    round(sumIf(put_contracts, session < toDate('2021-02-08')) / sumIf(call_contracts, session < toDate('2021-02-08')) - maxIf(put_contracts, session = toDate('2021-02-08')) / maxIf(call_contracts, session = toDate('2021-02-08')), 2) AS callward_shift
FROM daily
HAVING countIf(session = toDate('2021-02-08')) > 0 AND countIf(session < toDate('2021-02-08')) > 0

0.85 million TSLA option contracts trade for dat day — 0.78x di prior-month average of 1.09 million. E no be explosion; na below-average day even by contract count. Di mix bin really lean: di put/call ratio (put contracts divide by call contracts, na rough gauge of which direction traders dey pay for) print 0.52 against 0.7 across di baseline — na call-ward tilt of 0.18. Relatively more upside interest dan di prior month norm, on volume wey no special. Equity tape, options tape, same verdict: dem note am, absorb am, move on.

Di move hold?

Wen pesin do deep dive, e get one question wey e suppose ask: di +1.3% na start of something? Make we check di day wey dem announce am plus di twenty sessions wey follow, each close wey dem index to February 8:

QueryTSLA next 20 sessions — every close indexed to di February 8, 2021 close
The exact SQL behind every number
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_usd
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'TSLA'
      AND window_start >= toDateTime('2021-02-08 00:00:00') AND window_start < toDateTime('2021-03-11 01:00:00')
    GROUP BY et_date
)
SELECT
    toString(et_date) AS session,
    close_usd,
    round((close_usd / (SELECT close_usd FROM daily WHERE et_date = toDate('2021-02-08')) - 1) * 100, 1) AS pct_from_feb8
FROM daily
ORDER BY et_date ASC
LIMIT 21

No. TSLA no ever close back above di announcement-day close inside dis window. Five sessions later (2021-02-16) di running change na -7.8%; by 2021-03-08 e don turn to -34.8%, and one sharp bounce for di window last row still leave am at -22%. All dis one no be statement about bitcoin — di same period harsh for di high-multiple growth names of dat time generally, and February 8 dey near di top of TSLA early-2021 range. Single-day event study go carry any regime wey e land inside; to dey yarn dis chart as "di bitcoin buy top-ticked Tesla" na to take coincidence as mechanism.

Cars wey dem fit buy with bitcoin, di U-turn, and di exit for 2022

Di second promise wey di 10-K make — to accept bitcoin as payment — get full story with dates, and na dis part many "Tesla bitcoin" searches really dey about:

  1. February 8, 2021 — di 10-K show say dem buy $1.5 billion worth of bitcoin and dem plan to accept bitcoin as payment (di receipt dey for top of dis page).
  2. March 24, 2021 — Musk announce say US customers fit buy Tesla with bitcoin. Di experiment start to dey work.
  3. April 26, 2021 — with first-quarter results, Tesla show say dem sell "approximately 10%" of dia bitcoin holdings, wey dem describe dat time as liquidity demonstration — na figure wey dem quote from di company own disclosure text, no be warehouse query.
  4. May 12, 2021 — roughly seven weeks after payments start, Tesla pause vehicle purchases with bitcoin, dem talk say na because of di fossil-fuel energy mix wey mining dey use. Di treasury position still remain.
  5. July 20, 2022 — Tesla second-quarter update show di big exit: dem "convert approximately 75% of its bitcoin holdings to fiat currency," and add "$936 million of cash" to di balance sheet — na figures wey dem quote from di company own filing text; dis warehouse no get any bitcoin-holdings column to calculate dem separately.

Dat last disclosure leave di same kind paper-and-tape trail like di first one, so e get di same treatment:

QueryDi 2022 exit: di July 20 disclosure 8-K wey dey on file, and TSLA next session
The exact SQL behind every number
WITH
    (
        SELECT round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'TSLA'
          AND window_start >= toDateTime('2022-07-20 00:00:00') AND window_start < toDateTime('2022-07-21 04:00:00')
    ) AS jul20_close,
    (
        SELECT count()
        FROM global_markets.stocks_sec_edgar_index
        WHERE cik = '0001318605' AND filing_date = '2022-07-20' AND form_type = '8-K'
    ) AS eightk_count
SELECT
    eightk_count AS disclosure_8k_on_file,
    jul20_close AS prior_close,
    round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS jul21_close,
    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / jul20_close - 1) * 100, 1) AS next_session_change_pct,
    round(toFloat64(sum(volume)) / 1e6, 1) AS jul21_shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'TSLA'
  AND window_start >= toDateTime('2022-07-21 00:00:00') AND window_start < toDateTime('2022-07-21 23:59:00')

Di disclosure 8-K dey for file (1 filing wey dem date July 20, 2022 for our EDGAR records), and di release land after dat day close. Di next session TSLA rise 9.8%, from $742.28 to $815.21 on 46.5 million shares. One honest caveat before anybody store dat one as "di market happy about di bitcoin sale": di same release carry Tesla full second-quarter results, and di bitcoin line na just one paragraph inside. For both ends, di tape no fit isolate bitcoin — di entrance coincide with +1.3% session, di exit with +9.8% session wey get whole earnings report inside.

Wetin dis day dey teach

Two mechanics dey. First, where dem put one disclosure dey shape how e price: one 10-K paragraph dey spread through di market over hours as dem dey read am, versus di step-function of one scheduled announcement — na one reason di morning buckets dey carry di move. Second, di significance of one event and di size of di stock move for di day na different tins: dis session modest percentage dey hide im consequence, wey unfold over years as di corporate-bitcoin question turn permanent treasury debate — and as di position own exit, wey dem receipt above, close di loop for di same paper trail. Historic days no always look historic for tape; di filing record often be di better receipt.

One scale lesson still dey for di pairing of di two numbers wey involve: $1.5 billion na 7.7% of Tesla year-end cash and one rounding error against im market value, yet di disclosure re-anchor one whole policy debate — treasurers, auditors, and boards suddenly need one bitcoin opinion. Materiality for filings dem dey measure am for dollars; materiality for markets dem dey measure am for precedent. Di gap between those two measures na where dis day dey live.

Tesla bitcoin FAQ

How Tesla take announce say dem don buy bitcoin?

Inside im annual report — di 10-K wey dem file for February 8, 2021, wey dem collect from di EDGAR index — e show say dem buy $1.5 billion worth and dem get plan to accept bitcoin as payment.

How much bitcoin Tesla buy?

Na $1.5 billion worth. Di 10-K show only di dollar amount, e no show di coin count; di coin figures wey plenty people dey quote na outside estimates wey dem divide dat dollar amount by early-2021 bitcoin prices.

Wetin happen to Tesla stock wen dem announce di bitcoin purchase?

E rise 1.3% dat session — na below-median day if you check Tesla own for di five months wey pass, wey 80 of 109 sessions move pass am. Di big moves for dat day na for bitcoin-adjacent stocks like di miners, wey dem collect.

Tesla ever accept bitcoin for car purchases?

Yes, for small time. Bitcoin checkout for US customers start for March 24, 2021, and Tesla suspend am for May 12, 2021 inside one statement wey talk about di fossil-fuel energy mix of bitcoin mining — e be like seven weeks of live bitcoin payments.

Tesla still hold im bitcoin?

Tesla show for July 20, 2022 say dem don convert like 75% of im bitcoin to fiat currency, and dem don adjust di rest since dat time. Di current answer dey where di original one dey: inside di company most recent 10-Q or 10-K.


Every panel wey dey up na stored, versioned query over di historical tape — expand di SQL to see each measurement. You want feel dis day instead of read am? E be one of di playable scenarios inside di Strasmore Labs trading simulator.

#market history#tsla#bitcoin#sec filings#corporate treasury