The common characteristics of an SEC XBRL financial filing are misunderstood many times. These characteristics are expressed as explicitly defined or implied [Axis]. Generally filers will never need to re-create these in their extensions. Here is an overview of these common characteristics.
Fundamentally, when you think of all this, think in business terms, not technical terms. After all, it is business information which is being expressed. I will point out the XBRL syntax which instantiates these business semantics, but you can ignore this. I am only pointing this out to help differentiate business semantics (which is important) from technical syntax (which is an unimportant detail you can ignore). Hear are common [Axis] nearly every filer uses.
- Reporting Entity [Axis]. Every fact reported is associated with a reporting entity. That is the filers CIK number. This [Axis] is explicitly articulated using the XBRL syntax as the "entity identifier". But it is an [Axis], it is always there, and it will always be the CIK number of the filer.
- Period [Axis]. Every fact reported is also explicitly associated with a period. This period can only be articulated in a "calendar period" form. It would be good to be able to articulate fiscal period information, but the XBRL syntax cannot do that in its current form. So, this period is really a calendar period only, it is always required, and is expressed in the XBRL syntax as the "period" portion of a context.
- Report Date [Axis]. The report date is typically the date of the SEC filing for those who file to the SEC or the auditor's report date for those who do not. There is a lot of vagueness surrounding using this, but the safe way to go is to use this strategy in my view. If you do not have a prior period adjustment, then everything in the report relates to the same date and this can be implied. If you do have a prior period adjustment, then you need to explicitly use the Report Date [Axis] to differentiate originally reported and restated values. I won't get into details about this here. If this axis does not exist, then the report date of the SEC filing or auditor report can be implied.
- Legal Entity [Axis]. The legal entity of a fact is implied to relate to the "consolidated entity" unless it is explicitly associated with some other legal entity. If you explicitly put the "Legal Entity [Axis]" onto a [Table] and you use the "Entity [Domain]" which really means "Consolidated Entity [Domain]", it means the exact same thing as not providing the information at all. Personally, I think it is better to be explicit.
- Business Segment [Axis]. When breaking your filing information out by business segment, you need to use the business segment [Provided]. If this does not exist, then total for all business segments is implied.
- Geographic Areas [Axis]. When breaking your filing information out by geographic areas, you need to use the geographic area [Axis]. If this does not exist, then total for all geographic areas is implied.
- Reporting Scenario [Axis]. Some times you might need to differentiate information which is actual, budgeted, forecast, etc. This is what the Reporting Scenario [Axis] is for. If you don't explicitly use it, then facts are implied to be actual.
- Operating Activities Segment [Axis]. This [Axis] helps you differentiate continuing operations and discontinued operations. If it does not exist, facts are implied to relate to continuing operations.
- Products and Services [Axis]. This lets you break information down by product/service. If it does not exist, it is implied to mean all products and services.
- Major customers [Axis]. This lets you break information down by customer. If it does not exist, all customers are implied.
You can see a complete list of these [Axis] defined by the US GAAP Taxonomy here in my reorganized version of the taxonomy or in the actual US GAAP Taxonomy using this viewer application. Remember that you will not see the Reporting Entity [Axis] or the Period [Axis] as they are expressed using the context within your XBRL instance (i.e. a different syntax). But both are [Axis].
Again, you will generally never need to create these [Axis] for yourself, use the ones which exist.