I Weigh How Much?
Step on a digital scale twice and you get two numbers. The interesting question is not why the scale is inaccurate. It is what rule decides which number you see, and what that rule has in common with every other algorithm in your life.
Step on a digital bathroom scale. Wait for the number to settle. Step off, step back on, and get a different number. Most people file this under "cheap scale" and move on. I filed it there too, for years, until it occurred to me that the scale was not failing to measure my weight. It was making a decision about my weight, and I had no idea what rule it was following.
This is the first entry in a series about algorithms as the quiet machinery underneath ordinary life: not AI, but the specific rules that sit inside objects and institutions and decide what we get to see. The bathroom scale looks like the simplest possible case, and even here somebody had to make several judgments before the number appeared. The judgments are more interesting than the number.
The sensor does not produce a weight
Most modern scales rest on 4 load cells, one in each foot, each a small block of metal that flexes by a tiny amount under load. A converter turns that flex into a stream of digital readings, dozens or hundreds of them per second.
None of those readings is your weight. Each is a snapshot of a system that is still moving: you shifted your balance as you stepped on, the floor flexed, the metal is still settling, and electrical noise adds jitter on top. Plotted over the first 2 or 3 seconds, the readings form a wobble that gradually calms down and, if you stand still long enough, converges toward something.
So the firmware has a problem the sensor cannot solve. It has a stream of numbers that disagree with each other, a person who wants 1 number, and perhaps two seconds before that person loses patience. Every digital scale on the market contains an answer to this problem, and the answers are not identical.
What the patents say the scale is doing
Withings, the French maker of connected scales, holds a US patent titled "Method and system to quickly determine a weight" (US 10,024,709, granted 2018). It is unusually candid about the machinery. Raw samples arrive at somewhere between 20 and 500 per second. They pass through a low-pass filter, a second-order Butterworth filter in the specification, which smooths out the fast vibrations. The filtered values feed a rolling window of the most recent 80 to 100 samples. At each step the firmware takes the largest and smallest values in the window and computes the spread. When the spread falls below a threshold, on the order of 100 to 200 grams for an adult, the scale declares the reading stable. What it then reports is, in the patent's alternatives, either the most recent filtered sample or an average over the window. The patent describes options; which one a given product ships with is not public.
Analog Devices, which sells the converter chips that go into scales, published a reference design in 2005, a starting point offered to manufacturers rather than a description of any particular product, that shows the same family of choices. Take the most recent M readings, throw out the largest and the smallest, and average the remaining M minus 2; the engineers reported that this bought roughly 2.3 bits of effective resolution. Detect a weight change by watching for two consecutive raw readings that both differ from the filtered output by more than a threshold, then deliberately flush the buffer so the load cell's settling period is skipped rather than averaged in. And apply a rule to the display itself: if a new reading differs from the one currently shown by less than a threshold, keep showing the old number. That last rule exists so the display does not flicker between adjacent values, and it means the scale will sometimes show you a number it no longer considers its best estimate, because a steady older estimate is judged better than a flickering newer one.
Read that list as a set of choices rather than a set of techniques. What counts as noise. How many readings constitute enough evidence. How much disagreement among them is tolerable before the answer is trustworthy. Which observations get thrown away. Whether the display should be current or steady. None of those is a measurement. Each is a criterion, chosen by an engineer, encoded in firmware, and invisible to the person standing on the glass.
Why average, when the median is safer?
Here is the part that caught me. If the early readings can be badly wrong, why would anyone average them? The average is famously fragile. One wild value drags it. The median, the middle value of the sorted readings, ignores outliers by construction and seems like the obviously safer choice for a machine whose inputs are unreliable.
The answer is that the engineers do not average the unreliable readings. They spend most of the algorithm's effort deciding which readings are unreliable, and only then do they average what is left. The Withings stability test, waiting until the spread in the window falls under a threshold, certifies that the wobble has died out before any averaging happens. The Analog Devices trim, dropping the top and bottom values, does the same thing more crudely. The filter before all of it removes the fastest jitter.
Once that work is done, the error that remains looks much more like ordinary random sensor noise: small, symmetric, and, if the samples are spaced far enough apart that the filter has not smeared one into the next, roughly independent from one reading to the next. Against that kind of noise the mean is not fragile at all. It is close to the best estimator there is. Averaging N independent readings with well-behaved noise shrinks the uncertainty by a factor of about the square root of N, and the median, for the same readings, is measurably less efficient. The choice between mean and median is not a contest with a universal winner. It depends entirely on what the noise looks like at the moment you apply the estimator, and the whole architecture of the firmware is arranged to change what the noise looks like before the final step.
That is a small lesson in statistics. It is a larger lesson in how algorithms actually work. The interesting choice was not mean versus median. It was the sequence: filter, then wait for stability, then trim, then average. Each stage is designed so the next one's assumptions hold. Swap the order and a perfectly good averaging step becomes a bad one. Hold onto that sentence, because it is the point of this whole series, and the bathroom scale is only the first place we will find it.
Why two readings differ
Which also explains the annoyance I started with. Everything above happens inside a single weigh-in: hundreds of sensor samples collapsed into 1 displayed number over a couple of seconds. Stepping off and on again is a second weigh-in, and the scale runs the whole procedure against a second, different wobble. If you stood slightly differently, the window settled in a slightly different place. If the threshold for "stable enough" is 150 grams, then two readings 100 grams apart both satisfy the scale's own criterion. Both can satisfy the scale's stability rule; that rule never guaranteed accuracy to the decimal place shown. The display shows one anyway, because a decimal place looks like precision, not because the algorithm can deliver it. Display resolution and measurement accuracy are different things, and the display is built to blur the difference.
What a smarter scale would do
The designs above treat the settling wobble as noise to be waited out. It is not really noise. A load cell relaxes along a predictable curve and a person's sway dies out at a predictable rate, so a scale carrying a model of that behavior could watch the first fraction of a second and extrapolate where the readings are heading. That is roughly what a Kalman filter does: hold a belief about the true weight and its uncertainty, revise it with each reading, and report when the uncertainty is small enough. If the physical model is good, it could deliver the settled value sooner than a wait-for-stability window.
The step after that is a prior. If the scale knows that the person standing on it weighed 82.4 kilograms yesterday, a Bayesian estimator can fold yesterday's answer into today's readings and settle on a very steady number very quickly. The cost is that a scale with a strong prior is slow to believe anything has changed. How much yesterday counts against today is not a measurement question. It is a question about what the scale is for, and the engineer answers it on your behalf.
And AI? Sent to a server, AI would add needless network latency to a problem whose physics is already understood. Where learning could earn its place is at the edges, in things an engineer cannot write as an equation: who is on the glass, whether you are leaning on the sink, how this particular scale drifts on this particular floor. A small on-device model could outperform fixed thresholds in some of those conditions. What it would bring is not a better number but factors the traditional rules never considered.
There is a wall, though, that no algorithm gets past. A decent consumer scale already resolves to about 100 grams, and a human body moves by 1 to 2 kilograms or more over a day. The instrument is already more precise than the quantity is stable. Beyond that point a smarter scale cannot give you a truer number for your weight at this instant. It can only estimate something else, your weekly average, your trend, a quantity you did not ask for, and it will make that substitution quietly while the display goes on showing one decimal place.
Notice the direction of travel. A threshold, then a Kalman filter, then a personal prior, then a learned model: each step moves the scale from reporting what it sees toward reporting what it expects, and each means more of the number on the display was settled before you stepped on.
The bridge
A bathroom scale does not know what you weigh. It collects evidence, chooses which evidence to believe, decides when it has enough, and reports the answer those choices produce. Everything it discards along the way, it discards by rule, and the rule was written by a person you will never meet, for reasons that seemed sensible to them.
That description fits a great many things that are not bathroom scales. It fits the ranking that decides which 10 results you see out of 10 million. It fits the credit model that decides whether a loan is stable enough to approve. It fits the recommendation engine, the fraud filter, the triage score, and the sorting routine buried in your operating system. In every case there is a stream of evidence that disagrees with itself, a person who wants one answer, and a set of encoded judgments about what to filter, what to wait for, what to trim, and what to average.
The question this series will keep asking is the one the scale raised without meaning to. Not "what is the answer?" but "what did the algorithm decide before it gave me the answer, and would I have decided the same way?"
Next in the series: heapsort(), a sorting routine I helped write for BSD as an undergraduate at UC Berkeley, and the unexpected place I recently found it still living.
Further Reading
From this blog
- It's Mine & It's Wrong on a different kind of encoded judgment, the one an AI model makes when it decides whose work to trust.
- Where Does Supergirl Rank? on how Rotten Tomatoes turns many individual judgments into a single authoritative looking number.
Sources
- US 10,024,709 B2, Method and system to quickly determine a weight - Withings SAS, filed July 5, 2016, granted July 17, 2018. The Butterworth low-pass filter, the rolling window of 80 to 100 filtered samples, the maximum-minus-minimum stability test, the 100 to 200 gram threshold, and the alternative output rules.
- A Reference Design for High-Performance, Low-Cost Weigh Scales - Colm Slattery and Mariah Nie, Analog Dialogue, December 2005. The drop-the-extremes-and-average filter, the 2.3 bit resolution gain, the weight-change detector, and the display-stability rule.
- High accuracy scales: why the Withings scales are the most accurate - Withings, January 2014. A posture check that delays the weigh-in until you stand upright, and a gravity compensation step that adjusts for where on Earth the scale is.
- Kalman, R. E. (1960). A New Approach to Linear Filtering and Prediction Problems - Journal of Basic Engineering 82(1), 35-45. The 1960s mathematics referred to above.
- Weight fluctuation - Healthline. The commonly cited figure that an adult's weight moves by up to 5 or 6 pounds within a day.
- CN-0102: Precision Weigh Scale Design Using the AD7190 - Analog Devices circuit note. The hardware side of the same problem: load cells, bridge excitation, and a 24-bit sigma-delta converter.
AI Assistance Statement ▾
This blog publishes at a near daily rate, and that pace is possible because AI tools do a substantial share of the work between the idea and the published text. Preparation of this entry included assistance from Anthropic's Claude and from OpenAI's ChatGPT (GPT-5 series reasoning models). I use them to research a topic and gather primary sources, to organize ideas and propose structure, to draft and revise prose, to check factual claims against the cited sources before publication, and to score drafts against a set of house style rules. Longer pieces are often developed across several sessions. A written handover carries the argument, sources, and open questions from one session to the next, and the same tools help prepare those handovers. The tools also help identify candidate images and confirm that selected images appear to be released for reuse, for example through public domain or Creative Commons licensing.
The process is also an AI experiment in its own right. There is a live argument about what AI-assisted writing does to originality, and whether the result is thought or slop; the August 2026 dispute over a Wall Street Journal op-ed that its author acknowledged drafting with AI, and the Journal's subsequent defense of the practice (WSJ is behind a paywall, but for a public summary: click here, and here), is one newsworthy example. I would rather run the experiment openly than pretend it is not happening. This blog is one sustained attempt to find out whether a person with an argument, working with these tools every day, produces writing that is still recognizably that person's, and I disclose the method so readers can judge the result.
The judgment is mine. I choose the topic, decide the argument, supply the personal and professional experience the pieces draw on, read and edit every draft, verify the sources and image licensing, and take full responsibility for the final published content. Where a post contains my own recollections, the AI did not invent them.
Statement revised September 2026.