UCCS stands for the Universal Cosmological Coordinate System. It locates an event on the past light cone — when it happened, how fast the universe was expanding, how large its causal domain was, what it was made of, and where it sits relative to us — using nothing but dimensionless ratios. No seconds, no years, no metres, no parsecs and no light-years appear in any coordinate.
That matters because every unit cosmology normally uses is an accident of where we happen to live. A light-year is how far light travels while one particular rock circles one particular star. A parsec embeds that same orbit plus the arcsecond, a Babylonian base-60 artifact. UCCS removes all of them — and then does something more useful than being tidy: it tags every number it returns with what had to be measured to obtain it. The whole system runs below, live in this page.
Splitting that unit in two is the whole starting point. The light part is already universal: every observer anywhere measures the same speed of light, so any unit built on light propagation is at least conceptually shared. The year part is the parochial bit — one orbit of one rock around one star. The unit isn't wrong. It is carrying an accident of biography.
The obvious fix is to pick a better unit. Hydrogen's 21 cm hyperfine transition is the classic choice, the one Sagan and Drake put on the Pioneer plaque, and it makes the universe about 6×1026 ticks old. Planck time does better still. But both are still unit systems, and the numerical value of G or ℏ depends on which units you chose to express it in. You have changed the accident, not escaped it.
Only dimensionless quantities are physically meaningful. A genuinely unbiased coordinate is not a better yardstick — it is a ratio between two things the universe does. Modern cosmology already half-knows this, which is why DESI publishes distances divided by the sound horizon instead of in megaparsecs. UCCS takes that instinct and makes it the whole architecture.
A clock that is universal in the sense of "any observer reconstructs it independently" turns out to be achievable for exactly one kind of quantity, and the rest of the system is about being precise regarding how far from that ideal each other number sits. That is a weaker claim than "we built a universal clock," and it is the one the code can actually defend.
To express a distance dimensionlessly you must divide it by something, and that choice is not neutral. UCCS supports two anchors and converts between them exactly.
The sound-horizon anchor. r_d is the comoving distance a pressure wave travelled in the baryon-photon plasma before recombination froze it in. It is fixed by pre-recombination physics, identical for every observer, and directly measurable by anyone who can see a CMB or a BAO feature. The Planck anchor is built from G, ℏ and c — more fundamental in definition, but not directly measurable.
These are not rival systems. They are the same statement in two gauges:
The residual is at the floating-point floor, so the two anchors are not approximately compatible — they are identical. One caveat worth stating: that bridge converts the length and time sector only. It does not convert the epoch coordinate, the density parameters, or the deceleration parameter, because those are not alternative length representations and there is nothing to convert.
This is the part that makes the system useful rather than merely elegant. Not every dimensionless quantity is equally free of assumptions, and UCCS tracks the difference on every single number it returns.
| Tier | Requires | Members |
|---|---|---|
| Calibration-free | Nothing dimensionful at all | calC, Ωi, q, H·t, Ξ, f_hor, R_causal |
| Ruler | Only the product H₀·r_d / c | X = D_M/r_d, X_hor, D_H/r_d, Τ_rd |
| Planck | G, ℏ, c, k_B, Tγ and sometimes H | calE, calX, Τ_P, Planck-unit lengths |
Calibration-free does not mean assumption-free, and the tier was renamed from its original name precisely because that overclaimed. These quantities survive swapping the entire dimensional anchor, but they still depend on the density parameters and the dark-energy equation of state. Fixing the dimensionless background is still a choice.
A quantity's cost has a second dimension that is genuinely independent of the first: does it require an assumed expansion history? Tracking both produces the most interesting result in the design.
| Quantity | Tier | Background | Reading |
|---|---|---|---|
| calC | calibration-free | dependent | cheap to calibrate, assumes a cosmology |
| calE | planck | free | expensive to calibrate, assumes no cosmology |
| ΔcalE | calibration-free | free | needs neither |
Five symbols do most of the work, and they appear throughout the instrument below. The prefix cal is just the conventional way of writing a script capital in plain text — calE is script E, calC is script C, calX is script X.
| Symbol | Name | Definition | What it tells you |
|---|---|---|---|
| calE | Epoch | ln(E_P / k_B Tγ) | How far the universe has cooled from the Planck energy. Larger is later and colder. |
| calX | Expansion | H · t_P | The expansion rate in Planck times instead of km/s/Mpc. |
| calC | Causal scale | H · D_p / c | The particle horizon measured in instantaneous Hubble radii. |
| X | Radial position | D_M / r_d | Comoving distance in sound horizons — what BAO surveys publish. |
| Ξ | Relational position | H · s / c | Separation from a declared reference worldline, not from a universal centre. |
Two more appear in the readouts: Ω is the familiar density-state vector, and H·t is the product of expansion rate and age — a pure number carrying the entire invariant content of a statement like "the universe is 13.8 billion years old."
That last row is the one quantity in the system that clears the original bar completely. ΔcalE = ln(θ₁/θ₂), the epoch interval between two photon temperatures: the Planck energy cancels in the ratio so no calibration is needed, and no expansion history is invoked so no model is needed. Two temperatures and nothing else. Any observer, anywhere, at any time, gets the same number.
This is not a demonstration of the tool — it is the tool. The frozen Python specification was ported to JavaScript and verified against it: 336 numerical comparisons, agreeing to eleven significant figures, with the adaptive Gauss-Kronrod quadrature matching SciPy's own rule. Nothing is precomputed and nothing is sent anywhere; every number below is integrated in your browser as you move the controls.
Pick a redshift and read every coordinate at that event, each tagged with the tier it cost. Redshift is not a UCCS coordinate — it is an observational adapter, because that is how catalogues are indexed. The coordinates are the output, not the input.
| Coordinate | Value | Tier |
|---|
The design claim, executing live. Both columns use the same dimensionless universe and differ only in the dimensional anchor: Planck 2018 against a SH0ES-like H₀. Calibration-free quantities must not move at all. Ruler and Planck quantities must. If the tier system were decorative, this table would not separate.
| Quantity | Tier | Planck 2018 | Comparison | Shift |
|---|
A result reported in ruler units and smaller than the shift shown here is not distinguishable from a calibration choice. That is a floor you can declare in a pre-registration rather than argue about afterwards.
Two events on the past light cone, entered the way a catalogue gives them. No direction is promoted to a fundamental axis — FLRW provides no preferred orientation — so every result here depends on the directions only through their dot product, and is unchanged by rotating the frame.
Scope warning, stated because it is the easiest thing to misuse: past light cones only become disjoint near last scattering. At every survey redshift R < 1 for any sky separation, so the causal test excludes nothing there. Set both redshifts to 1089.9 and sweep the separation to watch it bite — the transition sits at an angular separation of 2.3150°. This is a CMB-scale instrument, not a galaxy-pair filter.
Every dimensionful number in the entire system lives in one swappable object. Nothing outside it knows what a metre or a second is — which is what makes the tier separation above mechanical rather than aspirational. Edit the inputs and the bridges, budgets and derived constants recompute.
| Budget | Value | What dominates it |
|---|
DESI publishes D_M/r_d and D_H/r_d — distances divided by the sound horizon. Those are literally the UCCS coordinates X and D_H. No conversion, no adopted Hubble constant, nothing fitted. A published number and a predicted number, in units that belong to the universe rather than to a calibration choice.
The panel below is live: move the matter density or the dark-energy equation of state and the whole comparison re-fits in well under a millisecond.
| Tracer | z | D_M/r_d | UCCS | pull | D_H/r_d | UCCS | pull |
|---|
Each mark is (observed − predicted) in units of that measurement's own uncertainty. Shaded band is ±1σ.
Data: DESI DR1 anisotropic BAO, Table 1 of arXiv:2407.17252, compiled from DESI 2024 III and IV. Changing w away from −1 adds a free parameter, so a modest χ² improvement is expected — this is exploration, not a fit.
At the Planck 2018 values, χ² = 17.98 across ten points with nothing adjusted. The two roughly 2.7σ pulls at z = 0.510 and z = 0.706 are real and known: they are part of what drove DESI DR1's own preference for evolving dark energy over ΛCDM. You can watch them redistribute by moving w.
BOSS DR12 reports D_M/r_d = 10.234 at z = 0.38, in the same units as DESI and as UCCS. Comparing surveys that assumed different fiducial cosmologies is normally a conversion minefield; in sound-horizon units there is nothing to convert.
Mpc/h against Mpc is a perennial source of silent factor-of-0.7 errors in pair statistics. Separations in r_d units contain no h at all, so the error cannot be made.
Swap the calibration and re-run anything. Ruler-tier results move about 7.8%; calibration-free ones do not move at all. If your effect is 5% and ruler-tier, you have measured a calibration choice rather than the universe.
The background is an interface, not a commitment. An expansion history tabulated from a Boltzmann code drops straight in, and the coordinate layer still tags every number with its provenance.
Being explicit about the boundaries is part of what makes a tool trustworthy, and all of these are enforced in code rather than merely documented.
UCCS 0.1 supports spatially flat FLRW backgrounds, k = 0. The expansion-history interface is general — any E(z) may be supplied — but the spatial geometry is not. Two consequences are load-bearing: D_M = D_C only because Ωk = 0, and pair separation is Euclidean subtraction of comoving vectors, valid only on flat hypersurfaces. A background declaring non-zero curvature is refused at construction rather than silently computing one thing and labelling it another.
UCCS assumes the comoving frame and defines its epoch coordinate against the comoving-rest-frame monopole. It is built on that assumption, not a resolution of it. What it offers instead is the shape of an answer: a declared number for how much a frame error would contaminate a coordinate. And that number contains a distinction worth getting right.
| Effect | Magnitude | vs calE budget |
|---|---|---|
| Directional dipole contamination (first order) | 1.234e-03 | 5.9× — dangerous |
| Full-sky monopole shift (second order, β²/6) | 2.536e-07 | 0.0012× — negligible |
The intuitive reading of that table is wrong, which is why it is here. The stipulation that bites is "monopole", not "comoving frame". A correctly all-sky-averaged temperature measured from the Solar System is fine — it is off by about a thousandth of the budget. A temperature taken along one line of sight is not, because it carries the dipole at first order.
calE labels a unique cosmic time only where the photon temperature is well defined and evolves monotonically. Under a non-adiabatic reheating episode that raises Tγ, two distinct cosmic times can share a temperature and calE stops being injective. It remains a valid thermal-state variable there; it simply no longer identifies an epoch by itself.
The clock works. It advances at 6.889×10−11 per year, against a measurement budget of 2.094×10−4. Divide those and you get 3,040,083 years to move the epoch coordinate by a single standard deviation. A human lifetime does not register. Neither does recorded history. Strip every human reference out of a clock and you get one that no human can read — which is, in its way, the most honest possible answer to the question that started this.
The specification ships with 123 acceptance checks. A passing suite proves nothing on its own, so it also ships with a mutation harness that reverts each fix in turn and requires the suite to catch it. A surviving mutant means that fix is unprotected — the tests would not notice if it were undone.
That harness exists because of a pattern that recurred through development. Four separate defects survived a green suite because the tests were shaped so they could not fail: a sensitivity check that passed one shared object and so could not detect a calibration leak; a sign check that printed metadata and never the value; a continuation test whose control was the same background as the thing it tested, so it matched by construction; and a density vector that nothing asserted the ordering of — it was silently reversed, and its own documentation agreed with the wrong answer.
These must not move for any refactor, and the suite asserts each one:
| Anchor | Value | Why it is the right value |
|---|---|---|
| calC today | 3.1787 | observable radius over Hubble radius |
| H₀t₀ | 0.9503 | the entire invariant content of "13.8 billion years" |
| calC, radiation limit | 1.000001 | exactly 1 under pure radiation domination |
| H·t, radiation limit | 0.500000 | exactly ½ when a ∼ t1/2 |
| Ωm at equality | 0.5000 | the definition of matter-radiation equality |
| D_M(z*)/r_d | 94.28 | matches the Planck-inferred value of about 94 |
| bridge residual | 2.22e-16 | the two anchors are the same statement |
The JavaScript running on this page was held to the same standard rather than trusted: 336 comparisons against the Python specification across nineteen redshifts from today to z = 109, three pair geometries, four alternative cosmologies and both calibrations. Worst relative deviation, 1.9×10−11.
Frozen as UCCS Specification 0.1. Further changes are versioned extensions rather than continued modification of the 0.1 core. Known gaps for a future revision: the isotropic volume-averaged distance D_V, a spatial-geometry interface for curvature, and relaxing the z = 0 requirement on tabulated expansion histories. Get in touch →