AX2619
Handling time-based data in tables
Time is not usually defined as a dimension in Axiom Software. Instead, time-based data is stored in series of sequential columns in data tables.
For example, if you want to calculate twelve months of budget data, that data is stored in twelve columns named something like NYB1 through NYB12 (where "NYB" is a convention for "Next Year's Budget"). The columns can be literally named that, or you can name the columns something like M1 through M12, and use alias names to point to the appropriate columns for next year's budget. Alias names allow for some additional flexibility—for example, when you move to a new year of planning, you can edit the aliases so that the P1 through P12 columns are now associated with the alias names for CYB (Current Year's Budget), and the NYB alias names now point to a different table.
Time is handled this way so that data is stored in exactly the same way that it is presented in plan files within the system. Plan files are typically structured so that each column represents a month (or other periodicity) of plan data. Using the same structure for tables optimizes the save-to-database process for plan files, and also provides the following benefits:
-
Data is optimized for reporting, since time is usually presented in columns in variance reports. Since the general structure is the same, Axiom Software does not have to reorganize the data to bring it into the report, which could slow performance.
Although this is the most common way to present data in reports, it is by no means the only way. You can present dimensions side-by-side in columns (such as one column for each department or region), including stacked variance calculations for each dimension element, and you can present time vertically. Any data can be presented in any format.
-
All data related to a specific record is stored on the same row. Axiom Software can save string values in certain columns and decimal values in others—all related to one line of “the plan.” If time was a dimension instead of sequential columns, then all data would be in one tall and thin table with multiple rows per account/department combination. All information related to one line of a plan would be scattered in the table and dissociated.
-
Because data is stored in the same way that it is presented in Axiom files, it is easier for finance users to understand the database structure and view data directly when needed.
-
Column aliases can be used so that the source column for a relative time period (like "last year's actuals") can change over time, allowing for dynamic reporting.
-
Storing time data in columns makes it easy to "lock down" time-specific data as needed—the column can be set to read-only.
Columns that hold time-based data are created in the same way as other database columns; however, you can use the Add Multiple Columns feature to create all of the columns at once. To define the columns as a sequential "set" of data, you define a sequence for the columns. This allows you to create calculated fields for the sequence, such as YTD (year-to-date) and TOT (total).
Each table can have one or multiple "sets" of time-based data columns. For example, you can have a table that contains three years of data, with three sets of sequential columns representing each year. Or you can have one table for each year, with each table containing one set of sequential columns.