Data model
Arche organizes public-company fundamentals into a hierarchy that supports both current-state and point-in-time retrieval.
Hierarchy
Company -> Filing -> Statement -> Facts
Company
Represents a public issuer, keyed by cik. Two routes return a company and they
return different fields, so pick by what you need rather than by name.
/v1/edgar/companies:resolve answers identity only — which CIK a ticker meant
on a date:
ciktickerexchangeas_of
/v1/edgar/companies/{cik} is the profile, and is where the descriptive fields
live:
cikentity_nametickers— an array, because an issuer can carry severalexchanges— an array, for the same reason: each exchange the issuer's current tickers list on, oncesic,sic_descriptionstate_of_incorporationfiscal_year_end—MMDD, the filer's own annual closelast_updated_at,source
There is no entity_name on the resolve route and no singular ticker on the
profile. Resolve first, then fetch the profile if you need the name.
An exchange is named by its ISO 10383 market identifier code (MIC): XNAS for
Nasdaq, XNYS for the New York Stock Exchange, XASE for NYSE American,
ARCX for NYSE Arca, XCHI for NYSE Texas, BATS for Cboe BZX and OTCM for
over-the-counter. A security listed on more than one exchange resolves to the
one it listed on first. exchange is null when neither the company's filings
nor EDGAR name one.
Filing
Represents an SEC filing such as:
- 10-K
- 10-Q
- 8-K
Key fields:
accession_idform_typeaccepted_at
Statement
Normalized financial statement extracted from a filing.
Examples:
- income statement
- balance sheet
- cash flow statement
It holds the figures one filing reported for one period, and each filing appears once.
Key fields:
cik,statement_type,fiscal_year,fiscal_periodandaccession_id, which together identify itaccepted_atis_restatedaccounting_standard
A later filing that restates the same period is a separate statement with its
own accession_id; the earlier one is not changed.
Accounting standard
accounting_standard reports the standard a filing was prepared under, derived
from the taxonomy the filer actually tagged. It is US_GAAP for domestic
filers and IFRS for foreign private issuers filing on 20-F or 40-F, which tag
ifrs-full concepts.
Judge it per filing rather than per company. A filer can change standard, so a company's history can contain both, and comparing a company's lifetime against a single standard will misreport it.
Fiscal identity
A statement's fiscal_year and fiscal_period follow the filer's own annual
close and its own name for the year, not the calendar. A company whose fiscal
year ends in September reports a September period as FY; a retailer whose
year closes on 1 February 2025 and calls it fiscal 2024 is served as
fiscal_year=2024.
Rows sharing one fiscal identity can carry different period ends, because a
quarter is sometimes labelled FY. Keep statement_date alongside the fiscal
identity when a specific period end matters.
Currency
A statement's values are always in the currency the filing reports in, named
by currency, with each value's unit under units. A foreign private issuer
filing in euros is served in euros.
Pass include_usd=true to also receive the money values in US dollars. Five
routes accept it:
/v1/edgar/companies/{cik}/statements/v1/edgar/companies/{cik}/filings/{accession_id}/statements/v1/edgar/as-of/{date}/financials/{cik}/v1/edgar/as-of/{date}/financials/{cik}/page/v1/fundamentals/normalized-statements
Each statement then carries a usd object beside values, which do not change:
values: each money value in US dollars, keyed by the same metric code. A share count has no entry.usd_per_unit: US dollars per unit of the filing's currency.rate_basis:PERIOD_AVERAGEfor an income or cash-flow statement, the mean of the daily rates fromrate_starttorate_end;PERIOD_ENDfor a balance sheet, the rate onrate_end, the last on or before the balance date;AS_FILEDfor a statement filed in US dollars.rate_start,rate_end: the dates of the rates used.source:Federal Reserve Board H.10, the Board's daily exchange rates.
With detail=true, each money fact also carries its own usd with the same
fields.
Eni's FY2025 income statement, filed in euros, with include_usd=true:
{
"currency": "EUR",
"values": {
"REVENUE": "82151000000",
"NET_INCOME": "2608000000",
"DILUTED_EPS": "0.78"
},
"usd": {
"values": {
"REVENUE": "92881695061.60",
"NET_INCOME": "2948661132.80",
"DILUTED_EPS": "0.88"
},
"usd_per_unit": "1.1306216",
"rate_basis": "PERIOD_AVERAGE",
"rate_start": "2025-01-02",
"rate_end": "2025-12-31",
"source": "Federal Reserve Board H.10"
}
}
usd is absent when no rate covers the statement's period. H.10 publishes
rates for 22 currencies: AUD, BRL, CAD, CHF, CNY, DKK, EUR, GBP, HKD, INR, JPY,
KRW, LKR, MXN, MYR, NOK, NZD, SEK, SGD, THB, TWD and ZAR. A statement in any
other currency is served as filed only.
An as-of request converts with only the rates published by its date. The Board publishes each week's daily rates the following Monday, or Tuesday after a Monday holiday, so a rate counts from the Tuesday after its week. A conversion as of a date never uses a rate that was not yet public on that date.
If you only keep a company identifier and a reporting period, you may lose
reproducibility. For auditability, preserve the filing's
accession_id whenever you materialize data downstream.