STRASMORE/EXPLORE 2,358 QUERIES

aapl_trace

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-18, from stock-split-candidates.

as of series 84×4read in context →
aapl_trace — 84 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthperiod_labelhighest_closelowest_close
2014-01-01Jan 2014557.36499.78
2014-02-01Feb 2014545.99501.53
2014-03-01Mar 2014544.99524.69
2014-04-01Apr 2014594.09517.96
2014-05-01May 2014635.38585.54
2014-06-01Jun 2014647.3590.28
2014-07-01Jul 201499.0293.09
2014-08-01Aug 2014102.594.48
2014-09-01Sep 2014103.397.87
2014-10-01Oct 201410896.26
2014-11-01Nov 2014119108.6
2014-12-01Dec 2014115.93106.75
2015-01-01Jan 2015118.9105.99
2015-02-01Feb 2015133118.63
2015-03-01Mar 2015129.36122.24
2015-04-01Apr 2015132.65124.25
2015-05-01May 2015132.54125.01
2015-06-01Jun 2015130.54124.53
2015-07-01Jul 2015132.07120.07
2015-08-01Aug 2015119.72103.12
2015-09-01Sep 2015116.41107.72
2015-10-01Oct 2015120.53109.5
2015-11-01Nov 2015122.57112.34
2015-12-01Dec 2015119.03105.26
2016-01-01Jan 2016105.3593.42
2016-02-01Feb 201698.1293.7
2016-03-01Mar 2016109.56100.53
2016-04-01Apr 2016112.193.74
2016-05-01May 2016100.4190.34
2016-06-01Jun 201699.6592.04
2016-07-01Jul 2016104.3494.99
2016-08-01Aug 2016109.48104.48
2016-09-01Sep 2016115.57103.13
2016-10-01Oct 2016118.25112.52
2016-11-01Nov 2016111.8105.71
2016-12-01Dec 2016117.26109.11
2017-01-01Jan 2017121.95116.02
2017-02-01Feb 2017137.11128.53
2017-03-01Mar 2017144.12138.68
2017-04-01Apr 2017144.77140.68
2017-05-01May 2017156.1146.53
2017-06-01Jun 2017155.45142.27
2017-07-01Jul 2017153.46142.73
2017-08-01Aug 2017164150.05
2017-09-01Sep 2017164.05150.55
2017-10-01Oct 2017169.04153.48
2017-11-01Nov 2017176.24166.89
2017-12-01Dec 2017176.42169.01
2018-01-01Jan 2018179.26166.97
2018-02-01Feb 2018178.97155.15
2018-03-01Mar 2018181.72164.94
2018-04-01Apr 2018178.24162.32
2018-05-01May 2018190.04169.1
2018-06-01Jun 2018193.98182.17
2018-07-01Jul 2018194.82183.92
2018-08-01Aug 2018227.63201.5
2018-09-01Sep 2018228.36217.66
2018-10-01Oct 2018232.07212.24
2018-11-01Nov 2018222.22172.29
2018-12-01Dec 2018184.82146.83
2019-01-01Jan 2019166.44142.19
2019-02-01Feb 2019174.87166.52
2019-03-01Mar 2019195.09172.5
2019-04-01Apr 2019207.48191.24
2019-05-01May 2019211.75175.07
2019-06-01Jun 2019199.8173.3
2019-07-01Jul 2019213.04200.02
2019-08-01Aug 2019212.64193.34
2019-09-01Sep 2019223.97205.7
2019-10-01Oct 2019249.05218.96
2019-11-01Nov 2019267.84255.82
2019-12-01Dec 2019293.65259.45
2020-01-01Jan 2020324.34297.43
2020-02-01Feb 2020327.2273.36
2020-03-01Mar 2020302.74224.37
2020-04-01Apr 2020293.8240.91
2020-05-01May 2020319.23289.07
2020-06-01Jun 2020366.53321.85
2020-07-01Jul 2020425.04364.11
2020-08-01Aug 2020506.09129.04
2020-09-01Sep 2020134.18106.84
2020-10-01Oct 2020124.4108.86
2020-11-01Nov 2020120.3108.77
2020-12-01Dec 2020136.69121.78
Rows × columns
84 × 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 aapl_trace, derived from the stored result.
ColumnTypeRangeNotes
month date 2014-01-01 to 2020-12-01
period_label text 84 distinct values (Apr 2014, Apr 2015, Apr 2016…)
highest_close number 98.12 to 647.35 US dollars
lowest_close number 90.28 to 585.54 US dollars

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
WITH
on_file AS
(
    SELECT
        execution_date,
        any(split_from) AS from_shares,
        any(split_to)   AS to_shares
    FROM global_markets.stocks_splits
    WHERE ticker = 'AAPL'
      AND execution_date <= today()
    GROUP BY execution_date
),
restated AS
(
    SELECT
        d.date AS date,
        any(toFloat64(d.close)) * arrayProduct(groupArray(if(s.execution_date > d.date, toFloat64(s.to_shares) / toFloat64(s.from_shares), 1.0))) AS raw_close
    FROM
    (
        SELECT date, close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2014-01-01'
          AND date <  '2021-01-01'
    ) AS d
    CROSS JOIN on_file AS s
    GROUP BY d.date
)
SELECT
    toString(toStartOfMonth(date))                AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y') AS period_label,
    round(max(raw_close), 2)                      AS highest_close,
    round(min(raw_close), 2)                      AS lowest_close
FROM restated
GROUP BY toStartOfMonth(date)
ORDER BY toStartOfMonth(date)

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 analysisstock-split-candidates
split_history table 16×6 candidates table 15×8 stubborn table 12×5 aapl_splits table 3×5 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 monthly series 241×4 See all 2,358 queries →