Skip to content

CATERPILLAR INC: filings

Every CATERPILLAR 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-05fiscal Q2 2026461300000018230-26-000046
10-Q2026-05-06fiscal Q1 202646960000018230-26-000021
10-K2026-02-13fiscal FY 2025571460000018230-26-000008
10-Q2025-11-03fiscal Q3 2025461300000018230-25-000048
10-Q2025-08-06fiscal Q2 2025461300000018230-25-000040
10-Q2025-05-07fiscal Q1 202547980000018230-25-000016
10-K2025-02-14fiscal FY 2024561450000018230-25-000008
10-Q2024-11-06fiscal Q3 2024461300000018230-24-000053
10-Q2024-08-07fiscal Q2 2024461300000018230-24-000045
10-Q2024-05-01fiscal Q1 202446960000018230-24-000020
10-K2024-02-16fiscal FY 2023561450000018230-24-000009
10-Q2023-11-01fiscal Q3 2023461300000018230-23-000056
10-Q2023-08-02fiscal Q2 2023461300000018230-23-000047
10-Q2023-05-03fiscal Q1 202346970000018230-23-000022
10-K2023-02-15fiscal FY 2022561460000018230-23-000011
10-Q2022-11-02fiscal Q3 2022461310000018230-22-000223
10-Q2022-08-03fiscal Q2 2022461310000018230-22-000183
10-Q2022-05-04fiscal Q1 202246970000018230-22-000112
10-K2022-02-16fiscal FY 2021551440000018230-22-000050
10-Q2021-11-03fiscal Q3 2021461310000018230-21-000260
10-Q2021-08-04fiscal Q2 2021451290000018230-21-000221
10-Q2021-05-05fiscal Q1 202145950000018230-21-000151
10-K2021-02-17fiscal FY 2020541880000018230-21-000063
10-Q2020-11-04fiscal Q3 2020451290000018230-20-000297
10-Q2020-08-05fiscal Q2 2020451300000018230-20-000214
10-Q2020-05-06fiscal Q1 202045960000018230-20-000155
10-K2020-02-19fiscal FY 2019521890000018230-20-000056
10-Q2019-10-31fiscal Q3 2019451380000018230-19-000281
10-Q2019-08-01fiscal Q2 2019421330000018230-19-000224
10-Q2019-05-06fiscal Q1 201942980000018230-19-000153
10-K2019-02-14fiscal FY 2018471830000018230-19-000034
10-Q2018-10-31fiscal Q3 2018401360000018230-18-000293
10-Q2018-08-07fiscal Q2 2018391310000018230-18-000229
10-Q2018-05-02fiscal Q1 201839940000018230-18-000136
10-K2018-02-15fiscal FY 2017451600000018230-18-000042
10-Q2017-11-01fiscal Q3 2017371130000018230-17-000305
10-Q2017-08-02fiscal Q2 2017371130000018230-17-000245
10-Q2017-05-03fiscal Q1 201737790000018230-17-000145
10-K2017-02-15fiscal FY 2016451610000018230-17-000041
10-Q2016-11-02fiscal Q3 2016381150000018230-16-000715
10-Q2016-08-03fiscal Q2 2016381150000018230-16-000630
10-Q2016-05-02fiscal Q1 201638800000018230-16-000512
10-K2016-02-16fiscal FY 2015461650000018230-16-000410
10-Q2015-10-30fiscal Q3 2015381170000018230-15-000324
10-Q2015-07-31fiscal Q2 2015381160000018230-15-000266
10-Q2015-05-01fiscal Q1 201538800000018230-15-000161
10-K2015-02-17fiscal FY 2014461820000018230-15-000061
10-Q2014-10-31fiscal Q3 2014381180000018230-14-000386
10-Q2014-08-01fiscal Q2 2014381160000018230-14-000285
10-Q2014-05-02fiscal Q1 201438800000018230-14-000177
10-K2014-02-18fiscal FY 2013461800000018230-14-000058
10-Q2013-11-01fiscal Q3 2013381140000018230-13-000443
10-Q2013-08-02fiscal Q2 2013381130000018230-13-000363
10-Q2013-05-02fiscal Q1 201337770000018230-13-000239
10-K2013-02-19fiscal FY 2012451740000018230-13-000075
10-Q2012-11-02fiscal Q3 2012361070000018230-12-000506
10-Q2012-08-06fiscal Q2 2012361070000018230-12-000409
10-Q2012-05-07fiscal Q1 201236750000018230-12-000280
10-K2012-02-21fiscal FY 2011441710001104659-12-011331
10-Q2011-11-04fiscal Q3 2011351030001104659-11-060986
10-Q2011-08-04fiscal Q2 2011371070001104659-11-043575
10-Q2011-05-09fiscal Q1 201137770001104659-11-027403
10-K2011-02-22fiscal FY 2010471780001104659-11-008938
10-Q2010-11-04fiscal Q3 2010371080001104659-10-055930
10-Q/A2010-08-26fiscal Q2 2010371070001104659-10-046030
10-Q2010-05-03fiscal Q1 201034720000018230-10-000234
10-K2010-02-19fiscal FY 2009351070000018230-10-000092
10-Q2009-10-30fiscal Q3 200934960000018230-09-000466
10-Q/A2009-08-12fiscal Q2 200933940000018230-09-000331

Inspect the source

Entity
CATERPILLAR INC / CIK 0000018230
Captured
2026-09-19T14:44:47.431Z
SEC response SHA-256
01ddc6ffa741f0a7da440e2949b2ed19cec14fab35435a398e3f3d0100019715

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/0000018230.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"])))