Skip to content

TANTECH HOLDINGS LTD: filings

Every TANTECH HOLDINGS LTD annual and quarterly report in the SEC record with the published financial measures it tagged, 15 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
20-F2026-05-14fiscal FY 2025521390001477932-26-003132
20-F/A2025-09-18fiscal FY 2024531420001477932-25-006862
20-F2025-05-15fiscal FY 2024521390001477932-25-003802
20-F2024-06-11fiscal FY 2023531420001477932-24-003629
20-F2023-05-01fiscal FY 2022541440001477932-23-003017
20-F/A2023-01-17fiscal FY 2021551430001410578-23-000028
20-F2022-07-18fiscal FY 2021551430001410578-22-001956
20-F2021-04-27fiscal FY 2020471250001104659-21-055681
20-F2020-06-30fiscal FY 2019481290001104659-20-079077
20-F2019-05-15fiscal FY 2018461240001144204-19-026664
20-F2018-05-11fiscal FY 2017441190001144204-18-027649
20-F2017-05-01fiscal FY 201640820001144204-17-023648
20-F2016-10-28fiscal FY 201542860001144204-16-130120
20-F2016-04-29fiscal FY 201542860001144204-16-097855
20-F2015-04-30fiscal FY 201440820001144204-15-026568

Inspect the source

Entity
TANTECH HOLDINGS LTD / CIK 0001588084
Captured
2026-09-20T09:23:37.915Z
SEC response SHA-256
733f222cce40ab66441ffe8556af64672395a083ad6fb37669566900660a869b

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