
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Month-on-Month delta via Set Analysis
I have done period-to-period comparisons in the load script before.
But now I have a scenario too fluid for that.
'products' simply don't have a unique identity form 1 period to the next, they are 'tagged' with dozens of different values, and users can slice'n'dice charts an infinite number of ways.
So where to start approaching this ?
I have a timeline with month on the x.
Dimensions/Series could be *any*
My measure is 'cost'.
How can I get 'current month cost - previous month cost' regardless of which dimension they slice the chart by ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try this
Sum({<Month={"$(=Max(Month))"}>} Cost) - Sum({<Month={"$(=Max(Month)-1)"}>} Cost)


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Take a look on interrecord-functions like above() which enable in general to access any cell within your chart.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Marcus,
Aggr(Above(Sum(cur_amortized)), cur_bill_billing_period_start_date)
The values produce sums that equal months other than the current month, but nor necessarily the previous month - it all looks rather random.
Hence I tried to filter it in this harded coded version as a test :
Aggr( {<cur_bill_billing_period_start_date = '2025-01-01 00:00:00.000000'>} Above(Sum( cur_amortized)), cur_bill_billing_period_start_date)
That just results in null


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Keep it as simple as possible in the beginning. This means applying everything within a table-chart and a single dimension by starting with the two expressions: sum(Field) and above(sum(Field)). The aim is to comprehend the general logic and to exclude all kind of possible mistakes and to extend everything step by step. In more complex objects you may need an aggr() and/or TOTAL statements and/or n nested approaches but this isn't mandatory trivial and you may recognize that you could show the essential information within a simpler object and skipping the complicated ones (that they are technically possible doesn't mean that they are expedient for the usability).
The set analysis isn't quite correct - it missed the curved brackets:
{<cur_bill_billing_period_start_date = {'2025-01-01 00:00:00.000000'}>}
