Two numbers get printed on the same duvet label. One is grams per square meter. The other is a thermal resistance rating. Shoppers read them as two dialects of the same measurement, pick the bigger one, and buy the wrong duvet.
They are not the same measurement. There is no conversion between them, and the reason is the kind of thing that shows up in any system where a raw input gets treated as a measured output.
GSM is an input
GSM is grams per square meter of fill. A manufacturer weighs a one-square-meter sample of the finished fill layer and records the grams. A duvet listed at 350 GSM holds 350 grams of fill in every square meter of shell fabric.
That is a quantity. It describes what went in. It says nothing about what comes out, because the same 350 grams behaves differently depending on what the grams are made of. Wool fiber traps air one way, a down cluster another, cotton batting compresses into a flatter and denser layer than either.
There is also a units trap hiding in it. GSM is a rate, per square meter. Total fill weight scales with the surface area of the duvet. A King at 350 GSM weighs more than a Twin at 350 GSM, because a King covers more square meters. Two brands can both publish "350 GSM" and mean different things by it, since one may have weighed the finished duvet and the other only the raw fill before quilting. Nothing requires either of them to say which.
Tog is an output
Tog comes out of a lab. It is measured under British Standards Institution method BS 4745:2005, the two-plate test: a sample sits between heated plates, and the power the plate needs to hold a set temperature difference gets converted into a tog value. A fabric that resists heat loss better needs less added power. One tog is defined as roughly the thermal resistance of a medium-quality blanket.
The important property is that tog is a result. Every fabric construction has to sit through the plate test on its own before it earns a number. You cannot look it up from a spec sheet, because the spec sheet is the input and tog is what happens after the input meets a physical process.
Why there is no conversion function
Put the two side by side and the problem is obvious:
| GSM | Tog | |
|---|---|---|
| What it measures | mass of fill per square meter | thermal resistance |
| Unit | g/m² | tog (defined against a reference blanket) |
| Where it comes from | a scale | BS 4745 two-plate lab test |
| Depends on fiber type | no | yes |
| Depends on fill height and construction | no | yes |
| Scales with duvet size | no, it is a rate | no |
| Can be derived from the other | no | no |
A conversion needs a function. This one would need tog = f(gsm), and every honest version of f requires arguments the GSM number does not carry: fiber type, fill height, construction, how the layer was quilted. Fix those and you have not derived tog, you have described a specific product, which then has to go through the plate test anyway.
So a vendor chart offering a fixed GSM-to-tog conversion is doing something specific. It is publishing the output of a lab test that was never run.
What we publish instead
We make duvets, so this is the part where I say what we do about it. We do not print a tog number, because we have not paid for per-product BS 4745 testing and an estimated tog is a made-up lab result. We publish the total fill weight for the size you are buying:
| Size | Organic Cotton Duvet | Organic Wool Duvet |
|---|---|---|
| Twin | about 7.5 lb | about 6.5 lb |
| Queen | about 10 lb | about 9 lb |
| King | about 12 lb | about 11.5 lb |
Wool comes in lighter at every size and still regulates temperature, because wool wicks up to 30% of its own weight in moisture while staying dry to the touch. That is a fiber property doing work that raw weight would otherwise have to do. It is also exactly the effect that collapses any attempt at a universal conversion.
Both are GOTS Certified Organic under license GOTS-10229, which covers the fill and the sateen shell together rather than the outer fabric alone.
The general shape
The failure here has nothing to do with bedding. A raw input and a measured output get printed in adjacent fields, with no type information saying which is which, and the reader assumes adjacency implies comparability.
If you have ever seen someone compare a configured cache size against an observed hit rate, or treat an allocation against a benchmark result, it is the same mistake wearing a duvet cover. The input is cheap to publish and the output is expensive to measure, so the market fills up with the cheap number and everyone quietly reasons as though it were the expensive one.
The tell is always the same, so it is worth asking directly: what physical process produced this number? If the honest answer is that nothing did, and someone simply weighed the ingredients before they went in, then what you are holding is an input wearing an output's clothes.
Originally published on Circadian.








