Inputs in, ranked fits out.

The audit takes two inputs - up to thirty nights of biometric signal and twelve quiz answers - and produces a ranked list of up to five mattresses, a fit score on each, and one confidence number for the audit. Every audit reports its own compute time at the top of your results - the dwell you see on the analysis screen is review time, not compute time. Same inputs, same audit, every time.

No machine learning, no opaque ranking. Just a weighted fit between your sleep spec and each mattress's spec, plus a confidence model that tells you how constrained the answer is.

Eight dimensions.

Both you and every mattress in the catalogue are described by the same eight-dimensional spec. Every dimension sits on a 0–1 scale. The fit is a weighted similarity across these eight features: on each one, the closer the mattress sits to your target, the more of that feature's weight it earns. Firmness is scored unevenly, because too soft costs more than too firm. Your wearable can move the cooling, motion isolation and pressure relief targets; firmness comes from your quiz answers and build.

DimensionUnitExample targetWeight
firmness0–10.624
support0–10.703
pressure relief0–10.823
cooling0–10.782
motion isolation0–10.742
responsiveness0–10.691
durability0–10.701
edge support0–10.610.5

Sleep position, build, pain areas, how you want to buy and budget are scored alongside the eight as category matches. A mattress made of a material you asked to avoid, or not made in your size, is left out before scoring. The fit you see is the score a mattress earned as a share of the most it could have earned. Your own spec lives only in the audit session.

Parse → weight → score → rank.

  1. 01 · Parse
    30 → 7
    Nights read → recent nights

    Every night read sets your typical night, the median of each reading. On a read of three weeks or more, the seven most recent nights are set against it: resting heart rate, HRV, skin-temperature delta, stage shares, latency, time awake. A shorter read is averaged whole.

  2. 02 · Weight
    nights + 12 → findings
    Readings + quiz answers

    Each finding ("skin temperature above your typical night") moves one or more of your spec targets up or down.

  3. 03 · Score
    116 → fit scores
    SKUs, weighted fit

    Materials you asked to avoid and sizes you cannot buy drop out first; every mattress left is scored against your spec.

  4. 04 · Rank
    up to 5 · governed
    Shown on your audit

    Highest score first. Two per brand at most, one per range unless the feel differs, near-duplicates suppressed.

// fit for SKU i: score earned, as a share of the most it could earn
scoreᵢ = Σd wd · sim(ud, si,d) + category matches
sim = 1 − |ud − si,d|

How constrained is the answer?

Confidence is a separate number from fit score. It answers a different question: given the data we have, how tightly does it constrain the recommendation? It is a product, not an average, so one weak signal pulls the whole score down. Three multiplicative factors:

confidence = data_volume · signal_agreement · completeness
Confidence by nights of wearable signalwith wearablequiz-only

nights of wearable signal · data_volume with the other two factors held clean. Bands are display thresholds on the final confidence number.

  • signal_agreement - starts at 1.0. Each unresolved disagreement between a biometric signal and a quiz answer pulls it down by 0.20 (floor 0.40); each converged finding adds 0.04, capped at +0.15.
  • completeness - each missing high-leverage quiz field (sleep position, build, budget, partner) multiplies the score by 0.85.

The curve is data_volume with the other two factors held clean: log2(nights + 1) / log2(15), capped at 1. It reaches the cap at fourteen nights, so nights fifteen to thirty add nothing to confidence. What the longer read buys is a steadier typical night to set your recent week against. Quiz-only audits fall back to 0.5 × completeness, the flat line: a complete quiz with no wearable lands at about 5 out of 10, an incomplete quiz below it.

Same inputs, same audit.

The engine is deterministic. No randomness, no A/B-tested rankings, no personalised weights that drift over time. If you re-run the audit with the same nights and the same quiz answers, you'll get the same mattresses in the same order with the same confidence.

That's deliberate. The point of the audit is to be inspectable - on your audit you can open any rank's "why this matches" panel and trace the recommendation back to specific findings and weights.

Catalogue 116 SKUs · AU only

Updated as the catalogue changes. Currently the Sleeptel range: Sealy, Slumberland, Madison, SleepTailor, TEMPUR, Bedgear and Vispring, every feel of every model sold online.

Inputs in, ranked fits out.

The audit takes two inputs - up to thirty nights of biometric signal and twelve quiz answers - and produces a ranked list of up to five mattresses, a fit score on each, and one confidence number for the audit. Every audit reports its own compute time at the top of your results - the dwell you see on the analysis screen is review time, not compute time. Same inputs, same audit, every time.

No machine learning, no opaque ranking. Just a weighted fit between your sleep spec and each mattress's spec, plus a confidence model that tells you how constrained the answer is.

Eight dimensions.

Both you and every mattress in the catalogue are described by the same eight-dimensional spec. Every dimension sits on a 0–1 scale. The fit is a weighted similarity across these eight features: on each one, the closer the mattress sits to your target, the more of that feature's weight it earns. Firmness is scored unevenly, because too soft costs more than too firm. Your wearable can move the cooling, motion isolation and pressure relief targets; firmness comes from your quiz answers and build.

DimensionUnitExample targetWeight
firmness0–10.624
support0–10.703
pressure relief0–10.823
cooling0–10.782
motion isolation0–10.742
responsiveness0–10.691
durability0–10.701
edge support0–10.610.5

Sleep position, build, pain areas, how you want to buy and budget are scored alongside the eight as category matches. A mattress made of a material you asked to avoid, or not made in your size, is left out before scoring. The fit you see is the score a mattress earned as a share of the most it could have earned. Your own spec lives only in the audit session.

Parse → weight → score → rank.

  1. 01 · Parse
    30 → 7
    Nights read → recent nights

    Every night read sets your typical night, the median of each reading. On a read of three weeks or more, the seven most recent nights are set against it: resting heart rate, HRV, skin-temperature delta, stage shares, latency, time awake. A shorter read is averaged whole.

  2. 02 · Weight
    nights + 12 → findings
    Readings + quiz answers

    Each finding ("skin temperature above your typical night") moves one or more of your spec targets up or down.

  3. 03 · Score
    116 → fit scores
    SKUs, weighted fit

    Materials you asked to avoid and sizes you cannot buy drop out first; every mattress left is scored against your spec.

  4. 04 · Rank
    up to 5 · governed
    Shown on your audit

    Highest score first. Two per brand at most, one per range unless the feel differs, near-duplicates suppressed.

// fit for SKU i: score earned, as a share of the most it could earn
scoreᵢ = Σd wd · sim(ud, si,d) + category matches
sim = 1 − |ud − si,d|

How constrained is the answer?

Confidence is a separate number from fit score. It answers a different question: given the data we have, how tightly does it constrain the recommendation? It is a product, not an average, so one weak signal pulls the whole score down. Three multiplicative factors:

confidence = data_volume · signal_agreement · completeness
Confidence by nights of wearable signalwith wearablequiz-only

nights of wearable signal · data_volume with the other two factors held clean. Bands are display thresholds on the final confidence number.

  • signal_agreement - starts at 1.0. Each unresolved disagreement between a biometric signal and a quiz answer pulls it down by 0.20 (floor 0.40); each converged finding adds 0.04, capped at +0.15.
  • completeness - each missing high-leverage quiz field (sleep position, build, budget, partner) multiplies the score by 0.85.

The curve is data_volume with the other two factors held clean: log2(nights + 1) / log2(15), capped at 1. It reaches the cap at fourteen nights, so nights fifteen to thirty add nothing to confidence. What the longer read buys is a steadier typical night to set your recent week against. Quiz-only audits fall back to 0.5 × completeness, the flat line: a complete quiz with no wearable lands at about 5 out of 10, an incomplete quiz below it.

Same inputs, same audit.

The engine is deterministic. No randomness, no A/B-tested rankings, no personalised weights that drift over time. If you re-run the audit with the same nights and the same quiz answers, you'll get the same mattresses in the same order with the same confidence.

That's deliberate. The point of the audit is to be inspectable - on your audit you can open any rank's "why this matches" panel and trace the recommendation back to specific findings and weights.

Catalogue 116 SKUs · AU only

Updated as the catalogue changes. Currently the Sleeptel range: Sealy, Slumberland, Madison, SleepTailor, TEMPUR, Bedgear and Vispring, every feel of every model sold online.