Skip to content

W.W. Grainger, Inc.: filings

Every W.W. Grainger, Inc. annual and quarterly report in the SEC record with the published financial measures it tagged, 69 filings, each linked to its SEC index.

Filings with published measures

Each page shows what one filing reported, as tagged in that filing, with the periods it covered. Later filings can restate a value; the company overview shows the latest-filed value per period.

FormFiledFiscal periodMeasuresFactsSEC accession
10-Q2026-08-04fiscal Q2 2026441290000277135-26-000079
10-Q2026-05-07fiscal Q1 202644930000277135-26-000053
10-K2026-02-19fiscal FY 2025561470000277135-26-000011
10-Q2025-10-31fiscal Q3 2025441330000277135-25-000148
10-Q2025-08-01fiscal Q2 2025441290000277135-25-000129
10-Q2025-05-01fiscal Q1 202544930000277135-25-000067
10-K2025-02-20fiscal FY 2024541410000277135-25-000010
10-Q2024-10-31fiscal Q3 2024431290000277135-24-000173
10-Q2024-08-01fiscal Q2 2024431250000277135-24-000133
10-Q2024-04-25fiscal Q1 202443910000277135-24-000059
10-K2024-02-22fiscal FY 2023531390000277135-24-000011
10-Q2023-10-26fiscal Q3 2023421270000277135-23-000096
10-Q2023-07-27fiscal Q2 2023421230000277135-23-000055
10-Q2023-04-27fiscal Q1 202342890000277135-23-000024
10-K2023-02-21fiscal FY 2022531390000277135-23-000014
10-Q2022-10-28fiscal Q3 2022421270000277135-22-000043
10-Q2022-07-29fiscal Q2 2022421230000277135-22-000022
10-Q2022-04-28fiscal Q1 202242890000277135-22-000019
10-K2022-02-23fiscal FY 2021531390000277135-22-000012
10-Q2021-10-29fiscal Q3 2021411250000277135-21-000026
10-Q2021-07-30fiscal Q2 2021411210000277135-21-000019
10-Q2021-04-30fiscal Q1 202141870000277135-21-000014
10-K2021-02-24fiscal FY 2020531930000277135-21-000007
10-Q2020-10-22fiscal Q3 2020411250000277135-20-000028
10-Q2020-07-23fiscal Q2 2020411200000277135-20-000021
10-Q2020-04-23fiscal Q1 202041870000277135-20-000014
10-K2020-02-20fiscal FY 2019521930000277135-20-000007
10-Q2019-10-23fiscal Q3 2019441320000277135-19-000031
10-Q2019-07-24fiscal Q2 2019441280000277135-19-000024
10-Q2019-04-22fiscal Q1 201943900000277135-19-000015
10-K2019-02-28fiscal FY 2018491800000277135-19-000010
10-Q2018-11-01fiscal Q3 2018401130000277135-18-000029
10-Q2018-07-26fiscal Q2 2018401120000277135-18-000023
10-Q2018-04-27fiscal Q1 201840820000277135-18-000016
10-K2018-02-26fiscal FY 2017501830000277135-18-000007
10-Q2017-10-26fiscal Q3 2017431200000277135-17-000040
10-Q2017-07-27fiscal Q2 2017421180000277135-17-000026
10-Q2017-04-27fiscal Q1 201741840000277135-17-000018
10-K2017-02-28fiscal FY 2016491800000277135-17-000007
10-Q2016-10-28fiscal Q3 2016411160000277135-16-000067
10-Q2016-07-28fiscal Q2 2016411160000277135-16-000052
10-Q2016-04-28fiscal Q1 201640820000277135-16-000046
10-K2016-02-29fiscal FY 2015491800000277135-16-000037
10-Q2015-10-29fiscal Q3 2015391100000277135-15-000029
10-Q2015-07-30fiscal Q2 2015391100000277135-15-000020
10-Q2015-04-30fiscal Q1 201539800000277135-15-000013
10-K2015-02-27fiscal FY 2014491800000277135-15-000005
10-Q2014-10-30fiscal Q3 2014401100000277135-14-000033
10-Q2014-07-31fiscal Q2 2014381040000277135-14-000024
10-Q2014-05-01fiscal Q1 201437760000277135-14-000016
10-K2014-02-27fiscal FY 2013461720000277135-14-000008
10-Q2013-10-31fiscal Q3 2013371020000277135-13-000038
10-Q2013-08-01fiscal Q2 2013371020000277135-13-000029
10-Q2013-04-25fiscal Q1 201336740000277135-13-000018
10-K2013-02-28fiscal FY 2012431640000277135-13-000009
10-Q2012-11-01fiscal Q3 2012361000000277135-12-000038
10-Q2012-07-26fiscal Q2 2012361000000277135-12-000031
10-Q2012-04-26fiscal Q1 201236740000277135-12-000022
10-K2012-02-28fiscal FY 2011441650000277135-12-000008
10-Q2011-10-27fiscal Q3 2011361000000277135-11-000052
10-Q2011-07-28fiscal Q2 2011361000000277135-11-000044
10-Q2011-04-28fiscal Q1 201136740000277135-11-000024
10-K2011-02-28fiscal FY 2010411730000277135-11-000011
10-Q2010-10-28fiscal Q3 2010361000000277135-10-000058
10-Q2010-07-29fiscal Q2 2010361000000277135-10-000044
10-Q2010-04-29fiscal Q1 201036740000277135-10-000030
10-K2010-02-25fiscal FY 2009381150000277135-10-000011
10-Q2009-10-29fiscal Q3 200935960000277135-09-000043
10-Q2009-07-31fiscal Q2 200935980000277135-09-000023

Inspect the source

Entity
W.W. Grainger, Inc. / CIK 0000277135
Captured
2026-09-19T14:55:36.432Z
SEC response SHA-256
8d3ec595bc350ee93c25f411d8403337bf3535f81f761009d232be61774bb52b

Current SEC company facts · Download the original response snapshot (gzip) · Download the selected JSON

Every published concept a filing tagged, with the periods it covered, as reported in that filing at capture time. Forms 10-K, 10-K/A, 10-Q, 10-Q/A, 20-F, 20-F/A, 40-F, 40-F/A. A filing page needs at least 8 published concepts. Later filings can restate these values; the company history pages show the latest-filed value per period.

Public company accounting reference, not market prices, returns, an investment recommendation, or ALPHAC performance. Validate a separately constructed return series with the validation API; accounting values are not returns.

Use this in research

A financial period ends before its results become public. Use the filing date as a minimum availability boundary, inspect amendments, and retain the original filing vintage when testing historical signals. This latest-filed selection can contain information unavailable at the time.

These pages do not supply prices, total-return histories, corporate-action adjustments or a tradable universe. Build those inputs separately before evaluating a strategy. A profitable backtest can still reflect selection bias or costs that were left out.

Research methodology · Execution and cost assumptions · Check backtest overfitting

Build with the open-source tools

Use these accounting records as inspectable inputs. When you have constructed a return series, the validation tools can help test its statistical evidence and preserve the result with its limitations.

Read the published dataset with Python
import json
from urllib.request import urlopen

with urlopen("https://canlicapital.com/company-data/0000277135.json") as response:
    record = json.load(response)
print(record["fetched_at"])
print(record["policy"])
for concept in record["concepts"]:
    print(concept["tag"], next(iter(concept["observations"])))