STRASMORE/EXPLORE 2,830 QUERIES

berkshire_reported_vs_cash

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-30, from warren-buffett-index-put-trade.

as of series 10×4read in context →
berkshire_reported_vs_cash — 10 rows by 4 columns, computed from US exchange, SIP and OPRA data.
year_end_dateyear_labelreported_net_income_bnoperating_cash_flow_bn
2015-12-31201524.4131.49
2016-12-31201624.4332.65
2017-12-31201745.3545.73
2018-12-3120184.3237.4
2019-12-31201981.7938.69
2020-12-31202043.2539.77
2021-12-31202190.9539.43
2022-12-312022-2237.35
2023-12-31202397.1549.2
2024-12-31202489.5630.59
Rows × columns
10 × 4
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for berkshire_reported_vs_cash, derived from the stored result.
ColumnTypeRangeNotes
year_end_date date 2015-12-31 to 2024-12-31
year_label text 10 distinct values (2015, 2016, 2017…)
reported_net_income_bn number -22 to 97.15
operating_cash_flow_bn number 30.59 to 49.2

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

SELECT
    toString(period_end)                                                                  AS year_end_date,
    toString(toYear(period_end))                                                          AS year_label,
    round(argMax(net_income, (filing_date, period_end)) / 1e9, 2)                         AS reported_net_income_bn,
    round(argMax(net_cash_from_operating_activities, (filing_date, period_end)) / 1e9, 2) AS operating_cash_flow_bn
FROM global_markets.stocks_cash_flow_statements
WHERE hasAny(tickers, ['BRK.A', 'BRK.B', 'BRK-A', 'BRK-B'])
  AND timeframe = 'annual'
  AND period_end >= '2015-01-01'
GROUP BY period_end
ORDER BY period_end
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysiswarren-buffett-index-put-trade
index_paths ranking 22×3 → fifteen_year_windows ranking 4×4 → The 2s10s spread by month, full history series 604×5 → One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 → The 5s30s spread month by month, with both legs series 241×4 → 5s30s and 2s10s, monthly averages over 20 years series 241×3 → See all 2,830 queries →