Apple's basic and diluted share counts, quarter by quarter
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-08-22, from Market Cap and Which Share Count It Uses.
| quarter_end_date | quarter_label | basic_shares_mm | diluted_shares_mm |
|---|---|---|---|
| 2021-03-27 | Mar 2021 | 16753 | 16929 |
| 2021-06-26 | Jun 2021 | 16629 | 16782 |
| 2021-09-25 | Sep 2021 | 16701 | 16865 |
| 2021-12-25 | Dec 2021 | 16392 | 16519 |
| 2022-03-26 | Mar 2022 | 16279 | 16403 |
| 2022-06-25 | Jun 2022 | 16163 | 16262 |
| 2022-09-24 | Sep 2022 | 16216 | 16326 |
| 2022-12-31 | Dec 2022 | 15893 | 15956 |
| 2023-04-01 | Apr 2023 | 15787 | 15847 |
| 2023-07-01 | Jul 2023 | 15698 | 15775 |
| 2023-09-30 | Sep 2023 | 15744 | 15813 |
| 2023-12-30 | Dec 2023 | 15510 | 15577 |
| 2024-03-30 | Mar 2024 | 15406 | 15465 |
| 2024-06-29 | Jun 2024 | 15288 | 15348 |
| 2024-09-28 | Sep 2024 | 15344 | 15408 |
| 2024-12-28 | Dec 2024 | 15082 | 15151 |
| 2025-03-29 | Mar 2025 | 14994 | 15056 |
| 2025-06-28 | Jun 2025 | 14903 | 14948 |
| 2025-09-27 | Sep 2025 | 14948 | 15005 |
| 2025-12-27 | Dec 2025 | 14748 | 14810 |
- Rows × columns
- 20 × 4
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
quarter_end_date |
date | 2021-03-27 to 2025-12-27 | |
quarter_label |
text | 20 distinct values (Apr 2023, Dec 2021, Dec 2022…) | |
basic_shares_mm |
number | 14,748 to 16,753 | count |
diluted_shares_mm |
number | 14,810 to 16,929 | count |
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.
the exact SQL behind every number
SELECT
toString(period_end) AS quarter_end_date,
formatDateTime(period_end, '%b %Y') AS quarter_label,
round(argMax(toFloat64(basic_shares_outstanding), filing_date) / 1e6) AS basic_shares_mm,
round(argMax(toFloat64(diluted_shares_outstanding), filing_date) / 1e6) AS diluted_shares_mm
FROM global_markets.stocks_income_statements
WHERE has(tickers, 'AAPL')
AND timeframe = 'quarterly'
AND period_end >= '2021-01-01'
AND basic_shares_outstanding > 0
AND diluted_shares_outstanding > 0
GROUP BY period_end
ORDER BY period_end
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisMarket Cap and Which Share Count It Uses
Days since the period each filed share count covers
ranking 8×3
→
The recovered share count against the filed diluted count
table 5×6
→
Dual class tickers and the market cap printed against each
ranking 4×4
→
RDDT daily close and volume around its 180 day mark, Aug to Oct 2024
series 53×3
→
SPCX regular sessions since June 2026: closing price and share volume
series 49×4
→
Conagra (CAG): price, quarterly dividend, and yield, month-end 2023-07 to 2026-06
series 36×5
→
See all 2,173 queries →