Rose on aluminium is a dye drawn into an open oxide layer. Rose on steel is a pigment melted onto a primed surface. Rose on wool is a dye bath. These three things have nothing in common except a target, and left alone they will miss it in three different directions.
Why batches drift
Anodising colour depends on the thickness of the oxide layer, which depends on bath temperature and time — a two-degree difference across a shift moves the colour visibly. Powder coat depends on film thickness and cure schedule. Wool takes dye differently depending on the fleece.
Each process is perfectly repeatable within its own tolerance. The tolerances do not line up.
What we do
We hold a physical reference — an anodised tile, kept in the dark — and every batch of every process is signed off against it under the same light source. Batches that miss go to seconds rather than into stock.
It also means the keyboard, the mat and the tray in a bundle come from batches that were matched to each other, not just to the tile. That is the real reason the sets exist.