Generated by Pacioli version 54f833c (updated 2 hours ago). Analysis at 2021-06-16T22:09:05+0000 for [email protected]. This page will remain online at https://pacioli.logicalcontracts.com/reportAnalysis/c52dcf4088acbd1f7fe9451f4239108c2e441fa9.report/index.html for about 28 days.

TypeDefinedBoundDerivedOKFail
calculation17280280
disclosure20200200
disclosureCheck20200200
existenceAssertion00000
formula80000
valueAssertion24370370

Rule Details

TypeName Rule ExpressionProlog form (technical)
formulaFAC_IMPUTE_BS_Impute_04
  • derived:0
  • ok:0
  • failed:0
 

if Assets eq null and NoncurrentAssets eq null and exists(CurrentAssets)then Assets-CurrentAssets else null

0 instance:


'FAC_IMPUTE_BS_Impute_04' formula
  if Assets eq null and NoncurrentAssets eq null and exists(CurrentAssets)then Assets-CurrentAssets else null
  variables
  CurrentAssets: [concept(fac:'CurrentAssets')],
  NoncurrentAssets: [output('INF',null),concept(fac:'NoncurrentAssets')],
  Assets: [concept(fac:'Assets')].
formulaFAC_IMPUTE_BS_Impute_12
  • derived:0
  • ok:0
  • failed:0
 

if NoncurrentLiabilities eq null and exists(Liabilities)and exists(CurrentLiabilities)then Liabilities-CurrentLiabilities else null

0 instance:


'FAC_IMPUTE_BS_Impute_12' formula
  if NoncurrentLiabilities eq null and exists(Liabilities)and exists(CurrentLiabilities)then Liabilities-CurrentLiabilities else null
  variables
  CurrentLiabilities: [concept(fac:'CurrentLiabilities')],
  Liabilities: [concept(fac:'Liabilities')],
  NoncurrentLiabilities: [output('INF',null),concept(fac:'NoncurrentLiabilities')].
formulaFAC_IMPUTE_BS_Impute_14
  • derived:0
  • ok:0
  • failed:0
 

if Liabilities eq null and exists(CurrentLiabilities)and exists(NoncurrentLiabilities)then CurrentLiabilities+NoncurrentLiabilities else null

0 instance:


'FAC_IMPUTE_BS_Impute_14' formula
  if Liabilities eq null and exists(CurrentLiabilities)and exists(NoncurrentLiabilities)then CurrentLiabilities+NoncurrentLiabilities else null
  variables
  NoncurrentLiabilities: [concept(fac:'NoncurrentLiabilities')],
  CurrentLiabilities: [concept(fac:'CurrentLiabilities')],
  Liabilities: [output('INF',null),concept(fac:'Liabilities')].
formulaFAC_IMPUTE_BS_Impute_56
  • derived:0
  • ok:0
  • failed:0
 

if NoncurrentLiabilities eq null and exists(CurrentLiabilities)and exists(Liabilities)then Liabilities-CurrentLiabilities else null

0 instance:


'FAC_IMPUTE_BS_Impute_56' formula
  if NoncurrentLiabilities eq null and exists(CurrentLiabilities)and exists(Liabilities)then Liabilities-CurrentLiabilities else null
  variables
  Liabilities: [concept(fac:'Liabilities')],
  CurrentLiabilities: [concept(fac:'CurrentLiabilities')],
  NoncurrentLiabilities: [output('INF',null),concept(fac:'NoncurrentLiabilities')].
formulaFAC_IMPUTE_BS_Impute_01
  • derived:0
  • ok:0
  • failed:0
 

if exists(LiabilitiesAndEquity)and exists(CurrentAssets)and Assets eq null and NoncurrentAssets eq null then CurrentAssets else null

0 instance:


'FAC_IMPUTE_BS_Impute_01' formula
  if exists(LiabilitiesAndEquity)and exists(CurrentAssets)and Assets eq null and NoncurrentAssets eq null then CurrentAssets else null
  variables
  NoncurrentAssets: [concept(fac:'NoncurrentAssets')],
  Assets: [output('INF',null),concept(fac:'Assets')],
  CurrentAssets: [concept(fac:'CurrentAssets')],
  LiabilitiesAndEquity: [concept(fac:'LiabilitiesAndEquity')].
formulaFAC_IMPUTE_BS_Impute_02
  • derived:0
  • ok:0
  • failed:0
 

if exists(LiabilitiesAndEquity)and exists(CurrentAssets)and exists(LiabilitiesAndEquity)and Assets eq null and NoncurrentAssets eq null then CurrentAssets else null

0 instance:


'FAC_IMPUTE_BS_Impute_02' formula
  if exists(LiabilitiesAndEquity)and exists(CurrentAssets)and exists(LiabilitiesAndEquity)and Assets eq null and NoncurrentAssets eq null then CurrentAssets else null
  variables
  NoncurrentAssets: [concept(fac:'NoncurrentAssets')],
  Assets: [output('INF',null),concept(fac:'Assets')],
  CurrentAssets: [concept(fac:'CurrentAssets')],
  LiabilitiesAndEquity: [concept(fac:'LiabilitiesAndEquity')].
formulaFAC_IMPUTE_BS_Impute_03
  • derived:0
  • ok:0
  • failed:0
 

if Assets eq null and NoncurrentAssets eq null and exists(CurrentAssets)and exists(Liabilities)and exists(Equity)and exists(LiabilitiesAndEquity)and LiabilitiesAndEquity=Liabilities+Equity then CurrentAssets else null

0 instance:


'FAC_IMPUTE_BS_Impute_03' formula
  if Assets eq null and NoncurrentAssets eq null and exists(CurrentAssets)and exists(Liabilities)and exists(Equity)and exists(LiabilitiesAndEquity)and LiabilitiesAndEquity=Liabilities+Equity then CurrentAssets else null
  variables
  LiabilitiesAndEquity: [concept(fac:'LiabilitiesAndEquity')],
  Equity: [concept(fac:'Equity')],
  Liabilities: [concept(fac:'Liabilities')],
  CurrentAssets: [concept(fac:'CurrentAssets')],
  NoncurrentAssets: [concept(fac:'NoncurrentAssets')],
  Assets: [output('INF',null),concept(fac:'Assets')].
formulaFAC_IMPUTE_BS_Impute_05
  • derived:0
  • ok:0
  • failed:0
 

if LiabilitiesAndEquity eq null and exists(Assets)then Assets else null

0 instance:


'FAC_IMPUTE_BS_Impute_05' formula
  if LiabilitiesAndEquity eq null and exists(Assets)then Assets else null
  variables
  Assets: [concept(fac:'Assets')],
  LiabilitiesAndEquity: [output('INF',null),concept(fac:'LiabilitiesAndEquity')].
valueAssertionFAC_CONSISTENCY_17
  • derived:0
  • ok:3
  • failed:0
 

NetIncomeLoss=Revenue-Expenses+Gains-Losses

3 instances:

fac:NetIncomeLoss[-750] = fac:Revenue[1000] - fac:Expenses[1000] + fac:Gains[250] - fac:Losses[1000]

fac:NetIncomeLoss[3750] = fac:Revenue[6000] - fac:Expenses[2000] + fac:Gains[750] - fac:Losses[1000]

fac:NetIncomeLoss[3000] = fac:Revenue[7000] - fac:Expenses[3000] + fac:Gains[1000] - fac:Losses[2000]


'FAC_CONSISTENCY_17' valueAssertion
  NetIncomeLoss=Revenue-Expenses+Gains-Losses
  variables
  Losses: [concept(fac:'Losses')],
  Gains: [concept(fac:'Gains')],
  Expenses: [concept(fac:'Expenses')],
  Revenue: [concept(fac:'Revenue')],
  NetIncomeLoss: [concept(fac:'NetIncomeLoss')].
valueAssertionFAC_CONSISTENCY_59
  • derived:0
  • ok:1
  • failed:0
 

ComprehensiveIncomeLoss=NetIncomeLoss+OtherComprehensiveIncome

1 instance:

fac:ComprehensiveIncomeLoss[3000] = fac:NetIncomeLoss[3000] + fac:OtherComprehensiveIncome[0]


'FAC_CONSISTENCY_59' valueAssertion
  ComprehensiveIncomeLoss=NetIncomeLoss+OtherComprehensiveIncome
  variables
  OtherComprehensiveIncome: [concept(fac:'OtherComprehensiveIncome')],
  NetIncomeLoss: [concept(fac:'NetIncomeLoss')],
  ComprehensiveIncomeLoss: [concept(fac:'ComprehensiveIncomeLoss')].
valueAssertionFAC_CONSISTENCY_2
  • derived:0
  • ok:2
  • failed:0
 

Assets=LiabilitiesAndEquity

2 instances:

fac:Assets[0] = fac:LiabilitiesAndEquity[0]

fac:Assets[3500] = fac:LiabilitiesAndEquity[3500]


'FAC_CONSISTENCY_2' valueAssertion
  Assets=LiabilitiesAndEquity
  variables
  LiabilitiesAndEquity: [concept(fac:'LiabilitiesAndEquity')],
  Assets: [concept(fac:'Assets')].
valueAssertionFAC_CONSISTENCY_3
  • derived:0
  • ok:2
  • failed:0
 

Assets=CurrentAssets+NoncurrentAssets

2 instances:

fac:Assets[0] = fac:CurrentAssets[0] + fac:NoncurrentAssets[0]

fac:Assets[3500] = fac:CurrentAssets[500] + fac:NoncurrentAssets[3000]


'FAC_CONSISTENCY_3' valueAssertion
  Assets=CurrentAssets+NoncurrentAssets
  variables
  NoncurrentAssets: [concept(fac:'NoncurrentAssets')],
  CurrentAssets: [concept(fac:'CurrentAssets')],
  Assets: [concept(fac:'Assets')].
valueAssertionFAC_CONSISTENCY_4
  • derived:0
  • ok:2
  • failed:0
 

Liabilities=CurrentLiabilities+NoncurrentLiabilities

2 instances:

fac:Liabilities[0] = fac:CurrentLiabilities[0] + fac:NoncurrentLiabilities[0]

fac:Liabilities[0] = fac:CurrentLiabilities[0] + fac:NoncurrentLiabilities[0]


'FAC_CONSISTENCY_4' valueAssertion
  Liabilities=CurrentLiabilities+NoncurrentLiabilities
  variables
  NoncurrentLiabilities: [concept(fac:'NoncurrentLiabilities')],
  CurrentLiabilities: [concept(fac:'CurrentLiabilities')],
  Liabilities: [concept(fac:'Liabilities')].
valueAssertionFAC_CONSISTENCY_5
  • derived:0
  • ok:2
  • failed:0
 

LiabilitiesAndEquity=Liabilities+Equity

2 instances:

fac:LiabilitiesAndEquity[0] = fac:Liabilities[0] + fac:Equity[0]

fac:LiabilitiesAndEquity[3500] = fac:Liabilities[0] + fac:Equity[3500]


'FAC_CONSISTENCY_5' valueAssertion
  LiabilitiesAndEquity=Liabilities+Equity
  variables
  Equity: [concept(fac:'Equity')],
  Liabilities: [concept(fac:'Liabilities')],
  LiabilitiesAndEquity: [concept(fac:'LiabilitiesAndEquity')].
valueAssertionAdjustment_ADJ01
  • derived:0
  • ok:1
  • failed:0
 

Restated=OrigionallyStated+CorrectionOfAnError+ChangesInAccountingPolicy

1 instance:

proof:Equity[0] = proof:Equity[2000] + proof:CorrectionOfAnError[-500] + proof:ChangesInAccountingPolicy[-1500]


'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

2 instances:

proof:Assets[0] = proof:Liabilities[0] + proof:Equity[0]

proof:Assets[3500] = proof:Liabilities[0] + proof:Equity[3500]


'Arithmetic_BS01' valueAssertion
  Assets=Liabilities+Equity
  variables
  Equity: [concept(proof:'Equity')],
  Liabilities: [concept(proof:'Liabilities')],
  Assets: [concept(proof:'Assets')].
valueAssertionArithmetic_BS02
  • derived:0
  • ok:2
  • failed:0
 

Assets=CurrentAssets+NoncurrentAssets

2 instances:

proof:Assets[0] = proof:CurrentAssets[0] + proof:NoncurrentAssets[0]

proof:Assets[3500] = proof:CurrentAssets[500] + proof:NoncurrentAssets[3000]


'Arithmetic_BS02' valueAssertion
  Assets=CurrentAssets+NoncurrentAssets
  variables
  NoncurrentAssets: [concept(proof:'NoncurrentAssets')],
  CurrentAssets: [concept(proof:'CurrentAssets')],
  Assets: [concept(proof:'Assets')].
valueAssertionArithmetic_BS03
  • derived:0
  • ok:2
  • failed:0
 

Liabilities=CurrentLiabilities+NoncurrentLiabilities

2 instances:

proof:Liabilities[0] = proof:CurrentLiabilities[0] + proof:NoncurrentLiabilities[0]

proof:Liabilities[0] = proof:CurrentLiabilities[0] + proof:NoncurrentLiabilities[0]


'Arithmetic_BS03' valueAssertion
  Liabilities=CurrentLiabilities+NoncurrentLiabilities
  variables
  NoncurrentLiabilities: [concept(proof:'NoncurrentLiabilities')],
  CurrentLiabilities: [concept(proof:'CurrentLiabilities')],
  Liabilities: [concept(proof:'Liabilities')].
valueAssertionArithmetic_BS04
  • derived:0
  • ok:2
  • failed:0
 

Equity=EquityAttributableToControllingInterests+EquityAttributableToNoncontrollingInterests

2 instances:

proof:Equity[0] = proof:EquityAttributableToControllingInterests[0] + proof:EquityAttributableToNoncontrollingInterests[0]

proof:Equity[3500] = proof:EquityAttributableToControllingInterests[3000] + proof:EquityAttributableToNoncontrollingInterests[500]


'Arithmetic_BS04' valueAssertion
  Equity=EquityAttributableToControllingInterests+EquityAttributableToNoncontrollingInterests
  variables
  EquityAttributableToNoncontrollingInterests: [concept(proof:'EquityAttributableToNoncontrollingInterests')],
  EquityAttributableToControllingInterests: [concept(proof:'EquityAttributableToControllingInterests')],
  Equity: [concept(proof:'Equity')].
valueAssertionArithmetic_CF01
  • derived:0
  • ok:1
  • failed:0
 

NetCashFlow=NetCashFlowOperatingActivities+NetCashFlowFinancingActivities+NetCashFlowInvestingActivities

1 instance:

proof:NetCashFlow[3500] = proof:NetCashFlowOperatingActivities[1500] + proof:NetCashFlowFinancingActivities[1000] + proof:NetCashFlowInvestingActivities[1000]


'Arithmetic_CF01' valueAssertion
  NetCashFlow=NetCashFlowOperatingActivities+NetCashFlowFinancingActivities+NetCashFlowInvestingActivities
  variables
  NetCashFlowInvestingActivities: [concept(proof:'NetCashFlowInvestingActivities')],
  NetCashFlowFinancingActivities: [concept(proof:'NetCashFlowFinancingActivities')],
  NetCashFlowOperatingActivities: [concept(proof:'NetCashFlowOperatingActivities')],
  NetCashFlow: [concept(proof:'NetCashFlow')].
valueAssertionArithmetic_IS01
  • derived:0
  • ok:3
  • failed:0
 

NetIncome=Revenues-Expenses+Gains-Losses

3 instances:

proof:NetIncome[-750] = proof:Revenues[1000] - proof:Expenses[1000] + proof:Gains[250] - proof:Losses[1000]

proof:NetIncome[3750] = proof:Revenues[6000] - proof:Expenses[2000] + proof:Gains[750] - proof:Losses[1000]

proof:NetIncome[3000] = proof:Revenues[7000] - proof:Expenses[3000] + proof:Gains[1000] - proof:Losses[2000]


'Arithmetic_IS01' valueAssertion
  NetIncome=Revenues-Expenses+Gains-Losses
  variables
  Losses: [concept(proof:'Losses')],
  Gains: [concept(proof:'Gains')],
  Expenses: [concept(proof:'Expenses')],
  Revenues: [concept(proof:'Revenues')],
  NetIncome: [concept(proof:'NetIncome')].
valueAssertionArithmetic_IS02
  • derived:0
  • ok:1
  • failed:0
 

NetIncome=IncomeFromNormalActivitiesOfEntity+IncomeFromPeripheralOrIncidentalTransactionsOfEntity

1 instance:

proof:NetIncome[3000] = proof:IncomeFromNormalActivitiesOfEntity[2000] + proof:IncomeFromPeripheralOrIncidentalTransactionsOfEntity[1000]


'Arithmetic_IS02' valueAssertion
  NetIncome=IncomeFromNormalActivitiesOfEntity+IncomeFromPeripheralOrIncidentalTransactionsOfEntity
  variables
  IncomeFromPeripheralOrIncidentalTransactionsOfEntity: [concept(proof:'IncomeFromPeripheralOrIncidentalTransactionsOfEntity')],
  IncomeFromNormalActivitiesOfEntity: [concept(proof:'IncomeFromNormalActivitiesOfEntity')],
  NetIncome: [concept(proof:'NetIncome')].
valueAssertionArithmetic_NA01
  • derived:0
  • ok:2
  • failed:0
 

NetAssets=Assets-Liabilities

2 instances:

proof:NetAssets[0] = proof:Assets[0] - proof:Liabilities[0]

proof:NetAssets[3500] = proof:Assets[3500] - proof:Liabilities[0]


'Arithmetic_NA01' valueAssertion
  NetAssets=Assets-Liabilities
  variables
  Liabilities: [concept(proof:'Liabilities')],
  Assets: [concept(proof:'Assets')],
  NetAssets: [concept(proof:'NetAssets')].
valueAssertionMemberAggregation_MA1
  • derived:0
  • ok:1
  • failed:0
 

Total eq sum(Each)

1 instance:

7000, 1000, 4000, 2000


'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:1
  • failed:0
 

Total eq sum(Each)

1 instance:

0, -1500, -500, 2000


'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

1 instance:

proof:Assets[0] + proof:NetCashFlow[3500] = proof:Assets[3500]


'RollForward_CF01' valueAssertion
  Assets_BalanceStart+NetCashFlow=Assets_BalanceEnd
  variables
  Assets_BalanceEnd: [concept(proof:'Assets'),instantDuration('NetCashFlow',end)],
  NetCashFlow: [concept(proof:'NetCashFlow')],
  Assets_BalanceStart: [concept(proof:'Assets'),instantDuration('NetCashFlow',start)].
valueAssertionRollForward_SHE01
  • derived:0
  • ok:1
  • failed:0
 

Equity_BalanceStart+ComprehensiveIncome+InvestmentsByOwners-DistributionsToOwners=Equity_BalanceEnd

1 instance:

proof:Equity[0] + proof:ComprehensiveIncome[3000] + proof:InvestmentsByOwners[1000] - proof:DistributionsToOwners[500] = proof:Equity[3500]


'RollForward_SHE01' valueAssertion
  Equity_BalanceStart+ComprehensiveIncome+InvestmentsByOwners-DistributionsToOwners=Equity_BalanceEnd
  variables
  Equity_BalanceEnd: [concept(proof:'Equity'),instantDuration('ComprehensiveIncome',end)],
  DistributionsToOwners: [concept(proof:'DistributionsToOwners')],
  InvestmentsByOwners: [concept(proof:'InvestmentsByOwners')],
  ComprehensiveIncome: [concept(proof:'ComprehensiveIncome')],
  Equity_BalanceStart: [concept(proof:'Equity'),instantDuration('ComprehensiveIncome',start)].
valueAssertionVariance_VAR01
  • derived:0
  • ok:1
  • failed:0
 

Actual=Budget+Variance

1 instance:

proof:Revenues[7000] = proof:Revenues[6000] + proof:Revenues[1000]


'Variance_VAR01' valueAssertion
  Actual=Budget+Variance
  variables
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Revenues')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Revenues')],
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Revenues')].
valueAssertionVariance_VAR02
  • derived:0
  • ok:1
  • failed:0
 

Actual=Budget+Variance

1 instance:

proof:Expenses[3000] = proof:Expenses[2000] + proof:Expenses[1000]


'Variance_VAR02' valueAssertion
  Actual=Budget+Variance
  variables
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Expenses')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Expenses')],
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Expenses')].
valueAssertionVariance_VAR03
  • derived:0
  • ok:1
  • failed:0
 

Actual=Budget+Variance

1 instance:

proof:Gains[1000] = proof:Gains[750] + proof:Gains[250]


'Variance_VAR03' valueAssertion
  Actual=Budget+Variance
  variables
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Gains')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Gains')],
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Gains')].
valueAssertionVariance_VAR04
  • derived:0
  • ok:1
  • failed:0
 

Actual=Budget+Variance

1 instance:

proof:Losses[2000] = proof:Losses[1000] + proof:Losses[1000]


'Variance_VAR04' valueAssertion
  Actual=Budget+Variance
  variables
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'Losses')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'Losses')],
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'Losses')].
valueAssertionVariance_VAR05
  • derived:0
  • ok:1
  • failed:0
 

Actual=Budget+Variance

1 instance:

proof:NetIncome[3000] = proof:NetIncome[3750] + proof:NetIncome[-750]


'Variance_VAR05' valueAssertion
  Actual=Budget+Variance
  variables
  Variance: [explicitDimension(proof:'ScenarioAxis',[proof:'VarianceMember']),concept(proof:'NetIncome')],
  Budget: [explicitDimension(proof:'ScenarioAxis',[proof:'BudgetedMember']),concept(proof:'NetIncome')],
  Actual: [explicitDimension(proof:'ScenarioAxis',[proof:'ActualMember']),concept(proof:'NetIncome')].
calculationfac:Assets (in BSC)
  • derived:0
  • ok:2
  • failed:0
 

total=CurrentAssets_2+NoncurrentAssets_1

2 instances:

fac:Assets[3500] = fac:CurrentAssets[500] + fac:NoncurrentAssets[3000]

fac:Assets[0] = fac:CurrentAssets[0] + fac:NoncurrentAssets[0]


calculation('http://www.xbrlsite.com/fac/role/BSC',fac:'Assets') valueAssertion /* not loadable */
  total=CurrentAssets_2+NoncurrentAssets_1
  variables
  total: [concept(fac:'Assets')],
  CurrentAssets_2: [concept(fac:'CurrentAssets')],
  NoncurrentAssets_1: [concept(fac:'NoncurrentAssets')].
calculationfac:Equity (in BSC)
  • derived:0
  • ok:2
  • failed:0
 

total=EquityAttributableToControllingInterests_2+EquityAttributableToNoncontrollingInterests_1

2 instances:

fac:Equity[3500] = fac:EquityAttributableToControllingInterests[3000] + fac:EquityAttributableToNoncontrollingInterests[500]

fac:Equity[0] = fac:EquityAttributableToControllingInterests[0] + fac:EquityAttributableToNoncontrollingInterests[0]


calculation('http://www.xbrlsite.com/fac/role/BSC',fac:'Equity') valueAssertion /* not loadable */
  total=EquityAttributableToControllingInterests_2+EquityAttributableToNoncontrollingInterests_1
  variables
  total: [concept(fac:'Equity')],
  EquityAttributableToControllingInterests_2: [concept(fac:'EquityAttributableToControllingInterests')],
  EquityAttributableToNoncontrollingInterests_1: [concept(fac:'EquityAttributableToNoncontrollingInterests')].
calculationfac:Liabilities (in BSC)
  • derived:0
  • ok:2
  • failed:0
 

total=CurrentLiabilities_2+NoncurrentLiabilities_1

2 instances:

fac:Liabilities[0] = fac:CurrentLiabilities[0] + fac:NoncurrentLiabilities[0]

fac:Liabilities[0] = fac:CurrentLiabilities[0] + fac:NoncurrentLiabilities[0]


calculation('http://www.xbrlsite.com/fac/role/BSC',fac:'Liabilities') valueAssertion /* not loadable */
  total=CurrentLiabilities_2+NoncurrentLiabilities_1
  variables
  total: [concept(fac:'Liabilities')],
  CurrentLiabilities_2: [concept(fac:'CurrentLiabilities')],
  NoncurrentLiabilities_1: [concept(fac:'NoncurrentLiabilities')].
calculationfac:LiabilitiesAndEquity (in BSC)
  • derived:0
  • ok:2
  • failed:0
 

total=Liabilities_2+Equity_1

2 instances:

fac:LiabilitiesAndEquity[3500] = fac:Liabilities[0] + fac:Equity[3500]

fac:LiabilitiesAndEquity[0] = fac:Liabilities[0] + fac:Equity[0]


calculation('http://www.xbrlsite.com/fac/role/BSC',fac:'LiabilitiesAndEquity') valueAssertion /* not loadable */
  total=Liabilities_2+Equity_1
  variables
  total: [concept(fac:'LiabilitiesAndEquity')],
  Liabilities_2: [concept(fac:'Liabilities')],
  Equity_1: [concept(fac:'Equity')].
calculationfac:NetCashFlow (in CashFlowStatement)
  • derived:0
  • ok:1
  • failed:0
 

total=NetCashFlowFromOperatingActivities_3+(NetCashFlowFromInvestingActivities_2+NetCashFlowFromFinancingActivities_1)

1 instance:

fac:NetCashFlow[3500] = fac:NetCashFlowFromOperatingActivities[1500] + fac:NetCashFlowFromInvestingActivities[1000] + fac:NetCashFlowFromFinancingActivities[1000]


calculation('http://www.xbrlsite.com/fac/role/CashFlowStatement',fac:'NetCashFlow') valueAssertion /* not loadable */
  total=NetCashFlowFromOperatingActivities_3+(NetCashFlowFromInvestingActivities_2+NetCashFlowFromFinancingActivities_1)
  variables
  total: [concept(fac:'NetCashFlow')],
  NetCashFlowFromOperatingActivities_3: [concept(fac:'NetCashFlowFromOperatingActivities')],
  NetCashFlowFromInvestingActivities_2: [concept(fac:'NetCashFlowFromInvestingActivities')],
  NetCashFlowFromFinancingActivities_1: [concept(fac:'NetCashFlowFromFinancingActivities')].
calculationfac:NetIncomeLoss (in IS1)
  • derived:0
  • ok:1
  • failed:0
 

total=Revenue_4+(-Expenses_3+(Gains_2+ -Losses_1))

1 instance:

fac:NetIncomeLoss[3000] = fac:Revenue[7000] + - fac:Expenses[3000] + fac:Gains[1000] + - fac:Losses[2000]


calculation('http://www.xbrlsite.com/fac/role/IS1',fac:'NetIncomeLoss') valueAssertion /* not loadable */
  total=Revenue_4+(-Expenses_3+(Gains_2+ -Losses_1))
  variables
  total: [concept(fac:'NetIncomeLoss')],
  Revenue_4: [concept(fac:'Revenue')],
  Expenses_3: [concept(fac:'Expenses')],
  Gains_2: [concept(fac:'Gains')],
  Losses_1: [concept(fac:'Losses')].
calculationfac:ComprehensiveIncomeLoss (in OCI)
  • derived:0
  • ok:1
  • failed:0
 

total=NetIncomeLoss_2+OtherComprehensiveIncome_1

1 instance:

fac:ComprehensiveIncomeLoss[3000] = fac:NetIncomeLoss[3000] + fac:OtherComprehensiveIncome[0]


calculation('http://www.xbrlsite.com/fac/role/OCI',fac:'ComprehensiveIncomeLoss') valueAssertion /* not loadable */
  total=NetIncomeLoss_2+OtherComprehensiveIncome_1
  variables
  total: [concept(fac:'ComprehensiveIncomeLoss')],
  NetIncomeLoss_2: [concept(fac:'NetIncomeLoss')],
  OtherComprehensiveIncome_1: [concept(fac:'OtherComprehensiveIncome')].
calculationproof:Assets (in BalanceSheet)
  • derived:0
  • ok:2
  • failed:0
 

total=CurrentAssets_2+NoncurrentAssets_1

2 instances:

proof:Assets[3500] = proof:CurrentAssets[500] + proof:NoncurrentAssets[3000]

proof:Assets[0] = proof:CurrentAssets[0] + proof:NoncurrentAssets[0]


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

2 instances:

proof:Equity[3500] = proof:EquityAttributableToControllingInterests[3000] + proof:EquityAttributableToNoncontrollingInterests[500]

proof:Equity[0] = proof:EquityAttributableToControllingInterests[0] + proof:EquityAttributableToNoncontrollingInterests[0]


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

2 instances:

proof:Liabilities[0] = proof:CurrentLiabilities[0] + proof:NoncurrentLiabilities[0]

proof:Liabilities[0] = proof:CurrentLiabilities[0] + proof:NoncurrentLiabilities[0]


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

2 instances:

proof:LiabilitiesAndEquity[3500] = proof:Liabilities[0] + proof:Equity[3500]

proof:LiabilitiesAndEquity[0] = proof:Liabilities[0] + proof:Equity[0]


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)

1 instance:

proof:NetCashFlow[3500] = proof:NetCashFlowOperatingActivities[1500] + proof:NetCashFlowInvestingActivities[1000] + proof:NetCashFlowFinancingActivities[1000]


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:1
  • failed:0
 

total=Revenues_4+(-Expenses_3+(Gains_2+ -Losses_1))

1 instance:

proof:NetIncome[3000] = proof:Revenues[7000] + - proof:Expenses[3000] + proof:Gains[1000] + - proof:Losses[2000]


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

1 instance:

proof:NetIncome[3000] = proof:IncomeFromNormalActivitiesOfEntity[2000] + proof:IncomeFromPeripheralOrIncidentalTransactionsOfEntity[1000]


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

1 instance:

proof:ComprehensiveIncome[3000] = proof:NetIncome[3000] + proof:OtherComprehensiveIncome[0]


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

2 instances:

proof:NetAssets[3500] = proof:Assets[3500] + - proof:Liabilities[0]

proof:NetAssets[0] = proof:Assets[0] + - proof:Liabilities[0]


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:3
  • failed:0
 

total=Revenues_4+(-Expenses_3+(Gains_2+ -Losses_1))

3 instances:

proof:NetIncome[3750] = proof:Revenues[6000] + - proof:Expenses[2000] + proof:Gains[750] + - proof:Losses[1000]

proof:NetIncome[-750] = proof:Revenues[1000] + - proof:Expenses[1000] + proof:Gains[250] + - proof:Losses[1000]

proof:NetIncome[3000] = proof:Revenues[7000] + - proof:Expenses[3000] + proof:Gains[1000] + - proof:Losses[2000]


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')].
disclosuredisclosures:AssetsRollForward
  • detections:1
 
Assets Roll Forward
  • disclosures:AssetsRollForward requires:
  • 1 instance:

    proof:CashFlowHypercube is presented
    Detected block 1.1.2.1.rollForward with proof:Assets

    Not yet
    disclosuredisclosures:AssetsRollUp
    • detections:1
     
    Assets Roll Up
  • disclosures:AssetsRollUp requires:
  • 1 instance:

    proof:BalanceSheetHypercube is presented
    Detected block 1.1.1.3.rollUp with proof:Assets

    Not yet
    disclosuredisclosures:BalanceSheet
    • detections:1
     
    Balance Sheet
  • disclosures:BalanceSheet requires:
  • 1 instance:

    01-Balance Sheet Balance Sheet [Hypercube] is a component
    proof:BalanceSheetHypercube is presented
    Detected block 1.1.1.3.rollUp with proof:Assets
    Detected block 1.1.2.3.rollUp with proof:LiabilitiesAndEquity

    Not yet
    disclosuredisclosures:BasisOfReporting
    • detections:1
     
    Basis of Reporting
  • disclosures:BasisOfReporting requires:
  • 1 instance:

    proof:PoliciesHypercube is presented
    Detected block 1.1.1.textBlock with proof:BasisOfReportingTextBlock

    Not yet
    disclosuredisclosures:CashFlowStatement
    • detections:1
     
    Cash Flow Statement
  • disclosures:CashFlowStatement requires:
  • 1 instance:

    06-Cash Flow Cash Flow [Hypercube] is a component
    proof:CashFlowHypercube is presented
    Detected block 1.1.1.4.rollUp with proof:NetCashFlow
    Detected block 1.1.2.1.rollForward with proof:Assets

    Not yet
    disclosuredisclosures:ChangesInEquity
    • detections:1
     
    Changes in Equity
  • disclosures:ChangesInEquity requires:
  • 1 instance:

    proof:ChangesInEquityHypercube is presented
    Detected block 1.1.1.1.rollForward with proof:Equity

    Not yet
    disclosuredisclosures:ComprehensiveIncome
    • detections:1
     
    Comprehensive Income
  • disclosures:ComprehensiveIncome requires:
  • 1 instance:

    proof:ComprehensiveIncomeStatementHypercube is presented
    Detected block 1.1.1.3.rollUp with proof:ComprehensiveIncome

    Not yet
    disclosuredisclosures:FinancialHighlights
    • detections:1
     
    Financial Highlights
  • disclosures:FinancialHighlights requires:
  • 1 instance:

    proof:FinancialHighlightsHypercube is presented
    proof:ComprehensiveIncome is presented
    proof:DistributionsToOwners is presented
    Detected block 1.1.1.1.set with proof:Revenues

    Not yet
    disclosuredisclosures:IncomeStatement
    • detections:1
     
    Income Statement
  • disclosures:IncomeStatement requires:
  • 1 instance:

    proof:ComprehensiveIncomeStatementHypercube is presented
    proof:Gains is presented
    Detected block 1.1.1.5.rollUp with proof:NetIncome

    Not yet
    disclosuredisclosures:IncomeStatementAlternative
    • detections:1
     
    Income Statement Alternative
  • disclosures:IncomeStatementAlternative requires:
  • 1 instance:

    proof:ComprehensiveIncomeStatementHypercube is presented
    proof:IncomeFromNormalActivitiesOfEntity is presented
    proof:IncomeFromPeripheralOrIncidentalTransactionsOfEntity is presented
    Detected block 1.1.1.3.rollUp with proof:NetIncome

    Not yet
    disclosuredisclosures:LiabilitiesAndEquityRollUp
    • detections:1
     
    Liabilities and Equity Roll Up
  • disclosures:LiabilitiesAndEquityRollUp requires:
  • 1 instance:

    proof:BalanceSheetHypercube is presented
    Detected block 1.1.2.3.rollUp with proof:LiabilitiesAndEquity

    Not yet
    disclosuredisclosures:NatureOfOperations
    • detections:1
     
    Nature of Operations
  • disclosures:NatureOfOperations requires:
  • 1 instance:

    proof:PoliciesHypercube is presented
    Detected block 1.1.2.textBlock with proof:NatureOfOperationsTextBlock

    Not yet
    disclosuredisclosures:NetAssetsRollUp
    • detections:1
     
    Net Assets Roll Up
  • disclosures:NetAssetsRollUp requires:
  • 1 instance:

    proof:NetAssetsHypercube is presented
    Detected block 1.1.1.3.rollUp with proof:NetAssets

    Not yet
    disclosuredisclosures:NetCashFlowRollUp
    • detections:1
     
    Net Cash Flow Roll Up
  • disclosures:NetCashFlowRollUp requires:
  • 1 instance:

    proof:CashFlowHypercube is presented
    Detected block 1.1.1.4.rollUp with proof:NetCashFlow

    Not yet
    disclosuredisclosures:PriorPeriodError
    • detections:1
     
    Prior Period Error
  • disclosures:PriorPeriodError requires:
  • 1 instance:

    proof:PriorPeriodErrorsHypercube is presented
    proof:ReportDateAxis is presented
    Detected block 1.2.1.1.adjustment with proof:Equity

    Not yet
    disclosuredisclosures:PriorPeriodErrorAlternative
    • detections:1
     
    Prior Period Error Alternative
  • disclosures:PriorPeriodErrorAlternative requires:
  • 1 instance:

    proof:PriorPeriodErrorsHypercube is presented
    proof:RestatementAxis is presented
    Detected block 1.2.1.1.set with proof:Equity

    Not yet
    disclosuredisclosures:RevenueRecognitionPolicy
    • detections:1
     
    Revenue Recognition Policy
  • disclosures:RevenueRecognitionPolicy requires:
  • 1 instance:

    proof:PoliciesHypercube is presented
    Detected block 1.1.3.textBlock with proof:RevenueRecognitionPolicyTextBlock

    Not yet
    disclosuredisclosures:SegmentRevenues
    • detections:1
     
    Segment Revenues
  • disclosures:SegmentRevenues requires:
  • 1 instance:

    proof:SegmentRevenuesHypercube is presented
    proof:SegmentsAxis is presented
    Detected block 1.2.1.1.set with proof:Revenues

    Not yet
    disclosuredisclosures:StockPlanActivity
    • detections:1
     
    Stock Plan Activity
  • disclosures:StockPlanActivity requires:
  • 1 instance:

    proof:WeightedAverageGrantDateFairValueHypercube is presented
    Detected block 1.1.1.1.rollForwardInfo with proof:NonvestedFairValue

    Not yet
    disclosuredisclosures:VarianceAnalysis
    • detections:1
     
    Variance Analysis
  • disclosures:VarianceAnalysis requires:
  • 1 instance:

    proof:VarianceAnalysisHypercube is presented
    proof:ScenarioAxis is presented
    Detected block 1.2.1.5.rollUp with proof:NetIncome

    Not yet
    disclosureCheckrequire [disclosures:BalanceSheet]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:AssetsRollUp]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:LiabilitiesAndEquityRollUp]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:AssetsRollForward]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:BasisOfReporting]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:CashFlowStatement]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:ChangesInEquity]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:ComprehensiveIncome]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:FinancialHighlights]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:IncomeStatementAlternative]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:NatureOfOperations]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:NetAssetsRollUp]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:NetCashFlowRollUp]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:PriorPeriodError]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:PriorPeriodErrorAlternative]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:RevenueRecognitionPolicy]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:SegmentRevenues]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:StockPlanActivity]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:VarianceAnalysis]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet
    disclosureCheckrequire [disclosures:IncomeStatement]
    • ok:1
    • failed:0
     
    Requires disclosure:

    1 instance:

    Not yet

    For more information: http://logicalcontracts.com/xbrl-and-sbrm-reporting/
    DISCLAIMER: this analysis is provided by software still under development, and likely incomplete or even erroneous; do NOT use it other than for experimental, inconsequential purposes