Skip to content

FASTENAL CO: filings

Every FASTENAL CO 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-07-16fiscal Q2 2026451470000815556-26-000041
10-Q2026-04-16fiscal Q1 202645930000815556-26-000022
10-K2026-02-05fiscal FY 2025521370000815556-26-000009
10-Q2025-10-16fiscal Q3 2025441430000815556-25-000119
10-Q2025-07-17fiscal Q2 2025441430000815556-25-000106
10-Q2025-04-16fiscal Q1 202544910000815556-25-000083
10-K2025-02-06fiscal FY 2024531400000815556-25-000065
10-Q2024-10-16fiscal Q3 2024441430000815556-24-000037
10-Q2024-07-17fiscal Q2 2024441430000815556-24-000031
10-Q2024-04-16fiscal Q1 202444910000815556-24-000019
10-K2024-02-06fiscal FY 2023521370000815556-24-000009
10-Q2023-10-17fiscal Q3 2023451470000815556-23-000049
10-Q2023-07-18fiscal Q2 2023451470000815556-23-000041
10-Q2023-04-18fiscal Q1 202344910000815556-23-000021
10-K2023-02-07fiscal FY 2022521370000815556-23-000009
10-Q2022-10-18fiscal Q3 2022451470000815556-22-000041
10-Q2022-07-18fiscal Q2 2022441450000815556-22-000034
10-Q2022-04-18fiscal Q1 202243890000815556-22-000020
10-K2022-02-07fiscal FY 2021501330000815556-22-000009
10-Q2021-10-15fiscal Q3 2021431150000815556-21-000040
10-Q2021-07-16fiscal Q2 2021421110000815556-21-000031
10-Q2021-04-16fiscal Q1 202142870000815556-21-000018
10-K2021-02-08fiscal FY 2020491690000815556-21-000008
10-Q2020-10-16fiscal Q3 2020421110000815556-20-000067
10-Q2020-07-17fiscal Q2 2020431130000815556-20-000056
10-Q2020-04-17fiscal Q1 202042870000815556-20-000031
10-K2020-02-06fiscal FY 2019491680000815556-20-000011
10-Q2019-10-16fiscal Q3 2019441130000815556-19-000058
10-Q2019-07-16fiscal Q2 2019441130000815556-19-000048
10-Q2019-04-16fiscal Q1 201943870000815556-19-000027
10-K2019-02-06fiscal FY 2018461630000815556-19-000015
10-Q2018-10-16fiscal Q3 2018411080000815556-18-000050
10-Q2018-07-16fiscal Q2 2018401060000815556-18-000043
10-Q2018-04-16fiscal Q1 201839800000815556-18-000019
10-K2018-02-05fiscal FY 2017441490000815556-18-000010
10-Q2017-10-16fiscal Q3 2017391020000815556-17-000045
10-Q2017-07-17fiscal Q2 2017381000000815556-17-000039
10-Q2017-04-17fiscal Q1 201738780000815556-17-000021
10-K2017-02-06fiscal FY 2016431470000815556-17-000009
10-Q2016-10-14fiscal Q3 2016381000000815556-16-000122
10-Q2016-07-15fiscal Q2 2016381000000815556-16-000113
10-Q2016-04-15fiscal Q1 201638790000815556-16-000097
10-K2016-02-05fiscal FY 2015431470000815556-16-000087
10-Q2015-10-16fiscal Q3 201537990000815556-15-000067
10-Q2015-07-17fiscal Q2 201537990000815556-15-000057
10-Q2015-04-17fiscal Q1 201537770000815556-15-000031
10-K2015-02-05fiscal FY 2014401320000815556-15-000014
10-Q2014-10-15fiscal Q3 201437990000815556-14-000066
10-Q2014-07-16fiscal Q2 201437990000815556-14-000051
10-Q2014-04-16fiscal Q1 201437770000815556-14-000030
10-K2014-02-06fiscal FY 2013401320000815556-14-000016
10-Q2013-10-15fiscal Q3 201336970000815556-13-000049
10-Q2013-07-15fiscal Q2 201335950000815556-13-000037
10-Q2013-04-15fiscal Q1 201335730000815556-13-000024
10-K2013-02-07fiscal FY 2012381260000815556-13-000013
10-Q2012-10-18fiscal Q3 201234900001445305-12-003151
10-Q2012-07-20fiscal Q2 201234900001193125-12-308412
10-Q2012-04-20fiscal Q1 201234700001193125-12-172121
10-K2012-02-09fiscal FY 2011391290001193125-12-048575
10-Q2011-10-26fiscal Q3 201133860001193125-11-281246
10-Q2011-07-21fiscal Q2 201133860001193125-11-193274
10-Q2011-04-21fiscal Q1 201133680001193125-11-104739
10-K2011-02-09fiscal FY 2010381250001193125-11-029081
10-Q2010-10-21fiscal Q3 201035900001193125-10-233210
10-Q2010-07-23fiscal Q2 201035900001193125-10-164626
10-Q2010-04-27fiscal Q1 201031640001193125-10-094840
10-K2010-02-09fiscal FY 200933880001193125-10-025958
10-Q2009-10-23fiscal Q3 200932760001193125-09-212481
10-Q2009-07-24fiscal Q2 200930720001193125-09-154691

Inspect the source

Entity
FASTENAL CO / CIK 0000815556
Captured
2026-09-19T15:06:55.229Z
SEC response SHA-256
d2fa9f1d63d2647f81b2e1c9c080efffd9b37c2c7e56f933502b6f6b2d724a6e

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