'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