On dimensions, units of measure, and the space that commerce occupies alone
"The enormous usefulness of mathematics in the natural sciences is something bordering on the mysterious, and there is no rational explanation for it."
— Eugene Wigner, The Unreasonable Effectiveness of Mathematics in the Natural Sciences, 1960
"The price of everything is the quantity of everything else that you must give in exchange for it."
— After Adam Smith, The Wealth of Nations, 1776
There is a distinction, fundamental to the practice of physical science and almost entirely absent from the practice of commercial software, between a dimension and a unit. The distinction is not difficult to state. A dimension is a kind of quantity — length, mass, time. A unit is a particular scale for measuring a particular kind. Metres and feet are both units of length; they are not different dimensions. You can convert between metres and feet because they measure the same thing; the conversion is exact and permanent and does not depend on the state of the world. You cannot convert between metres and kilograms, not because the conversion factor is unknown or variable, but because there is no conversion factor: length and mass are different dimensions, and a quantity stated in metres and a quantity stated in kilograms inhabit, in a precise mathematical sense, different spaces. The error of adding them is not a numerical error. It is a categorical one. The number you would produce by adding them is not wrong in its arithmetic. It is incoherent in its meaning — a response to a question that should not have been asked.
The argument of this essay is that money is a dimension in exactly this sense — that an amount of money is not a number, not a mass, not an energy, not a quantity reducible to any combination of the physical dimensions that science has identified, but a genuinely independent kind of quantity that deserves to be treated as such — and that the failure of commercial software to treat it as such is the source of a class of error that is widespread, underappreciated, and, in principle, entirely preventable. The proposal is not metaphorical. It is structural. The International System of Units defines seven base dimensions. Commercial systems require an eighth. The consequences of not providing it are arithmetically invisible and semantically catastrophic, and they have been accumulating in financial software since the first time a programmer stored an amount of money as a bare floating-point number.
To understand what a dimension is requires attending to why the seven base dimensions of the International System were chosen, and in particular to the criterion that governs the choice. The seven are: length, mass, time, electric current, thermodynamic temperature, amount of substance, and luminous intensity. They are represented in the notation of dimensional analysis by the symbols L, M, T, I, Θ, N, and J respectively. All other physical quantities are derived from these seven through multiplication and division. Velocity is L·T⁻¹ — length per unit time. Force is M·L·T⁻² — mass times length per unit time squared. Energy is M·L²·T⁻² — the same, multiplied by another length. Pressure is M·L⁻¹·T⁻². Every physical quantity that science has ever found occasion to measure can be expressed as a product of powers of these seven, and the expression is not a convention or an approximation; it is a statement about the structure of the quantity itself.1
The criterion for a quantity's inclusion as a base dimension is that it cannot be expressed as a product of powers of the others — that it is, in the technical sense, dimensionally irreducible. This is not merely a matter of current knowledge. It is a statement about the fabric of what the quantity is. Length cannot be derived from mass and time because there is no combination of mass and time that produces length; they are different in kind, not merely different in scale. The same holds for each of the seven. The seven are not the only choice of basis — you could, in principle, choose a different set of seven quantities as your primitives and derive the current seven from them — but they are a valid basis, and the property that makes them a valid basis is their mutual irreducibility. No one of the seven can be expressed in terms of the remaining six.
With this criterion in hand, consider the question of money. The question is not whether money is usefully measured in numbers — it plainly is — but whether an amount of money is reducible to any combination of the seven physical base dimensions. Is one dollar a length? No. Is it a mass? The gold standard might seem to suggest so — one dollar was once defined as a particular weight of gold — but this was a political choice, not a dimensional one, and the weight of gold that a dollar could purchase was not a fixed physical constant but a regulated exchange rate, which is precisely the kind of thing that changes when governments decide it should. Is money an energy? Thermodynamic theories of economic value have been proposed and have, without exception, failed to produce a stable conversion from joules to dollars. Is money a product of some combination of length, mass, time, and the rest? No proposal along these lines has survived contact with the empirical behaviour of prices. An amount of money resists every attempt at dimensional reduction. It is irreducible. It is, by the criterion that governs the seven, a base dimension.2
The proposal, then, is to extend the system of base dimensions by one, as follows. The table below shows the seven SI base dimensions alongside the proposed eighth.
| Dimension | Symbol | Canonical SI unit |
|---|---|---|
| Length | L | Metre (m) |
| Mass | M | Kilogram (kg) |
| Time | T | Second (s) |
| Electric current | I | Ampere (A) |
| Temperature | Θ | Kelvin (K) |
| Amount of substance | N | Mole (mol) |
| Luminous intensity | J | Candela (cd) |
| Currency | $ | No universal unit; unit is the denomination |
The specific currency — dollar, euro, pound, yen — plays the role of unit within the currency dimension, just as the metre, foot, and inch are all units within the length dimension. This framing is clarifying rather than merely decorative. In the physical case, different units of the same dimension are related by exact, permanent conversion factors: one inch is 0.0254 metres, exactly, and has been since the international yard and pound agreement of 1959, and will remain so regardless of what happens to the price of steel or the output of the Federal Reserve. In the currency case, different units of the currency dimension are related by conversion factors — exchange rates — that are real-valued, non-negative, and, critically, time-varying. One dollar is worth some number of euros today, a different number tomorrow, and a different number again in six months. This time-variance is a complication, not an invalidation. Exchange rates are still conversion factors. Their variability means that any cross-currency calculation must carry, as part of its metadata, not merely the currencies involved but the rate and timestamp at which the conversion was performed. This is a requirement that dimensional analysis reveals directly; it is not visible at all in a system that represents monetary amounts as bare numbers.3
The practical power of dimensional analysis — the reason it is taught in every serious physics curriculum — is that it provides an error-detection mechanism that is entirely independent of the numerical values involved. If you are deriving an equation and your dimensional analysis shows that the left side has dimensions M·L²·T⁻² and the right side has dimensions M·L·T⁻², you have made an error somewhere, regardless of whether the numbers look plausible. The numbers might agree to several decimal places for the specific values you tested. They are still wrong, because the equation is dimensionally incoherent, and dimensional incoherence means that the equation will fail — will produce results that are not merely numerically incorrect but categorically meaningless — as soon as you vary the inputs in ways that expose the dimensional mismatch. A dimensionally incoherent equation is not an approximation. It is a category error committed in the language of arithmetic.
The failure mode this exposes is of a particular kind: it is invisible to any test that does not check dimensions. Numbers carry no record of what they represent. A quantity can be a force, a velocity, an exchange rate, or a dimensionless ratio — and arithmetic performed on it will proceed identically in all cases, producing results that are numerically consistent and categorically meaningless in all but one. This is not a failure that conventional testing can reliably catch, because the test must know what value to expect, and if the dimensional error is present in the specification of the expected value, no comparison of actual against expected will reveal it. Dimensional errors are structural, not numerical. They require structural verification — the kind of verification that only a system aware of dimensions can provide.
Commercial software produces this class of failure continuously, and at scale, and without any external signal to make the failure salient. A reporting system adds together revenues denominated in dollars and revenues denominated in euros, producing a number labelled either dollars or euros and, in fact, neither. A risk calculation adds a dollar-denominated exposure to a sterling-denominated liability, netting the two against each other as though they were the same thing, and produces a net exposure that is dimensionally incoherent in exactly the way that adding a force to a velocity is dimensionally incoherent. A multi-currency portfolio is marked to market using exchange rates from different timestamps for different positions, producing a total that represents no coherent economic moment. In each case, the arithmetic executes without error. In each case, the result is categorically meaningless. In each case, the error is invisible to any test that does not check dimensions — which is to say, invisible to almost every test that commercial software teams actually run.
The implications ramify into the design of commercial quantities beyond the simple case of a monetary amount. In the physical sciences, derived dimensions are constructed from base dimensions through multiplication and division, and the dimensional analysis of a derived quantity follows automatically from the analysis of its components. Pressure is force per unit area — M·L·T⁻² divided by L² — which is M·L⁻¹·T⁻². You do not need to know anything special about pressure to derive its dimensions; you need only to know the dimensions of force and area, and to apply the rule that division inverts the exponent. The same logic applies to commercial quantities once currency is admitted as a base dimension.
A price — the cost of a good per unit quantity — is a compound dimension: currency per unit of whatever is being priced. The price of wheat is $·M⁻¹ — currency per unit mass. The price of land is $·L⁻² — currency per unit area. The price of electricity is $·M⁻¹·L⁻²·T² — currency divided by energy. A revenue rate is $·T⁻¹ — currency per unit time. A discount rate, expressed as a percentage per annum, is T⁻¹ — not a currency dimension at all, which is why it can be applied as a scalar multiplier across currencies without conversion. A price elasticity is dimensionless: it is the ratio of a proportional change in quantity to a proportional change in price, and proportional changes cancel their units. Working out the dimensional formula of a commercial quantity reveals, immediately, whether an operation being proposed on that quantity is coherent. Multiplying a price in $·M⁻¹ by a mass in M gives a result in $ — a monetary amount, as expected. Multiplying a price in $·M⁻¹ by a length in L gives a result in $·M⁻¹·L — which has no natural commercial interpretation and is a signal that something in the calculation is wrong, before any specific numbers have been considered.4
There is a subtlety in the treatment of exchange rates that the dimensional framework makes explicit and that accounting practice has grappled with, in its own vocabulary, for a very long time. If the dollar and the euro are different units of a single currency dimension, then an exchange rate is a dimensionless conversion factor — a pure number that tells you how many euros correspond to one dollar at a given moment — and a euro-denominated amount, multiplied by an exchange rate, yields a dollar-denominated amount of the same dimension. This is the natural analogy to the metre-to-foot conversion, and it is clean. The difficulty is that this framing implies that the currency dimension has a natural unit — some universal monetary primitive — in the way that the length dimension has the metre as its SI unit. No such universal monetary primitive exists. The dollar and the euro are not simply different scales on the same underlying substance, in the way that the metre and the foot are different scales on the underlying substance of spatial extension. Their relationship is constituted by a market, not by a physical constant.
An alternative framing, which avoids this difficulty, is to treat each currency not as a unit of a single currency dimension but as a basis vector in a multi-dimensional currency space. In this framing, a dollar amount and a euro amount are not merely quantities in the same dimension expressed in different units; they are quantities in different, orthogonal dimensions that happen to have a time-varying projection relationship with each other. The total commercial position of a firm operating across multiple currencies is then a vector in this multi-dimensional currency space, and a consolidated financial statement — which reports the position in a single reporting currency — is a projection of that vector onto a single axis, using exchange rates as the projection coefficients. This is not merely a metaphor. It is what the accounting consolidation process actually computes, and the fact that consolidated statements change when exchange rates change, without any change in the underlying commercial position, is exactly the property one would expect of a projection that changes when the projection coefficients change. The currency translation reserve — the accounting entry that captures the effect of exchange rate movements on a consolidated balance sheet — is, in geometric terms, the residual of the projection, the component of the position vector that is visible in the reporting currency today but would have been of different magnitude under a different set of projection coefficients.
What should follow from this analysis for the design of commercial systems? The immediate practical implication is well understood in principle and poorly implemented in practice: monetary amounts should never be represented as bare numbers. A monetary amount is not a number any more than a velocity is a number. Both require, as part of their representation, a statement of their dimensional context — for velocity, the units (metres per second, or miles per hour, or knots); for monetary amounts, the currency. A function that accepts a monetary amount as input and does not specify which currency it expects is underspecified in exactly the way that a function that accepts a velocity and does not specify the units is underspecified. Both will produce correct-looking results for the inputs that happen to match the implicit assumption and incorrect results — sometimes drastically incorrect results — for the inputs that do not.5
The deeper implication, which follows from taking the dimensional analogy seriously rather than as a loose metaphor, is that the operations permitted on monetary amounts should be governed by dimensional rules in the same way that the operations permitted on physical quantities are governed by them. Addition is defined only between quantities of the same dimension and the same unit — or, more precisely, between quantities of the same dimension, with an explicit unit conversion applied before the addition if the units differ. Multiplication of two monetary amounts produces a result in $² — currency squared — which is a coherent dimension but one with no obvious commercial interpretation, a signal that something unusual is happening that deserves attention. Multiplication of a monetary amount by a dimensionless quantity — a quantity, a rate, a proportion — produces another monetary amount, which is the normal case of applying a scalar to a price. Division of a monetary amount by another monetary amount produces a dimensionless quantity — a ratio, a proportion — which is valid and often useful. Each of these rules follows from the dimensional structure, and each of them would catch, if enforced at the level of the type system, a significant fraction of the currency-related bugs that currently pass undetected through commercial software.
The proposal, in its most compressed form, is this: the physical sciences have developed, over three centuries, a precise and powerful framework for reasoning about quantities and their relationships — a framework in which the kind of quantity is as important as its magnitude, and in which operations that violate the rules of dimensional consistency are rejected as incoherent before numerical evaluation begins. Commerce has quantities too, and those quantities have a structure that the physical framework does not, on its own, capture — because commercial quantities include a dimension that the physical framework does not contain. That dimension is currency. The framework can be extended. The extension is exact, not approximate. The benefits are exactly the benefits that dimensional analysis has always provided: errors caught before they propagate, computations known to be coherent before the numbers are consulted, and a formal guarantee that when two quantities are added, they are quantities of the same kind. That guarantee is not exotic. It is the minimum requirement for arithmetic to mean something. Commercial software has been operating without it for as long as it has existed, and the consequences — miscalculated exposures, incoherent consolidations, exchange-rate bugs that persist undetected until a large move in the market makes the numbers implausible enough to prompt an investigation — have been accumulating quietly in systems that were told to multiply and add and never told to ask what they were multiplying and adding together.
1The framework of dimensional analysis was given its modern form in the work of Joseph Fourier, who introduced the idea of dimensional formulas in his Théorie analytique de la chaleur (1822), and was subsequently developed by James Clerk Maxwell, who systematised the treatment of base dimensions in his Treatise on Electricity and Magnetism (1873). The identification of the seven base dimensions now used in the SI was the result of international standardisation work spanning most of the twentieth century and culminating in the 1960 Conférence Générale des Poids et Mesures, which established the modern International System. The choice of seven is not sacred; it reflects the current state of physics. If two of the current base dimensions were shown to be related by a fundamental physical law — as, for instance, the discovery of special relativity showed that length and time are related through the speed of light — the number of independent base dimensions would be reduced. Conversely, if a quantity were found that was genuinely irreducible to the current seven, the number would be increased. The system is in principle open to revision.
2The attempt to ground monetary value in thermodynamics — to find a conversion from physical units to monetary units — has a surprisingly long history and has attracted serious scientists. Frederick Soddy, the Nobel Prize-winning chemist, argued in Wealth, Virtual Wealth and Debt (1926) that the monetary system should be grounded in energy. Nicholas Georgescu-Roegen developed a more sophisticated thermodynamic theory of economics in The Entropy Law and the Economic Process (1971). Both approaches, and all subsequent variants, have the same fundamental difficulty: they can establish that energy is necessary for economic production, which is true, without establishing that monetary value is proportional to energy content in any stable or universal way, which is false. The price of a good reflects scarcity, institutional context, preferences, and expectations, none of which reduce to any physical quantity. The irreducibility of currency to the physical base dimensions is not merely an empirical observation about the failure of particular reduction programmes; it follows from the nature of what prices are.
3The time-variance of exchange rates distinguishes them from physical unit conversion factors in a way that has direct implications for the design of commercial data systems. A physical measurement — a length of 5.2 metres — remains 5.2 metres regardless of when it was measured; the conversion to feet does not depend on the measurement date. A monetary amount of €5.2 million, converted to dollars, depends entirely on the rate used — which depends on the time at which the conversion is applied. This means that a dollar-equivalent amount derived from a euro amount is not a property of the underlying commercial quantity; it is a snapshot of the underlying quantity under a particular projection at a particular time. Systems that store dollar equivalents of foreign-currency amounts without storing the original amount and the exchange rate used are destroying information in the same way that a system that stores the total of a set of transactions without storing the individual transactions is destroying information. In both cases, the reconstruction is impossible without the components, and the components have been discarded.
4The dimensional analysis of compound commercial quantities reveals a number of results that are non-obvious but correct. A price-to-earnings ratio, for instance, is often described as expressing "how many years of earnings are implied by the current price" — which is correct, because the price has dimensions $, the earnings have dimensions $·T⁻¹ (currency per year), and their ratio has dimensions T (time). The ratio is not a pure number; it is a duration, which is why comparing a price-to-earnings ratio across companies with different fiscal-year conventions requires care. Similarly, a return on equity — net income divided by shareholder equity — is dimensionless: currency divided by currency. The units cancel. This is why it can be compared directly across companies reporting in different currencies without any exchange-rate adjustment, a property that practitioners use without usually knowing its dimensional justification.
5The practical implementation of dimensional enforcement for monetary amounts in software has a well-developed but underadopted history. Martin Fowler's Money pattern, described in Patterns of Enterprise Application Architecture (2002), specifies that monetary amounts should always carry their currency as part of their representation, that addition should require currency agreement, and that multi-currency arithmetic should require an explicit conversion step. The pattern was not novel in 2002 — it restates what any physicist would recognise as the minimum requirement for dimensional consistency — and it has been available since then to any practitioner who consulted the literature. The persistence of bare-number monetary representations in commercial software is therefore not a consequence of the solution being unknown. It is a consequence of the dimensional nature of the problem not being salient enough, in a community that does not routinely think in dimensional terms, to make the solution feel necessary rather than merely tidy.