MINI Financial Reporting Scheme (work in progress)

Conceptual Framework and Standards | XBRL Taxonomy


            erDiagram
              %%{init: {'theme':'forest'}}%%


              ECONOMIC-ENTITY only one to zero or more FINANCIAL-STATEMENT : creates
              FINANCIAL-STATEMENT ||--o{ BALANCE-SHEET : has-part
              FINANCIAL-STATEMENT ||--o{ INCOME-STATEMENT : has-part
              FINANCIAL-STATEMENT ||--o{ CHANGES-IN-EQUITY : has-part
              FINANCIAL-STATEMENT ||--o{ CASH-FLOW-STATEMENT : has-part


              FINANCIAL-STATEMENT {
                  iso1477 reportingCurrency "ISO Currency Code"
                  iso639 reportingLanguage "ISO Language Code"
                  enumeration reportingScheme "What financial reporting scheme was used to create the report? (value from enumarated list)"
                  string reportingStyle "Reporting style of financial reporting scheme used to create the financial report."
                  string industrySector "Need a standard list of industry scectors!"
                  boolean isAmmendment()
                  boolean isValidXBRL()
                  boolean isValidMathematically()
                  boolean isValidReportModelStructure()
                  boolean isValidTypesAndSubtypes()
                  boolean isValidDisclosureMechanics()
                  boolean isValidDisclosureChecklist()
                  boolean isValidContinuityCrosschecks()
                  string thirdPartyAssuranceType "None, Compilation, Review, Audit"

              }
              ASSETS }o--|| BALANCE-SHEET : has-part
              ASSETS {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              LIABILITIES }o--|| BALANCE-SHEET : has-part
              LIABILITIES {
                  string balanceType "Credit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              EQUITY }o--|| BALANCE-SHEET : has-part
              EQUITY {
                  string balanceType "Credit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }

              NET-ASSETS }o--|| BALANCE-SHEET : has-part
              NET-ASSETS {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }


              BALANCE-SHEET {
                  structure assetsRollup
                  structure liabilitiesAndEquityRollup
                  boolean classified "Is the balance sheet classifed between current and noncurrent assets and liabilities?"
                  boolean balances "Does the balance sheet balance; assetsRollup = liabilitiesAndEquityRollUp"
                  boolean isValid()
              }

              BALANCE-SHEET ||--|| RULE-BALANCES : has-rule
              RULE-BALANCES  {
                  xpath rule "ASSETS = LIABILITIES + EQUITY"
              }


              INCOME-STATEMENT {
                 structure netIncomeRollup
                 boolean multistep "Is the income statement multistep, i.e. reports gross profit?"
                 boolean foots "Does the income statement foot; netIncomeRollUp"
                 boolean isValid()
              }
              INCOME-STATEMENT ||--|| REVENUES : has-part
              REVENUES {
                  string balanceType "Credit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              INCOME-STATEMENT ||--|| EXPENSES : has-part
              EXPENSES {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              INCOME-STATEMENT ||--|| GAINS : has-part
              GAINS {
                  string balanceType "Credit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              INCOME-STATEMENT ||--|| LOSSES : has-part
              LOSSES {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
            }
              COMPREHENSIVE-INCOME ||--|| REVENUES : has-part
              COMPREHENSIVE-INCOME  {
                  string balanceType "Credit"
              }
              COMPREHENSIVE-INCOME ||--|| EXPENSES : has-part
              COMPREHENSIVE-INCOME ||--|| GAINS : has-part
              COMPREHENSIVE-INCOME ||--|| LOSSES : has-part

              INCOME-STATEMENT ||--|| COMPREHENSIVE-INCOME : has-part



              CHANGES-IN-EQUITY {
                  structure equityRollForward
                  boolean reconciles "Does the changes in equity reconcile to the balance sheet; equityRollForward"
                  boolean isValid()
              }

              CHANGES-IN-EQUITY ||--|| INVESTMENTS-BY-OWNERS : has-inflow
              INVESTMENTS-BY-OWNERS  {
                  string balanceType "Credit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              CHANGES-IN-EQUITY ||--|| DISTRIBUTIONS-TO-OWNERS : has-outflow
              DISTRIBUTIONS-TO-OWNERS  {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              CHANGES-IN-EQUITY ||--|| COMPREHENSIVE-INCOME : has-inflow

              CHANGES-IN-EQUITY ||--|| RULE-EQUITY-RECONCILES : has-rule
              RULE-EQUITY-RECONCILES  {
                  xpath rule "EQUITY(T0) + COMPREHENSIVE-INCOME(P1) + INVESTMENTS-BY-OWNERS(P1) - DISTRIBUTIONS-TO-OWNERS = EQUITY(T1)"
              }



              CASH-FLOW-STATEMENT {
                 structure netCashFlowRollUp
                  structure cashAndCashEquivalentsRollForward
                  boolean reconciles "Does the cash flow statement reconcile to the balance sheet; cashFlowRollForward"
                  boolean isValid()
              }

              CASH-FLOW-STATEMENT ||--|| NET-CASH-FLOW : has-inflow
              NET-CASH-FLOW  {
                  string balanceType "Debit"
                  boolean foots "Does net cash flow foot."
              }

              NET-CASH-FLOW ||--|| NET-CASH-FLOW-OPERATING : has-part
              NET-CASH-FLOW-OPERATING  {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              NET-CASH-FLOW ||--|| NET-CASH-FLOW-INVESTING : has-part
              NET-CASH-FLOW-INVESTING  {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }
              NET-CASH-FLOW ||--|| NET-CASH-FLOW-FINANCING : has-part
              NET-CASH-FLOW-FINANCING  {
                  string balanceType "Debit"
                  collection hasTypes() "Has a valid set of types organized in a specific hierarchy."
              }



              ECONOMIC-ENTITY {
                  string legalName
                  enumeration legalEntityType "Corporation, LLC, Partnership, Proprietorship, etc."
                  uri identifier PK "LEI issued by GLEIF"
                  iso3166 domicile "ISO Country Code"
              }