'Financial Report Disclosure Engine 'Version .03 'See the Financial Report Semantics and Dynamics Theory for form information, http://xbrl.squarespace.com/journal/2014/7/20/updated-financial-report-semantics-and-dynamics-theory.html 'See the Financial Report Ontology, http://financialreportontology.wikispaces.com/home 'Best visual representation of the model, http://www.xbrlsite.com/2014/Protototype/fro/FinancialReportOntology-2014-08-20.pdf 'For a machine readable version of the financial report ontology in the XBRL format, see http://xbrl.squarespace.com/financial-report-ontology/ 'For testing, see http://www.xbrlsite.com/2014/Protototype/fro/index.html Imports FinancialDisclosureEngine.BusinessReport ''' A financial report is a class of business report. A financial report is a specialization of a business report. ''' A financial report has only the allowed properties of a business report. However, a financial report is further constrained and identified. For example, each COMPONENT of a business report can be further identified to be a DISCLOSURE or DISCLOSURE BLOCK. For more information see http://financialreportontology.wikispaces.com/Financial+Report. Public Class FinancialReport Inherits BusinessReport Public EconomicEntity As String 'http://financialreportontology.wikispaces.com/Reporting+Entity Public ReportingScheme As String Public ReportDate As String Public Disclosures As Collection Public FundamentalAccounitngConcepts As Collection Public KeyFinancialRatios As Collection Public FiscalYearFocus As String Public FiscalPeriodFocus As String Public NoteLevelTextBlocks_Level1 As Collection Public AccountingPolicyTextBlocks_Level2 As Collection Public DisclosureLevelTextBlocks_Level3 As Collection Public DisclosureLevelDetail_Level4 As Collection End Class ''' A financial report is created by exactly ONE EconomicEntity. ''' Other terms for EconomicEntity are accounting entity, entity of focus. A financial report may provide information for other entities which are a component of the EconomicEntity. For more information see http://financialreportontology.wikispaces.com/Reporting+Entity. Public Class EconomicEntity Public Identifier As String Public EntityRegistrantName As String Public TradingSymbol As String Public EntityType As String Public SIC As String Public Sector As String Public IsGoingConcern As Boolean Public IsDevelopingStage As Boolean End Class ''' All business report componnets in a financial report can be mapped to one DISCLOSURE ''' NOTE that the model is simplified at this point. There is a one-to-one correclation betweeen a business report component and a financial report disclosure. This can work, however many SEC XBRL financial filers provide more than one DISCLOSURE within a COMPONENT. As such, the notion of a DISCLOSURE BLOCK is necessary if you want a business report component to be mapped to ONE or MANY financial report DISCLOSURES. For more information see, http://financialreportontology.wikispaces.com/Disclosure. For a set of examples see, http://www.xbrlsite.com/2014/Protototype/ExemplarsHTML/index-ForTesting_Frame.html. Public Class Disclosure Public Name As String Public Label As String Public Topic As String Public DisclosureParent As String Public Category As String Public Circumstance As String Public Documentation As String Public Commentary As String Public USGAAPXBRLTaxonomyNetworkName As String Public TableName As String Public ConceptArrangementPattern As String Public EquivalentTextBlock As String Public SECDisclosureLevel As String Public RepresentationStructure As RepresentationStructure Public Prototype As Prototype Public Exemplars As Collection ''' Validates disclosure agains a set of business rules. ''' For an example of the business rules, see http://www.xbrlsite.com/2014/US-GAAP/Disclosures/BusinessRules/145-rules-def.xml. Public Sub Validate() End Sub End Class ''' A prototype is a specification for a disclosure. A Disclosure has exactly ONE Prototype ''' For more information see, http://financialreportontology.wikispaces.com/Prototype. For an example set of exemplars see, http://www.xbrlsite.com/2014/US-GAAP/Disclosures/Prototypes/rdf-ForTesting.xml. An example of ONE prototype see, http://www.xbrlsite.com/2014/US-GAAP/Disclosures/Prototypes/Prototype-44.xml. Public Class Prototype Inherits Disclosure End Class ''' An exemplar is an example of a Disclosure. A Disclosure can have MANY exemplars. ''' For more information see, http://financialreportontology.wikispaces.com/Exemplar. For an example set of exemplars see, http://www.xbrlsite.com/2014/US-GAAP/Disclosures/Exemplars/rdf-ForTesting.xml. An example of a collection of exemplars for ONE DISCLOSURE see, http://www.xbrlsite.com/2014/US-GAAP/Disclosures/Exemplars/Disclosure-44.xml. Public Class Exemplar Inherits Disclosure Public ID As String Public CIK As String Public EntityRegistrantName As String Public AccessionNumber As String Public NetworkName As String Public NetworkLabel As String Public SubCategory As String Public DisclosureName As String Public Confidence As String Public Likes As String Public Dislikes As String Public Rating As String Public LastUpdated As String Public ExemplarName As String End Class ''' Every economic enity or accounting entity which issues a financial report has exactly ONE EntityType. Enum EntityTypes SoleProprietor Corporation Partnership StateAndLocalGovernmental NotForProfit End Enum ''' Every disclosure is created for exactly ONE circumstance ''' I don't think this is correct. The balance sheet is the RESULTS of transactions, as are many other disclosures. This needs thought/work. For more information see http://financialreportontology.wikispaces.com/Circumstance. Enum Circumstances Transaction ReportableEvent Situation Action Outcome Occurance Other End Enum