Model: Cash Planning - Specifications for Fact Table: CASH PLAN MEASURES

On this page you will find the specifications regarding the Model: Cash Planning and Fact Table: CASH PLAN MEASURES.

Attributes

Attribute Description (where applicable)

Measures (table to be generated as far as possible)

Aggregation of measures is based on SUM if not explicitly noted.

This section describes the basic measures in the cube. These are either measures defined in the core Information Source, in the model itself or in the ETL process. The columns have the following meaning:

Measure Calculated Y/N Contains Time Intelligence Y/N Definition/Note (where applicable) Aggregation Type Hidden Y/N Measure Expression
Cash Flow (Sum By All Dates)YYCumulative Cash flow measure selected with switch function - Presents cumulative values even for dates without any transactions.N VAR MaxDate = MAX('CASH FLOW PERIOD'[Cash Flow Date]) RETURN CALCULATE( [Cash Flow], 'CASH FLOW PERIOD'[Cash Flow Date]<=MaxDate, ALL('CASH FLOW PERIOD') ) // Cumulative Cash flow by all dates. // NOTE: Cumulative value at all dates, even presents values on dates without any transactions. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific month this measures does not start summering from the start of the month, but from the first existing transaction date. // NOTE: Do not use this measure when presenting values by Time buckets. // NOTE: Due to performance issue this measure may require that the user filter the presentation to a small selection of dates.
Inflow (Sum By All Dates)YYCumulative Inflow measure selected with switch function - Presents cumulative values even for dates without any transactions.N VAR MaxDate = MAX('CASH FLOW PERIOD'[Cash Flow Date]) RETURN CALCULATE( [Inflow], 'CASH FLOW PERIOD'[Cash Flow Date]<=MaxDate, ALL('CASH FLOW PERIOD') ) // Cumulative Inflow by all dates. // NOTE: Cumulative value at all dates, even presents values on dates without any transactions. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific month this measures does not start summering from the start of the month, but from the first existing transaction date. // NOTE: Do not use this measure when presenting values by Time buckets. // NOTE: Due to performance issue this measure may require that the user filter the presentation to a small selection of dates.
Outflow (Sum By All Dates)YYCumulative Outflow measure selected with switch function - Presents cumulative values even for dates without any transactions.N VAR MaxDate = MAX('CASH FLOW PERIOD'[Cash Flow Date]) RETURN CALCULATE( [Outflow], 'CASH FLOW PERIOD'[Cash Flow Date]<=MaxDate, ALL('CASH FLOW PERIOD') ) // Cumulative Outflow by all dates. // NOTE: Cumulative value at all dates, even presents values on dates without any transactions. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific month this measures does not start summering from the start of the month, but from the first existing transaction date. // NOTE: Do not use this measure when presenting values by Time buckets. // NOTE: Due to performance issue this measure may require that the user filter the presentation to a small selection of dates.
Cash Flow (Sum By All Time buckets)YYCumulative Cash flow measure selected with switch function - Presents cumulative values even for time bucket without any transactions.N VAR CurrentTimeBucket = SELECTEDVALUE('TIME BUCKET'[Time Bucket Code]) RETURN CALCULATE( [Cash Flow], 'TIME BUCKET'[Time Bucket Code] <= CurrentTimeBucket, ALL('TIME BUCKET') ) // Cumulative Cash flow by all time buckets. // NOTE: Cumulative value at all time buckets, even presents values on time buckets without any transactions. // NOTE: Do not use this measure when presenting values by any date column. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific date this measures does not start summering from that date, but from the first existing transaction date. // PREREQUISITE: 'Time Bucket Code' columns needs to be a whole number and with numbers increasing by time. So e.g. 'Time Bucket Desc'='Week 1' requires a lower value in 'Time Bucket Code' then 'Time Bucket Desc' = 'Week 2' etc. // PREREQUISITE: Filter a single 'Time Scale ID' value in the TIME BUCKET table if more than one Time Scale value exist. Doing such filtering without also including 'Time Scale ID' = (Blank) means that any transactions that missing time bucket value will be excluded from the calculation of the measures stored in the folder 'Base Measure' but included in this cumulative measure.
Inflow (Sum By All Time buckets)YYCumulative Inflow measure selected with switch function - Presents cumulative values even for time bucket without any transactions.N VAR CurrentTimeBucket = SELECTEDVALUE('TIME BUCKET'[Time Bucket Code]) RETURN CALCULATE( [Inflow], 'TIME BUCKET'[Time Bucket Code] <= CurrentTimeBucket, ALL('TIME BUCKET') ) // Cumulative Inflow by all time buckets // NOTE: Cumulative value at all time buckets, even presents values on time buckets without any transactions. // NOTE: Do not use this measure when presenting values by any date column. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific date this measures does not start summering from that date, but from the first existing transaction date. // PREREQUISITE: 'Time Bucket Code' columns needs to be a whole number and with numbers increasing by time. So e.g. 'Time Bucket Desc'='Week 1' requires a lower value in 'Time Bucket Code' then 'Time Bucket Desc' = 'Week 2' etc. // PREREQUISITE: Filter a single 'Time Scale ID' value in the TIME BUCKET table if more than one Time Scale value exist. Doing such filtering without also including 'Time Scale ID' = (Blank) means that any transactions that missing time bucket value will be excluded from the calculation of the measures stored in the folder 'Base Measure' but included in this cumulative measure.
Outflow (Sum By All Time buckets)YYCumulative Outflow measure selected with switch function - Presents cumulative values even for time bucket without any transactions.N VAR CurrentTimeBucket = SELECTEDVALUE('TIME BUCKET'[Time Bucket Code]) RETURN CALCULATE( [Outflow], 'TIME BUCKET'[Time Bucket Code] <= CurrentTimeBucket, ALL('TIME BUCKET') ) // Cumulative Outflow by all time buckets. // NOTE: Cumulative value at all time buckets, even presents values on time buckets without any transactions. // NOTE: Do not use this measure when presenting values by any date column. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific date this measures does not start summering from that date, but from the first existing transaction date. // PREREQUISITE: 'Time Bucket Code' columns needs to be a whole number and with numbers increasing by time. So e.g. 'Time Bucket Desc'='Week 1' requires a lower value in 'Time Bucket Code' then 'Time Bucket Desc' = 'Week 2' etc. // PREREQUISITE: Filter a single 'Time Scale ID' value in the TIME BUCKET table if more than one Time Scale value exist. Doing such filtering without also including 'Time Scale ID' = (Blank) means that any transactions that missing time bucket value will be excluded from the calculation of the measures stored in the folder 'Base Measure' but included in this cumulative measure.
Cash Flow (Sum By Date)YYCumulative Cash flow measure selected with switch function - Presents cumulative values only for dates with transactions.N VAR RunningTotal= CALCULATE( [Cash flow], FILTER(ALL('CASH FLOW PERIOD'), 'CASH FLOW PERIOD'[Cash Flow Date]<=MAX('CASH FLOW PERIOD'[Cash Flow Date]))) RETURN IF(COUNTROWS('CASH PLAN DETAILS'), RunningTotal) // Cumulative Cash Flow on dates with transaction. // NOTE: Cumulative value, only presents values on dates with any transaction. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific month this measures does not start summering from the start of the month, but from the first existing transaction date. // NOTE: Do not use this measure when presenting values by Time buckets. // NOTE: Due to performance issue this measure may require that the user filter the presentation to a small selection of dates.
Inflow (Sum By Date)YYCumulative Inflow measure selected with switch function - Presents cumulative values only for dates with transactions.N VAR RunningTotal= CALCULATE( [Inflow], FILTER(ALL('CASH FLOW PERIOD'), 'CASH FLOW PERIOD'[Cash Flow Date]<=MAX('CASH FLOW PERIOD'[Cash Flow Date]))) RETURN IF(COUNTROWS('CASH PLAN DETAILS'), RunningTotal) // Cumulative Inflow on dates with transaction. // NOTE: Cumulative value, only presents values on dates with any transaction. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific month this measures does not start summering from the start of the month, but from the first existing transaction date. // NOTE: Do not use this measure when presenting values by Time buckets. // NOTE: Due to performance issue this measure may require that the user filter the presentation to a small selection of dates.
Outflow (Sum By Date)YYCumulative Outflow measure selected with switch function - Presents cumulative values only for dates with transactions.N VAR RunningTotal= CALCULATE( [Outflow], FILTER(ALL('CASH FLOW PERIOD'), 'CASH FLOW PERIOD'[Cash Flow Date]<=MAX('CASH FLOW PERIOD'[Cash Flow Date]))) RETURN IF(COUNTROWS('CASH PLAN DETAILS'), RunningTotal) // Cumulative Outflow on dates with transaction // NOTE: Cumulative value, only presents values on dates with any transaction. // NOTE: The cumulative value is the total sum from the first transaction for the cash plan. So if filtered on e.g. a specific month this measures does not start summering from the start of the month, but from the first existing transaction date. // NOTE: Do not use this measure when presenting values by Time buckets. // NOTE: Due to performance issue this measure may require that the user filter the presentation to a small selection of dates.
Cash Flow (Sum By Time bucket)YYCumulative Cash flow measure selected with switch function - Presents cumulative values only for time buckets with transactions.N VAR RunningTotal= CALCULATE( [Cash flow], FILTER(ALL('TIME BUCKET'), 'TIME BUCKET'[Time Bucket Code]<=MAX('TIME BUCKET'[Time Bucket Code]))) RETURN IF(COUNTROWS('CASH PLAN DETAILS'), RunningTotal) // Cumulative Cash flow by time buckets with transactions. // NOTE: Do not use this measure when presenting values by any date column. // NOTE: The cumulative value is the total sum from the first time bucket for the cash plan. So if filtered on e.g. a specific time bucket this measures does not start summering from that point in time, but from the first existing transaction. // PREREQUISITE: 'Time Bucket Code' columns needs to be a whole number and with numbers increasing by time. So e.g. 'Time Bucket Desc'='Week 1' requires a lower value in 'Time Bucket Code' then 'Time Bucket Desc' = 'Week 2' etc.
Inflow (Sum By Time bucket)YYCumulative Inflow measure selected with switch function - Presents cumulative values only for time buckets with transactions.N VAR RunningTotal= CALCULATE( [Inflow], FILTER(ALL('TIME BUCKET'), 'TIME BUCKET'[Time Bucket Code]<=MAX('TIME BUCKET'[Time Bucket Code]))) RETURN IF(COUNTROWS('CASH PLAN DETAILS'), RunningTotal) // Cumulative Inflow by time buckets with transactions. // NOTE: Do not use this measure when presenting values by any date column. // NOTE: The cumulative value is the total sum from the first time bucket for the cash plan. So if filtered on e.g. a specific time bucket this measures does not start summering from that point in time, but from the first existing transaction. // PREREQUISITE: 'Time Bucket Code' columns needs to be a whole number and with numbers increasing by time. So e.g. 'Time Bucket Desc'='Week 1' requires a lower value in 'Time Bucket Code' then 'Time Bucket Desc' = 'Week 2' etc.
Outflow (Sum By Time bucket)YYCumulative Outflow measure selected with switch function - Presents cumulative values only for time buckets with transactions.N VAR RunningTotal= CALCULATE( [Outflow], FILTER(ALL('TIME BUCKET'), 'TIME BUCKET'[Time Bucket Code]<=MAX('TIME BUCKET'[Time Bucket Code]))) RETURN IF(COUNTROWS('CASH PLAN DETAILS'), RunningTotal) // Cumulative Outflow by time buckets with transactions. // NOTE: Do not use this measure when presenting values by any date column. // NOTE: The cumulative value is the total sum from the first time bucket for the cash plan. So if filtered on e.g. a specific time bucket this measures does not start summering from that point in time, but from the first existing transaction. // PREREQUISITE: 'Time Bucket Code' columns needs to be a whole number and with numbers increasing by time. So e.g. 'Time Bucket Desc'='Week 1' requires a lower value in 'Time Bucket Code' then 'Time Bucket Desc' = 'Week 2' etc.
Selected Rep Curr 1YYFinds the currency code for reporting currency 1NSELECTEDVALUE('CASH PLAN'[Cash Plan Reporting Currency 1]) // Contains the currency code for the Reporting currency 1. // PREREQUISITE: Need to select (filter) a single Cash plan for this measure to work.
Selected Rep Curr 2YYFinds the currency code for reporting currency 2NSELECTEDVALUE('CASH PLAN'[Cash Plan Reporting Currency 2]) // Contains the currency code for the Reporting currency 2. // PREREQUISITE: Need to select (filter) a single Cash plan for this measure to work.
Selected Rep Curr 3YYFinds the currency code for reporting currency 3NSELECTEDVALUE('CASH PLAN'[Cash Plan Reporting Currency 3]) // Contains the currency code for the Reporting currency 3. // PREREQUISITE: Need to select (filter) a single Cash plan for this measure to work.
Acc Curr AmountNNCash flow in Accounting currency, excluding taxNSUM('CASH PLAN DETAILS'[Acc Currency Amount] ) // Accounting currency without tax. // Sum of the column 'CASH PLAN DETAILS'[Acc Currency Amount].
Acc Curr Amount With TaxNNCash flow in Accounting currency, including taxNSUM('CASH PLAN DETAILS'[Acc Currency Amount With Tax] ) // Accounting currency with tax. // Sum of the column 'CASH PLAN DETAILS'[Acc Currency Amount With Tax].
Rep 1 Curr AmountNNCash flow in Reporting currency 1, excluding taxSUMNSUM('CASH PLAN DETAILS'[Rep Currency 1 Amount]) // Reporting currency 1 without tax. // Sum of the column 'CASH PLAN DETAILS'[Rep Currency 1 Amount].
Rep 1 Curr Amount With TaxNNCash flow in Reporting currency 1, including taxSUMNSUM('CASH PLAN DETAILS'[Rep Currency 1 Amount With Tax]) // Reporting currency 1 with tax. // Sum of the column 'CASH PLAN DETAILS'[Rep Currency 1 Amount With Tax].
Rep 2 Curr AmountNNCash flow in Reporting currency 2, excluding taxSUMNSUM('CASH PLAN DETAILS'[Rep Currency 2 Amount]) // Reporting currency 2 without tax. // Sum of the column 'CASH PLAN DETAILS'[Rep Currency 2 Amount].
Rep 2 Curr Amount With TaxNNCash flow in Reporting currency 2, including taxSUMNSUM('CASH PLAN DETAILS'[Rep Currency 2 Amount With Tax]) // Reporting currency 2 with tax. // Sum of the column 'CASH PLAN DETAILS'[Rep Currency 2 Amount With Tax].
Rep 3 Curr AmountNNCash flow in Reporting currency 3, excluding taxSUMNSUM('CASH PLAN DETAILS'[Rep Currency 3 Amount]) // Reporting currency 3 without tax. // Sum of the column 'CASH PLAN DETAILS'[Rep Currency 3 Amount].
Rep 3 Curr Amount With TaxNNCash flow in Reporting currency 3, including taxSUMNSUM('CASH PLAN DETAILS'[Rep Currency 3 Amount With Tax]) // Reporting currency 3 with tax. // Sum of the column 'CASH PLAN DETAILS'[Rep Currency 3 Amount With Tax].
Trans Curr AmountNNCash flow in Transaction currency, excluding taxSUMNSUM('CASH PLAN DETAILS'[Trans Currency Amount] ) // Transaction currency without tax. // Sum of the column 'CASH PLAN DETAILS'[Trans Currency Amount].
Trans Curr Amount With TaxNNCash flow in Transaction currency, including taxSUMNSUM('CASH PLAN DETAILS'[Trans Currency Amount With Tax] ) // Transaction currency with tax. // Sum of the column 'CASH PLAN DETAILS'[Trans Currency Amount With Tax].
Cash FlowYNCash flow measure selected with switch functionNSWITCH([Selected Amount Measure], 1, [Acc Curr Amount With Tax], 2, [Acc Curr Amount], 3, [Trans Curr Amount With Tax], 4, [Trans Curr Amount], 5, [Rep 1 Curr Amount With Tax], 6, [Rep 1 Curr Amount], 7, [Rep 2 Curr Amount With Tax], 8, [Rep 2 Curr Amount], 9, [Rep 3 Curr Amount With Tax], 10, [Rep 3 Curr Amount] ) // Cash flow as sum of Opening balance, Inflow and Outflow. // This measure switch between the 10 different measures stored in the folder 'Values from Fact table'. // PREREQUISITE: Need to filter a single value from table SWITCH CURRENCY TYPE and SWITCH TAX for the measure to present any values.
InflowYNInflow measure selected with switch functionNCALCULATE([Cash Flow],'INFLOW OUTFLOW'[InFlow OutFlow Code]="IN") // Inflow - Only includes the transactions with Flow = IN, excluding OUT and CASH_BALANCE. // PREREQUISITE: Need to filter a single value from table SWITCH CURRENCY TYPE and SWITCH TAX for the measure to present any values.
OutflowYNOutflow measure selected with switch functionNCALCULATE([Cash Flow]*-1,'INFLOW OUTFLOW'[InFlow OutFlow Code]="OUT") // Outflow - Only includes the transactions with Flow = OUT, excluding IN and CASH_BALANCE // PREREQUISITE: Need to filter a single value from table SWITCH CURRENCY TYPE and SWITCH TAX for the measure to present any values.
Currency Code for SubtitleNNGive text to use in visual headers.NSWITCH( [Selected Currency], 3, "All values displayed in "& [Selected Rep Curr 1], 4, "All values displayed in "& [Selected Rep Curr 2], 5, "All values displayed in "& [Selected Rep Curr 3] ) // Contains text that can be used as a subtitle in visuals that present values by transaction currency. // The subtitle then shows the abbreviation for the selected reporting currency, which is then the currency in which all values are displayed.

Time Intelligence Measures

Time based measures are calculated in the cube with respect to other measures. The table below defines the meaning/definition of  the different time measures. These measures need to be used with a specific time dimension hierarchy [REPORTING_DATE].[RepDateMFHy].

Measure Meaning
YTD Aggregated value for current month in current  year. E.g. for period 202010 Ytd represents sum of periods 202000-202010.
R12 For a given period, the sum all months from one year back up to the previous month. E.g. Rolling 12 for 202010 is the sum of months 201910 - 202009
PY Previous Year
The value of the corresponding month one year back. E.g. for month 202010, the value of month 201910.
YTD PY Year to Date Previous Year
Aggregated value for corresponding month one year back. E.g. for month 202010 YTD Previous Year represents sum of months 201901-201910.
R12 PY Rolling 12 (completed) Months Previous Year
For a given month, first going one year back, then taking the sum of all months from one (more) year back up to the previous month. E.g. for month 202010 the sum of month 201810-201909
Avg XXX Ytd Sum XXX YTD/Count XXX YTD
Avg XXX R12 Sum XXX R12/Count XXX R12
XXX % YTD Count XXX YTD/Count YYY YTD
XXX % R12 Count XXX R12/Count XXX R12

USED BY MODEL(S)

Model Name

Data source Information

The data source for this object is defined using IFS Developer Tool. Further Transformations are done using Power BI.

Additional information can be found in the online documentation of Information Sources.

Model Table BI Access View Referenced Information Source Recommended Access Type
CASH PLAN MEASURESFACT_CASH_PLAN_DETAIL_BIFACT_CASH_PLAN_DETAILOn Line