Thursday, February 21, 2019 at 8:20 PM #124720
To shorten the code, rather than using concept.local-name, I started to use concept.id to call for fact.values. However, I started to realize that the numbers of concept.id change depending on the CIK and the fiscal year–even though the concept.local-names are exactly the same.
Can you please describe what drives this difference so that I can better construct the code?
Here are some examples of different concept.ids that have the same concept.local-name:
entity.cik period.fiscal-year concept.local-name concept.id
0001109879 2011 IncreaseDecreaseInInventories 9049
0000090168 2011 IncreaseDecreaseInInventories 68486
0000027093 2011 IncreaseDecreaseInInventories 6249201
0000812074 2012 IncreaseDecreaseInInventories 10288733
0000110621 2014 IncreaseDecreaseInInventories 15795815
0001122976 2013 IncreaseDecreaseInInventories 12743567
0001421182 2015 IncreaseDecreaseInInventories 10288733
0000811596 2016 IncreaseDecreaseInInventories 18601247
0001524741 2017 IncreaseDecreaseInInventories 21660607
0000004281 2018 IncreaseDecreaseInInventories 21660607
Saturday, March 2, 2019 at 12:09 PM #126287David TaurielloKeymaster
Each company submits its own ‘extension taxonomy’ to the SEC – it’s essentially a cut-down version of only the US GAAP elements needed, plus any extension elements the company creates because it cannot find an existing element that adequately covers the fact(s) being reported by the extension elements.
So, while the
concept.local-namevalues in your list above are identical, the
concept.idvalues will differ, because our database assigns
concept.idvalues based on the facts as they appear in the company’s instance, not as they may relate to the US GAAP taxonomy.
If you use
concept.is-base(set as =true in the query or returned as true/false in fields) you can quickly distinguish whether the concept.id is a US GAAP element.
Friday, March 29, 2019 at 7:16 AM #130930
Thank you for explaining the concept.id for me. However, would you please elaborate a little more on these points so that I can gain a better understanding?
1. On your writing, “the concept.id values will differ, because our database assigns concept.id values based on the facts as they appear in the company’s instance”, does this mean that XBRL US assigns the concept.id, the SEC assigns or the company self-assigns?
2. Do you know if there is a relationship from one year to the next (say from 2017 to 2018 and to 2019)? or Is the number for the current year completely different from the previous year?
I am trying to find some commonality to do comparison among companies, but it is difficult. For example, just for Total Revenue (the very top line), I went throught some 100 income statements, yes from roughtly 100 10Ks, and found there are 27 concept.id for 2017 and 16 for 2018.
2017 InvestmentIncomeInterestAndDividend 21655159
2017 OilAndGasRevenue 18613203
2017 RegulatedAndUnregulatedOperatingRevenue 18614810
2017 RegulatedAndUnregulatedOperatingRevenue 21652265
2017 RevenueFromContractWithCustomerExcludingAssessedTax 18602475
2017 RevenueFromContractWithCustomerExcludingAssessedTax 21653976
2017 RevenueFromContractWithCustomerIncludingAssessedTax 21654060
2017 RevenuefromContractwithCustomersTransportationandProcessingCosts 24197257
2017 RevenueMineralSales 15794561
2017 RevenueOilAndGasServices 18604404
2017 Revenues 15796345
2017 Revenues 18605331
2017 Revenues 21659490
2017 RevenuesAndOtherIncome 24259790
2017 RevenuesAndOtherIncome 24488188
2017 RevenuesAndOtherIncome 24508761
2017 SalesRevenueGoodsGross 18616032
2017 SalesRevenueGoodsNet 15800900
2017 SalesRevenueGoodsNet 18614606
2017 SalesRevenueGoodsNetExcludingExciseAndSalesTaxes 20763215
2017 SalesRevenueNet 15803196
2017 SalesRevenueNet 18614636
2017 SalesRevenueNetOfExciseTaxes 21724253
2017 SalesRevenueServicesGross 18614619
2017 SalesRevenueServicesNet 18614749
2017 SellingGeneralAndAdministrativeExpense 21658596
2017 TotalRevenuesAndOtherIncome 24421937
2018 InvestmentIncomeInterestAndDividend 21655159
2018 RegulatedAndUnregulatedOperatingRevenue 21652265
2018 RevenueFromContractWithCustomerExcludingAssessedTax 18602475
2018 RevenueFromContractWithCustomerExcludingAssessedTax 21653976
2018 RevenueFromContractWithCustomerIncludingAssessedTax 21654060
2018 RevenuefromContractwithCustomersTransportationandProcessingCosts 24197257
2018 Revenues 18605331
2018 Revenues 21659490
2018 RevenuesAndOtherIncome 24259790
2018 RevenuesAndOtherIncome 24488188
2018 RevenuesAndOtherIncome 24508761
2018 SalesRevenueGoodsNet 18614606
2018 SalesRevenueNet 18614636
2018 SalesRevenueNetOfExciseTaxes 21724253
2018 SalesRevenueServicesNet 18614749
2018 SellingGeneralAndAdministrativeExpense 21658596
As always, thank you for your help, David!
Friday, March 29, 2019 at 7:45 AM #130934
By the way, David, I cannot use just one concept.name because some companies use “Revenues” as total revenue while some others use “Revenues” as part of “RevnueandOtherIncome”, and some use totally different concept.names.
ps. I just realized I wrongly added the very last line in 2018 concept above. It’s a SG&A line.
Tuesday, June 18, 2019 at 10:26 PM #143367Campbell PrydeParticipant
Just to clarify the concept id and to clear up any confusion. The concept id represents a combination of the namespace and local name. So assets in the 2019 taxonomy will have a consistent concept id number. If you request fact values based on this number you will only get the values for Assets that used the 2019 taxonomy. To get the value of Assets irrespective of the taxonomy used the use the local-name called Assets. So a term like Assets will have at least 12 different concept ids associated with it for each different taxonomy included in the underlying dataset.
Searching on the local-name should be fast as this is indexed, but searching on concept.id will be faster as their are less records.
Theoretically companies should not define an extension called Assets as it is already defined in the US GAAP or IFRS taxonomy. However, if they do these can be excluded by seting the is-base parameter to true. This will exclude any extension elements.
Tuesday, April 14, 2020 at 9:22 AM #175189Brandon de la HoussayeParticipant
I know that this is an older string, but I am running into the same issue as what was generally identified above.
As an example, focusing on ‘Total Consolidated Revenues’ for an entity, I found that you cannot just rely on a string for under local-names.
If you want to return revenues for a given entity; given year; and given report (i.e., FY 2019 Total Revenues for array of entities), you can help by limiting down the returns by setting dimension.count = 0 (so there are no sub-members); concept.is-monetary = True (so you get only numerical response); fact.ultimus (so you only get the ‘top’ response). You may also be able to explore embedded concept object calls within the API (i.e., dimension.local-name = ConsolidatedItemAxis) or even member.is-base = True.
However, even with those screens I think you still have to limit down using concept.local-name. Some taxonomies tag this as ‘Revenues’; some as ‘RevenueFromContractWithCustomer’; etc.).
I am focusing on revenues right now because for major line items (Sales, COS, Inventories, etc.) this fact would have the most variance (e.g., sales by country; sales business segment; sales by service/product/etc.).
If anyone has any thoughts as to how you can collect a simple P&L, BS (i.e, forgoing specific entity extensions or reporting) for any given year & any given report type (10K, 10Q, etc.), please share the API construct.
It would be a huge help!
Wednesday, April 15, 2020 at 8:38 AM #175308
I am not sure this source will meet your needs, but I have been using http://www.XBRLXL.com and find the site useful for my purpose. Jim Truscott, the founder, provides Excel spreadsheet for all annual and quarterly financial statements and footnotes. All I have to do is put in a ticker and hit Data Refresh and I get all of the financial data I need. The price is extremely reasonable and the service is superior. Anytime I have a question, Jim answers back by email very quickly.
- You must be logged in to reply to this topic.
Signs for AccRec Change and Inventories Change are reversed 1 day, 4 hours ago
Entity's industry 4 days, 1 hour ago
Extraction and Interpretation of Operating Lease Data 2 weeks, 3 days ago
Duplicate information in instance document 3 weeks, 2 days ago
Extraction and Interpretation of Operating Lease Data 3 weeks, 4 days ago
XBRL API Resources
- The XBRL API
- XBRL Data Community
- XBRL API Interactive Documentation
- XBRL API Documentation (PDF)
- Get Started with Google Sheets
- OR request account provisioning to use Client ID and secret pairs in your app and:
Using the XBRL API with the Public Filings Database
Unless otherwise agreed to in writing, any and all use of the XBRL API to authenticate and retrieve data from the XBRL US Database of Public Filings implies user consent and agreement with the XBRL US API Agreement. If you are unable to agree to these terms, do not use the XBRL API.
Ready to work with the API in Excel's Power Query, or with your own system or app?
Contact us at email@example.com to have your existing XBRL US Web account provisioned to generate client ID/Secret pairs to work with the XBRL API in a REST client or other application, including Excel's Power Query.
NOTE: You do not need to generate client ID/Secret pairs if you use the Google Add-on and Google Sheet exclusively to access data - the XBRL API Authentication Add-on handles this automatically.
Your account needs to be provisioned before you can login and generate client ID/secret pairs.
Login or register for a free account.
Join XBRL US
- Individual Options - Basic, Power User & Sole Practitioner
- For Your Team - Startup, Non-Profit, Academic & Corporate options
- Member Benefits Comparison Table