Casabase Cube 4.1.4
Release: 4.1.4
Release type: Patch
Released: September 13, 2026
Platform: Snowflake Native App
Casabase Cube 4.1.4 adds rest-of-period Dynamic Time Series, extends Dynamic Time Series to cubes without an Accounts dimension, and improves Point of View handling for member and Dynamic Time Series selections.
Dynamic Time Series
Section titled “Dynamic Time Series”Rest-of-Period Dynamic Time Series
Section titled “Rest-of-Period Dynamic Time Series”Dynamic Time Series can now measure forward to the end of a period as well as backward from the start of one.
Every Dynamic Time Series member now has a direction:
TODATE— Cumulative to date. The window begins at the start of the grain and ends at the requested period, supporting year-to-date and quarter-to-date behavior such as YTD and QTD.FROMDATE— Rest of period. The window begins at the requested period and ends at the end of the grain, supporting rest-of-year and rest-of-quarter behavior such as ROY and ROQ.
For example, with quarterly periodic values of Jan 13,047, Feb 6,216, and Mar 9,720:
| Period | TODATE (QTD) | FROMDATE (ROQ) |
|---|---|---|
| Jan | 13,047 | 28,983 |
| Feb | 19,263 | 15,936 |
| Mar | 28,983 | 9,720 |
Configuration
Section titled “Configuration”MANAGE_CUBE_DTS now accepts a final P_DIRECTION parameter:
MANAGE_CUBE_DTS( P_CUBE_NAME, P_ACTION, P_DTS_DIM, P_DTS_MEMBER, P_BASE_MEMBER, P_GRAIN, P_SKIP_POS, P_ACTIVE, P_IDS, P_DIRECTION)To configure rest of quarter:
CALL CUBE.MANAGE_CUBE_DTS( '<CUBE>','UPSERT','VIEW','ROQ','MTD','QUARTER', 1,TRUE,NULL,'FROMDATE');To configure rest of year:
CALL CUBE.MANAGE_CUBE_DTS( '<CUBE>','UPSERT','VIEW','ROY','MTD','YEAR', 1,TRUE,NULL,'FROMDATE');P_DIRECTION accepts TODATE or FROMDATE. Other values are rejected with an explicit message identifying the valid options.
No dimension rebuild or data reload is required when adding or changing a direction. The change takes effect on the next query.
Balance Accounts
Section titled “Balance Accounts”For cubes with an Accounts dimension, time balance is honored in both directions.
For rest-of-period calculations, a balance account returns the balance at the requested period, where the window opens, rather than the closing balance at the end of the grain. This treats rest-of-period balances as positions rather than accumulations.
Existing Dynamic Time Series configuration is unaffected and continues to behave as before.
Cubes Without an Accounts Dimension
Section titled “Cubes Without an Accounts Dimension”Dynamic Time Series now works on cubes that do not designate an Accounts dimension.
Previously, period-to-date members on these cubes returned no rows because there was no Accounts dimension with time-balance information.
On cubes without an Accounts dimension, every measure is treated as a flow and the Dynamic Time Series window is summed.
For cubes that do designate an Accounts dimension, existing time-balance behavior is unchanged. Flow accounts are summed, balance accounts use the appropriate closing or opening value, and each account follows its configured setting.
Corrected Behavior
Section titled “Corrected Behavior”Consistent Member Names in a Point of View
Section titled “Consistent Member Names in a Point of View”The following Point of View forms are now equivalent and are normalized to the same internal representation:
{"DIMENSION": ["Member"]}{"DIMENSION": "Member"}{"DIMENSION": [{"member": "Member"}]}Previously, these forms could behave differently:
- A plain name referencing a summary/upper-level member could return no rows, while the equivalent member-object form returned the correct rolled-up value.
- An unbracketed member value could raise an error instead of being interpreted as a single member.
- A plain-name Dynamic Time Series member such as YTD could be read as stored data instead of computing its period-to-date window.
Mixed Periodic and Period-to-Date Selections
Section titled “Mixed Periodic and Period-to-Date Selections”Queries that select a periodic member and a Dynamic Time Series member together on the same dimension are now rejected with a clear error.
For example:
{"VIEW": ["MTD", "YTD"]}Previously, the Dynamic Time Series member could be silently omitted from the result.
The query now reports that Dynamic Time Series members cannot be selected through expansion and must be queried individually. The same validation applies when a Dynamic Time Series member is reached through an operator such as ichildren.
Query each view separately and combine the results in the reporting layer, or maintain a saved query for each view.
Upgrade Notes
Section titled “Upgrade Notes”Existing Dynamic Time Series Configuration
Section titled “Existing Dynamic Time Series Configuration”Existing Dynamic Time Series entries continue to behave as before. No rebuild or data reload is required to use or change the new direction setting.
Cubes Without an Accounts Dimension
Section titled “Cubes Without an Accounts Dimension”If a cube has period-to-date members that previously returned blank results because it does not designate an Accounts dimension, those members should now return values.
Validate these results against a manually calculated window before publishing them.
Saved Queries and Reports
Section titled “Saved Queries and Reports”Reports that previously returned no data when selecting summary/upper-level members by plain name (without the {“member”:} construct) will now return data as expected.
Mixed periodic and Dynamic Time Series selections must be issued as separate queries.
