SEC XBRL Filings: Tag Consistency and Standardized Financial Data
Summary
The document asks how to automate retrieval and interpretation of companies’ SEC 10-Q and 10-K filings in XBRL. The responses explain that company-specific XBRL tags may vary, while tags associated with US GAAP concepts can offer more consistency in filing tables. A separate suggestion is to use a financial-data service that converts filings into standardized quarterly and annual income statements, balance sheets, and cash-flow statements.
The example illustrates the kinds of fields such a service may return, but it does not assess the provider’s coverage, accuracy, licensing, or suitability for research. The discussion does not answer several original questions, including how to locate filing URLs, the typical reporting period of a 10-Q, and the proportion of filings available in XBRL. It also offers no systematic guidance on XBRL definitions or parsing. Researchers should treat standardized third-party fields as a convenience rather than assume they preserve every filing detail or are directly comparable across companies.
Key ideas
- Company-specific XBRL tags can differ across filers.
- US GAAP concepts may have more consistent naming in filing tables.
- A third-party data service can present financial statements in standardized JSON fields.
- The discussion leaves filing discovery, reporting periods, XBRL coverage, and parsing largely unresolved.
Tags
Full text
# Automated Import of 10-Q and 10-K Statements in XBRL Format from SEC.gov
# Automated Import of 10-Q and 10-K Statements in XBRL Format from SEC.gov
I want to read financial statements in XBRL Format from the SEC site automatically.
For instance the 10-Q File from Apple: http://www.sec.gov/Archives/edgar/data/320193/000119312515259935/aapl-20150627.xml
For conversion of the XBRL data I want to use the R package XBRL.
Questions:
- Are the names of document and its web-address at SEC standardized, so that I can download the files automatically in a job? Or do I still have to look up the webadress in the full index (see Automated 10-K XBRL data grab using the SEC file structure )?
- Is the XBRL tag in conjunction with 10-Q /10-K requirements in that way standardized, that I can expect standardized tags? Especially that NOT the first firm tags "Cost of Goods Sold", the next company "COGS" and the third company "Cost of Revenue".
- Is the time period of 10-Q files standardized 3 month?
- Which proportion of the 10-Q and 10-K are files available in XBRL format (approximate percentage)?
- Is there something like a XBRL definition available somewhere? When applying
inst <- "http://www.sec.gov/Archives/edgar/data/320193/000119312515259935/aapl-20150627.xml"
aapl_10q= xbrlDoAll(inst, verbose=TRUE)
str(aapl_10q)
there appears so much weired data!
Jujo
## Answer by Lars Pellarin (score 1)
https://quant.stackexchange.com/a/30175
- No standard. Companies are allowed to name fields as they like. At least it seems to be tolerated.
- I dont know about XBRL, but it may help you to know that in the submitted html version of the financial statements, you can see which lines adhere to GAAP by looking at the field name in the tag of the table cell. All of these start with gaap like `gaap_costOfGoodsSold`. But this is only true for the reports after 2011 or so. And fortunately, the GAAP naming seems consistent across companies.
## Answer by Jay (score 1)
https://quant.stackexchange.com/a/43245
You don't need to read/parse financial statements in XBRL format in the first place.
There exists the method `getFundamentals(ticker)` provided by the package eodhistoricaldata-api (https://www.npmjs.com/package/eodhistoricaldata-api).
The library returns quarterly (and yearly) financial statements (income statements, balance sheets, and cash flow statements). The data is standardised, and provided in JSON format.
For example:
```
"Highlights": {
"MarketCapitalization": 54915055616,
"MarketCapitalizationMln": "54915.0556",
"EBITDA": 616286976,
"PERatio": null,
"PEGRatio": "-1.5700",
"WallStreetTargetPrice": "321.8900",
"BookValue": "26.2790",
"DividendShare": null,
"DividendYield": null,
"EarningsShare": "-4.8500",
"EPSEstimateCurrentYear": "-6.5600",
"EPSEstimateNextYear": "-2.0000",
"EPSEstimateNextQuarter": "-1.6700",
"MostRecentQuarter": "2018-09-30",
"ProfitMargin": "-0.1022",
"OperatingMarginTTM": "-0.0710",
"ReturnOnAssetsTTM": "-0.0271",
"ReturnOnEquityTTM": "-0.3397",
"RevenueTTM": "17523644416.00",
"RevenuePerShareTTM": "103.3240",
"QuarterlyRevenueGrowthYOY": "1.2860",
"GrossProfitTTM": "2222487000.00",
"DilutedEpsTTM": "-10.5600",
"QuarterlyEarningsGrowthYOY": null
},
// ...
"Income_Statement": {
"currency_symbol": "USD",
"quarterly": {
"2018-09-30": {
"date": "2018-09-30",
"filing_date": "2018-11-02",
"researchDevelopment": "350848000.00",
"effectOfAccountingCharges": null,
"incomeBeforeTax": "271320000.00",
"minorityInterest": "1344731000.00",
"netIncome": "311516000.00",
"sellingGeneralAdministrative": "729876000.00",
"grossProfit": "1523665000.00",
"ebit": "442941000.00",
"operatingIncome": "442941000.00",
"otherOperatingExpenses": null,
"interestExpense": "-169858000.00",
"extraordinaryItems": null,
"nonRecurring": null,
"otherItems": null,
"incomeTaxExpense": "16647000.00",
"totalRevenue": "6824413000.00",
"totalOperatingExpenses": "6381472000.00",
"costOfRevenue": "5300748000.00",
"totalOtherIncomeExpenseNet": "-171621000.00",
"discontinuedOperations": null,
"netIncomeFromContinuingOps": "254673000.00",
"netIncomeApplicableToCommonShares": "311516000.00"
},
// ...
"Balance_Sheet": {
"currency_symbol": "USD",
"quarterly": {
"2018-09-30": {
"date": "2018-09-30",
"filing_date": "2018-11-02",
"intangibleAssets": "291476000.00",
"totalLiab": "23409144000.00",
"totalStockholderEquity": "4508838000.00",
"deferredLongTermLiab": "0.00",
"otherCurrentLiab": "2266778000.00",
"totalAssets": "29262713000.00",
"commonStock": "171000.00",
"otherCurrentAssets": "158627000.00",
"retainedEarnings": "-5457315000.00",
"otherLiab": "2285172000.00",
"goodWill": "65226000.00",
"otherAssets": "1233979000.00",
"cash": "2967504000.00",
"totalCurrentLiabilities": "9775324000.00",
"shortLongTermDebt": "2106538000.00",
"otherStockholderEquity": "8271000.00",
"propertyPlantEquipment": "19733969000.00",
"totalCurrentAssets": "7920491000.00",
"longTermInvestments": "17572000.00",
"netTangibleAssets": "4152136000.00",
"shortTermInvestments": "0.00",
"netReceivables": "1155001000.00",
"longTermDebt": "9726589000.00",
"inventory": "3314127000.00",
"accountsPayable": "3596984000.00",
"totalPermanentEquity": "0.00",
"noncontrollingInterestInConsolidatedEntity": "0.00",
"temporaryEquityRedeemableNoncontrollingInterests": "0.00",
"accumulatedOtherComprehensiveIncome": "0.00",
"additionalPaidInCapital": "0.00",
"commonStockTotalEquity": "0.00",
"preferredStockTotalEquity": "0.00",
"retainedEarningsTotalEquity": "0.00",
"treasuryStock": "0.00"
},
// ...
"Cash_Flow": {
"currency_symbol": "USD",
"quarterly": {
"2018-09-30": {
"date": "2018-09-30",
"filing_date": "2018-11-02",
"investments": null,
"changeToLiabilities": "895197000.00",
"totalCashflowsFromInvestingActivities": "-560965000.00",
"netBorrowings": "-221931000.00",
"totalCashFromFinancingActivities": "-84218000.00",
"changeToOperatingActivities": "98770000.00",
"netIncome": "311516000.00",
"changeInCash": "739728000.00",
"totalCashFromOperatingActivities": "1391281000.00",
"depreciation": "502825000.00",
"otherCashflowsFromInvestingActivities": "128600000.00",
"dividendsPaid": "0.00",
"changeToInventory": "-55055000.00",
"changeToAccountReceivables": "-587594000.00",
"salePurchaseOfStock": "0.00",
"otherCashflowsFromFinancingActivities": "42839000.00",
"changeToNetincome": "179168000.00",
"capitalExpenditures": "-559765000.00"
},
```
The package supports client-side (React, React Native, Angular, Vue, etc.), and server-side (Node.js, etc.) JavaScript.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.