What dimensions are — and why they are not sub-accounts
Short answer. A dimension is a tag you attach to an entry: department, project, business line, salesperson, location. Instead of multiplying sub-accounts like "6310.1 Vendors North" and "6310.2 Vendors South", you keep one account and attach a "Region" dimension. The chart of accounts stays short while the analytics become multi-dimensional.
The practical difference shows up in month two. When a manager asks for "costs on project X broken down by department for the quarter", a system with dimensions answers with a filter in half a minute. A system with analytics baked into account numbers needs a new account for every combination — and within a year the chart of accounts grows to thousands of lines that nobody can navigate.
The constraint people discover too late: two dimensions have special status (global), and changing them once entries exist is a separate technical procedure that rebuilds every record. That is why global dimensions are chosen before go-live, not "later on".
Three kinds of dimensions
Business Central distinguishes dimensions not by meaning but by how quickly you can reach them.
| Type | How many | Where available | Best used for |
|---|---|---|---|
| Global (Global Dimension 1, 2) | exactly 2 | dedicated fields on every entry, available in report filters and standard analysis | the two most frequent cuts: usually department and project or business line |
| Shortcut (3–8) | 6 | shown directly on document and journal lines | whatever people type often: salesperson, campaign, sales channel |
| Regular | no hard limit | through the document dimension set | rare cuts needed for specific reports |
Combinations are stored as dimension set entries, which means adding another regular dimension does not rebuild table structures and needs no downtime. Only changing the global ones is expensive.
Setting one up, step by step
- Create the dimension. Search → Dimensions → new line: a code (for example
DEPT) and a name. Keep codes short — they end up in filters and exports. - Fill in the values. From the dimension line → Dimension Values. This is where actual departments, projects or business lines go.
- Think about each value's type. Beyond the ordinary Standard, you get Heading, Begin-Total, End-Total and Total. These let you build a hierarchy — individual workshops grouped under "Production", so a report shows both detail and subtotal.
- Assign the globals. General Ledger Setup → Global Dimension 1 Code and Global Dimension 2 Code. This is the point of no return: after entries exist, changing them requires a dedicated tool and real time on a large database.
- Distribute the rest across slots 3–8. General Ledger Setup → Shortcut Dimensions. Simple rule: slots go to whatever a human types every day.
Default dimensions: stop relying on people remembering
The most common cause of broken analytics is not a setup error but a human one: someone forgot to put the project on an order line. The fix is configuration, not training.
Customer, vendor, item, G/L account, fixed asset and employee cards all have a Dimensions → Default Dimensions section. There you set the value that gets suggested automatically and, more importantly, the enforcement rule in Value Posting:
| Setting | Behaviour | When to use it |
|---|---|---|
| blank | suggests a value, allows changing or clearing it | most cases |
| Code Mandatory | the entry will not post without a dimension value | expense accounts where analytics matter |
| Same Code | only one specific value is allowed | accounts tied to a single department |
| No Code | no value allowed at all | technical and clearing accounts |
Code Mandatory on expense accounts is the cheapest way to guarantee complete analytics. The system simply refuses to post without the department filled in, and the discipline problem solves itself.
When several defaults compete for the same entry — the customer says one thing, the item another — Default Dimension Priorities decides whose suggestion wins.
Blocked combinations
Dimension Combinations answers a different question: whether two dimensions may appear together on the same entry at all. It has three states — allowed, Limited (only listed value pairs) and Blocked.
Typical case: the project "Warehouse refit" cannot belong to the "Retail" department. Rather than catching that during month-end close, you block the combination once and the system rejects the entry at the moment of data entry.
Where the payoff shows up
- Analysis by Dimensions — a pivot table inside the system: rows and columns are dimensions, figures come from the chosen analysis view. The fastest way to check whether analytics are being captured at all.
- Filters on standard reports — trial balance and ledger reports accept global dimensions as ordinary filters, with no customization.
- Power BI — where dimensions really pay off: dimension sets are exposed through the API and become dashboard slicers.
Sanity check: if after a month of live operation you have entries with an empty global dimension, the problem is not the report — it is Value Posting. Fix it at the point of entry, not in analytics.
Five expensive mistakes
- Picking global dimensions by intuition. This decision lasts for years. Before choosing, list the ten reports management actually asks for and see which two attributes they are sliced by most often.
- Creating fifteen dimensions "just in case". Every dimension is a field somebody has to fill. An empty dimension is worse than a missing one — it creates the illusion of analytics.
- Using a dimension where you need a master record. A dimension is an attribute of an entry, not an entity with its own properties. If your "project" needs a budget, dates and an owner, you need Jobs, not a dimension.
- Leaving default dimensions empty on master data. Then data quality depends on people paying attention — and by month three it stops depending on anything, because there is no analytics left.
- Designing dimensions after data migration. Historical balances arrive without analytics and period comparison becomes impossible. Dimension design is the first thing you do before moving data, not the last.
If you are planning a move and have not settled the analytics structure yet, this is exactly what we work through in a free process audit alongside the implementation scope.
