Rules

TypeDefinedBoundDerivedOKFail
formula00000
existenceAssertion00000
valueAssertion20330330
calculation10590590

Rule Details

TypeName Rule ExpressionProlog form
valueAssertionAdjustment_ADJ01
  • derived:0
  • ok:1
  • failed:0
 Restated=OrigionallyStated+CorrectionOfAnError+ChangesInAccountingPolicy
'Adjustment_ADJ01' valueAssertion
  Restated=OrigionallyStated+CorrectionOfAnError+ChangesInAccountingPolicy
  variables
  ChangesInAccountingPolicy: [explicitDimension(proof:'ReportDateAxis',[proof:'CurrentReportMember']),concept(proof:'ChangesInAccountingPolicy')],
  CorrectionOfAnError: [explicitDimension(proof:'ReportDateAxis',[proof:'CurrentReportMember']),concept(proof:'CorrectionOfAnError')],
  OrigionallyStated: [explicitDimension(proof:'ReportDateAxis',[proof:'PriorReportMember']),concept(proof:'Equity')],
  Restated: [explicitDimension(proof:'ReportDateAxis',[proof:'CurrentReportMember']),concept(proof:'Equity')].
valueAssertionArithmetic_BS01
  • derived:0
  • ok:2
  • failed:0
 Assets=Liabilities+Equity
'Arithmetic_BS01' valueAssertion
  Assets=Liabilities+Equity
  variables
  Assets: [concept(proof:'Assets')],
  Equity: [concept(proof:'Equity')],
  Liabilities: [concept(proof:'Liabilities')].
valueAssertionArithmetic_BS02
  • derived:0
  • ok:2
  • failed:0
 Assets=CurrentAssets+NoncurrentAssets
'Arithmetic_BS02' valueAssertion
  Assets=CurrentAssets+NoncurrentAssets
  variables
  Assets: [concept(proof:'Assets')],
  CurrentAssets: [concept(proof:'CurrentAssets')],
  NoncurrentAssets: [concept(proof:'NoncurrentAssets')].
valueAssertionArithmetic_BS03
  • derived:0
  • ok:2
  • failed:0
 Liabilities=CurrentLiabilities+NoncurrentLiabilities
'Arithmetic_BS03' valueAssertion
  Liabilities=CurrentLiabilities+NoncurrentLiabilities
  variables
  CurrentLiabilities: [concept(proof:'CurrentLiabilities')],
  Liabilities: [concept(proof:'Liabilities')],
  NoncurrentLiabilities: [concept(proof:'NoncurrentLiabilities')].
valueAssertionArithmetic_BS04
  • derived:0
  • ok:2
  • failed:0
 Equity=EquityAttributableToControllingInterests+EquityAttributableToNoncontrollingInterests
'Arithmetic_BS04' valueAssertion
  Equity=EquityAttributableToControllingInterests+EquityAttributableToNoncontrollingInterests
  variables
  Equity: [concept(proof:'Equity')],
  EquityAttributableToControllingInterests: [concept(proof:'EquityAttributableToControllingInterests')],
  EquityAttributableToNoncontrollingInterests: [concept(proof:'EquityAttributableToNoncontrollingInterests')].
valueAssertionArithmetic_CF01
  • derived:0
  • ok:1
  • failed:0
 NetCashFlow=NetCashFlowOperatingActivities+NetCashFlowFinancingActivities+NetCashFlowInvestingActivities
'Arithmetic_CF01' valueAssertion
  NetCashFlow=NetCashFlowOperatingActivities+NetCashFlowFinancingActivities+NetCashFlowInvestingActivities
  variables
  NetCashFlow: [concept(proof:'NetCashFlow')],
  NetCashFlowFinancingActivities: [concept(proof:'NetCashFlowFinancingActivities')],
  NetCashFlowInvestingActivities: [concept(proof:'NetCashFlowInvestingActivities')],
  NetCashFlowOperatingActivities: [concept(proof:'NetCashFlowOperatingActivities')].
valueAssertionArithmetic_IS01
  • derived:0
  • ok:4
  • failed:0
 NetIncome=Revenues-Expenses+Gains-Losses
'Arithmetic_IS01' valueAssertion
  NetIncome=Revenues-Expenses+Gains-Losses
  variables
  Expenses: [concept(proof:'Expenses')],
  Gains: [concept(proof:'Gains')],
  Losses: [concept(proof:'Losses')],
  NetIncome: [concept(proof:'NetIncome')],
  Revenues: [concept(proof:'Revenues')].
valueAssertionArithmetic_IS02
  • derived:0
  • ok:1
  • failed:0
 NetIncome=IncomeFromNormalActivitiesOfEntity+IncomeFromPeripheralOrIncidentalTransactionsOfEntity
'Arithmetic_IS02' valueAssertion
  NetIncome=IncomeFromNormalActivitiesOfEntity+IncomeFromPeripheralOrIncidentalTransactionsOfEntity
  variables
  IncomeFromNormalActivitiesOfEntity: [concept(proof:'IncomeFromNormalActivitiesOfEntity')],
  IncomeFromPeripheralOrIncidentalTransactionsOfEntity: [concept(proof:'IncomeFromPeripheralOrIncidentalTransactionsOfEntity')],
  NetIncome: [concept(proof:'NetIncome')].
valueAssertionArithmetic_NA01
  • derived:0
  • ok:2
  • failed:0
 NetAssets=Assets-Liabilities
'Arithmetic_NA01' valueAssertion
  NetAssets=Assets-Liabilities
  variables
  Assets: [concept(proof:'Assets')],
  Liabilities: [concept(proof:'Liabilities')],
  NetAssets: [concept(proof:'NetAssets')].
valueAssertionMemberAggregation_MA1
  • derived:0
  • ok:3
  • failed:0
 Total eq sum(Each)
'MemberAggregation_MA1' valueAssertion
  Total eq sum(Each)
  variables
  Each: [explicitDimension(proof:'SegmentsAxis',[under('Total','http://www.xbrlsite.com/report/role/SegmentRevenues','http://xbrl.org/int/dim/arcrole/domain-member',child)]),concept(proof:'Revenues')],
  Total: [concept(proof:'Revenues')].
valueAssertionMemberAggregation_PPA
  • derived:0
  • ok:3
  • failed:0
 Total eq sum(Each)
'MemberAggregation_PPA' valueAssertion
  Total eq sum(Each)
  variables
  Each: [explicitDimension(proof:'RestatementAxis',[under('Total','http://www.xbrlsite.com/report/role/PriorPeriodErrors2','http://xbrl.org/int/dim/arcrole/domain-member',child)]),concept(proof:'Equity')],
  Total: [concept(proof:'Equity')].
valueAssertionRollForward_CF01
  • derived:0
  • ok:1
  • failed:0
 Assets_BalanceStart+NetCashFlow=Assets_BalanceEnd
'RollForward_CF01' valueAssertion
  Assets_BalanceStart+NetCashFlow=Assets_BalanceEnd
  variables
  Assets_BalanceEnd: [concept(proof:'Assets'),instantDuration('NetCashFlow',end)],
  Assets_BalanceStart: [concept(proof:'Assets'),instantDuration('NetCashFlow',start)],
  NetCashFlow: [concept(proof:'NetCashFlow')].
valueAssertionRollForward_SHE01
  • derived:0
  • ok:1
  • failed:0
 Equity_BalanceStart+ComprehensiveIncome+InvestmentsByOwners-DistributionsToOwners=Equity_BalanceEnd
'RollForward_SHE01' valueAssertion
  Equity_BalanceStart+ComprehensiveIncome+InvestmentsByOwners-DistributionsToOwners=Equity_BalanceEnd
  variables
  ComprehensiveIncome: [concept(proof:'ComprehensiveIncome')],
  DistributionsToOwners: [concept(proof:'DistributionsToOwners')],
  Equity_BalanceEnd: [concept(proof:'Equity'),instantDuration('ComprehensiveIncome',end)],
  Equity_BalanceStart: [concept(proof:'Equity'),instantDuration('ComprehensiveIncome',start)],
  InvestmentsByOwners: [concept(proof:'InvestmentsByOwners')].
valueAssertionVariance_VAR01
  • derived:0
  • ok:1
  • failed:0
 Actual=Budget+Variance
'Variance_VAR01' valueAssertion
  Actual=Budget+Variance
  variables
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Revenues')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Revenues')],
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Revenues')].
valueAssertionVariance_VAR02
  • derived:0
  • ok:1
  • failed:0
 Actual=Budget+Variance
'Variance_VAR02' valueAssertion
  Actual=Budget+Variance
  variables
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Expenses')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Expenses')],
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Expenses')].
valueAssertionVariance_VAR03
  • derived:0
  • ok:1
  • failed:0
 Actual=Budget+Variance
'Variance_VAR03' valueAssertion
  Actual=Budget+Variance
  variables
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Gains')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Gains')],
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Gains')].
valueAssertionVariance_VAR04
  • derived:0
  • ok:1
  • failed:0
 Actual=Budget+Variance
'Variance_VAR04' valueAssertion
  Actual=Budget+Variance
  variables
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Losses')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Losses')],
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Losses')].
valueAssertionVariance_VAR05
  • derived:0
  • ok:1
  • failed:0
 Actual=Budget+Variance
'Variance_VAR05' valueAssertion
  Actual=Budget+Variance
  variables
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'NetIncome')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'NetIncome')],
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'NetIncome')].
valueAssertionCONSISTENCY_SFAC6_ElementsOfFinancialStatement
  • derived:0
  • ok:1
  • failed:0
 0=Equity_BalanceStart+(Revenues-Expenses+(Gains-Losses))+(InvestmentsByOwners-DistributionsToOwners)+(Liabilities_BalanceEnd-Assets_BalanceEnd)
'CONSISTENCY_SFAC6_ElementsOfFinancialStatement' valueAssertion
  0=Equity_BalanceStart+(Revenues-Expenses+(Gains-Losses))+(InvestmentsByOwners-DistributionsToOwners)+(Liabilities_BalanceEnd-Assets_BalanceEnd)
  variables
  Assets_BalanceEnd: [concept(proof:'Assets'),instantDuration('Revenues',end)],
  DistributionsToOwners: [concept(proof:'DistributionsToOwners')],
  Equity_BalanceStart: [concept(proof:'Equity'),instantDuration('Revenues',start)],
  Expenses: [concept(proof:'Expenses')],
  Gains: [concept(proof:'Gains')],
  InvestmentsByOwners: [concept(proof:'InvestmentsByOwners')],
  Liabilities_BalanceEnd: [concept(proof:'Liabilities'),instantDuration('Revenues',end)],
  Losses: [concept(proof:'Losses')],
  Revenues: [concept(proof:'Revenues')].
valueAssertionCONSISTENCY_AccountingEquation
  • derived:0
  • ok:2
  • failed:0
 Assets=Liabilities+Equity
'CONSISTENCY_AccountingEquation' valueAssertion
  Assets=Liabilities+Equity
  variables
  Assets: [concept(proof:'Assets')],
  Equity: [concept(proof:'Equity')],
  Liabilities: [concept(proof:'Liabilities')].
calculationproof:Assets (in BalanceSheet)
  • derived:0
  • ok:2
  • failed:0
 total=CurrentAssets_2+NoncurrentAssets_1
calculation('http://www.xbrlsite.com/report/role/BalanceSheet',proof:'Assets') valueAssertion /* not loadable */
  total=CurrentAssets_2+NoncurrentAssets_1
  variables
  total: [concept(proof:'Assets')],
  CurrentAssets_2: [concept(proof:'CurrentAssets')],
  NoncurrentAssets_1: [concept(proof:'NoncurrentAssets')].
calculationproof:Equity (in BalanceSheet)
  • derived:0
  • ok:2
  • failed:0
 total=EquityAttributableToControllingInterests_2+EquityAttributableToNoncontrollingInterests_1
calculation('http://www.xbrlsite.com/report/role/BalanceSheet',proof:'Equity') valueAssertion /* not loadable */
  total=EquityAttributableToControllingInterests_2+EquityAttributableToNoncontrollingInterests_1
  variables
  total: [concept(proof:'Equity')],
  EquityAttributableToControllingInterests_2: [concept(proof:'EquityAttributableToControllingInterests')],
  EquityAttributableToNoncontrollingInterests_1: [concept(proof:'EquityAttributableToNoncontrollingInterests')].
calculationproof:Liabilities (in BalanceSheet)
  • derived:0
  • ok:2
  • failed:0
 total=CurrentLiabilities_2+NoncurrentLiabilities_1
calculation('http://www.xbrlsite.com/report/role/BalanceSheet',proof:'Liabilities') valueAssertion /* not loadable */
  total=CurrentLiabilities_2+NoncurrentLiabilities_1
  variables
  total: [concept(proof:'Liabilities')],
  CurrentLiabilities_2: [concept(proof:'CurrentLiabilities')],
  NoncurrentLiabilities_1: [concept(proof:'NoncurrentLiabilities')].
calculationproof:LiabilitiesAndEquity (in BalanceSheet)
  • derived:0
  • ok:2
  • failed:0
 total=Liabilities_2+Equity_1
calculation('http://www.xbrlsite.com/report/role/BalanceSheet',proof:'LiabilitiesAndEquity') valueAssertion /* not loadable */
  total=Liabilities_2+Equity_1
  variables
  total: [concept(proof:'LiabilitiesAndEquity')],
  Liabilities_2: [concept(proof:'Liabilities')],
  Equity_1: [concept(proof:'Equity')].
calculationproof:NetCashFlow (in CashFlow)
  • derived:0
  • ok:1
  • failed:0
 total=NetCashFlowOperatingActivities_3+(NetCashFlowInvestingActivities_2+NetCashFlowFinancingActivities_1)
calculation('http://www.xbrlsite.com/report/role/CashFlow',proof:'NetCashFlow') valueAssertion /* not loadable */
  total=NetCashFlowOperatingActivities_3+(NetCashFlowInvestingActivities_2+NetCashFlowFinancingActivities_1)
  variables
  total: [concept(proof:'NetCashFlow')],
  NetCashFlowOperatingActivities_3: [concept(proof:'NetCashFlowOperatingActivities')],
  NetCashFlowInvestingActivities_2: [concept(proof:'NetCashFlowInvestingActivities')],
  NetCashFlowFinancingActivities_1: [concept(proof:'NetCashFlowFinancingActivities')].
calculationproof:NetIncome (in ComprehensiveIncome)
  • derived:0
  • ok:4
  • failed:0
 total=Revenues_4+(-Expenses_3+(Gains_2+ -Losses_1))
calculation('http://www.xbrlsite.com/report/role/ComprehensiveIncome',proof:'NetIncome') valueAssertion /* not loadable */
  total=Revenues_4+(-Expenses_3+(Gains_2+ -Losses_1))
  variables
  total: [concept(proof:'NetIncome')],
  Revenues_4: [concept(proof:'Revenues')],
  Expenses_3: [concept(proof:'Expenses')],
  Gains_2: [concept(proof:'Gains')],
  Losses_1: [concept(proof:'Losses')].
calculationproof:NetIncome (in ComprehensiveIncome2)
  • derived:0
  • ok:1
  • failed:0
 total=IncomeFromNormalActivitiesOfEntity_2+IncomeFromPeripheralOrIncidentalTransactionsOfEntity_1
calculation('http://www.xbrlsite.com/report/role/ComprehensiveIncome2',proof:'NetIncome') valueAssertion /* not loadable */
  total=IncomeFromNormalActivitiesOfEntity_2+IncomeFromPeripheralOrIncidentalTransactionsOfEntity_1
  variables
  total: [concept(proof:'NetIncome')],
  IncomeFromNormalActivitiesOfEntity_2: [concept(proof:'IncomeFromNormalActivitiesOfEntity')],
  IncomeFromPeripheralOrIncidentalTransactionsOfEntity_1: [concept(proof:'IncomeFromPeripheralOrIncidentalTransactionsOfEntity')].
calculationproof:ComprehensiveIncome (in ComprehensiveIncome3)
  • derived:0
  • ok:1
  • failed:0
 total=NetIncome_2+OtherComprehensiveIncome_1
calculation('http://www.xbrlsite.com/report/role/ComprehensiveIncome3',proof:'ComprehensiveIncome') valueAssertion /* not loadable */
  total=NetIncome_2+OtherComprehensiveIncome_1
  variables
  total: [concept(proof:'ComprehensiveIncome')],
  NetIncome_2: [concept(proof:'NetIncome')],
  OtherComprehensiveIncome_1: [concept(proof:'OtherComprehensiveIncome')].
calculationproof:NetAssets (in NetAssets)
  • derived:0
  • ok:2
  • failed:0
 total=Assets_2+ -Liabilities_1
calculation('http://www.xbrlsite.com/report/role/NetAssets',proof:'NetAssets') valueAssertion /* not loadable */
  total=Assets_2+ -Liabilities_1
  variables
  total: [concept(proof:'NetAssets')],
  Assets_2: [concept(proof:'Assets')],
  Liabilities_1: [concept(proof:'Liabilities')].
calculationproof:NetIncome (in VarianceAnalysis)
  • derived:0
  • ok:4
  • failed:0
 total=Revenues_4+(-Expenses_3+(Gains_2+ -Losses_1))
calculation('http://www.xbrlsite.com/report/role/VarianceAnalysis',proof:'NetIncome') valueAssertion /* not loadable */
  total=Revenues_4+(-Expenses_3+(Gains_2+ -Losses_1))
  variables
  total: [concept(proof:'NetIncome')],
  Revenues_4: [concept(proof:'Revenues')],
  Expenses_3: [concept(proof:'Expenses')],
  Gains_2: [concept(proof:'Gains')],
  Losses_1: [concept(proof:'Losses')].