At 07:51 one morning, an athlete on our roster weighed 61.5 kg. At 17:34 the same day, 62.3 kg.
Neither reading is wrong. Both were taken properly, on the same scale, by the same person, nine hours apart. The 0.8 kg between them is food, fluid, sodium and glycogen, and it was gone by the next morning.
The interesting question is not which number is true. It is which one your app decided to keep, because that reading does not stay in the chart. It sets your calorie target.
The short answer
Weigh in the morning, after the bathroom, before eating or drinking. Then weigh far more often than feels necessary, and never compare a morning reading to an evening one.
That first sentence is on every fitness site on the internet and it is correct. It is also the easy half, and it is not where people actually lose the plot. The rest of this is the half that gets skipped.
Why morning wins, briefly
A morning reading is not more accurate in any absolute sense. Your bathroom scale does not get better at 7am. What changes is that the conditions are repeatable: post-void, pre-food, pre-fluid, roughly the same point in your digestive and hydration cycle every time.
By the evening you are carrying that day's food as mass in transit, whatever you drank, water bound to sodium you ate, and glycogen with roughly 3 g of water attached per gram stored. None of that is fat. All of it lands on the scale, and how much of it lands depends on what you did that particular day.
So an evening reading is not false. It is noisier, and its noise is correlated with exactly the things you are trying to change, which is the worst property a measurement can have.
One caveat on the numbers you will see quoted. Search this topic and you will be told your weight swings 2 kg, or 3 kg, or 5 to 6 pounds a day. Those figures are almost always given without a population attached, and the larger ones tend to come from clinical settings where fluid retention is the thing being studied. That does not read across to a healthy athlete. The only spread we can actually vouch for is the one above, 0.8 kg, from one person weighing twice a day. Measure your own rather than trusting ours or anyone else's.
The part nobody tells you: your weight is an input, not a readout
Here is what actually happens to that number in a system like ours, and it is not unusual.
Your current bodyweight goes into the Mifflin-St Jeor equation to estimate basal metabolic rate. That gets multiplied by an activity factor to produce a maintenance estimate, then adjusted by your goal direction to produce a calorie target. The same weight sets your protein target at 2.2 g/kg on a cut, and your fat floor at 0.8 g/kg. Then a separate correction compares your weight trend against the rate your goal implies and nudges calories to steer you back.
Four separate numbers, all downstream of one reading.
Which means: if the system keeps the wrong reading of the day, you do not get a slightly wrong chart. You get a food budget built on a number that included last night's dinner.
We measured this. On that athlete, whether the reading kept happened to be a morning or an evening one moved the calorie trend by about 240 kcal a day. Not a rounding error, and completely invisible from the outside. She would simply have found a different number in the app.
There was a second, more embarrassing symptom. Our code originally kept the latest reading of each day, which systematically discarded the morning one. So the coach told her a weight was her lowest so far while a lower one was sitting in the table.
Earliest, not lowest
The obvious fix, once you notice the problem, is to keep the lowest reading of each day. It is also wrong, and it is worth being precise about why.
Keeping the lowest selects on the value. It biases every day downward, and it biases hardest on the days you happened to weigh yourself more than once, which are not random days. A cut would always look like it was going better than it was. Whatever else a number that sets someone's food intake should be, it should not be flattering by construction.
Keeping the earliest selects on when, not what. It is unbiased with respect to the number itself, and it is a fair proxy for the morning-fasted reading people actually intend to track.
It also handles the person it was not designed for. Someone who only ever weighs at night still gets their reading picked consistently, and consistency is the entire requirement for a trend. You do not need the right time of day. You need the same time of day.
The timezone trap that inverts the whole thing
This one is specific and easy to get wrong, and it is the reason we are writing this rather than just linking to someone else's article.
"One reading per day" requires deciding where a day starts. The lazy answer is to bucket by the UTC date, because that is the first ten characters of the timestamp already sitting in the database.
For anyone behind UTC, that does not merely misfile an evening reading. It inverts the rule.
A US-Eastern athlete weighing at 21:00 local is recorded at 01:00 UTC the next day. Bucketed by UTC date, that evening reading is the earliest reading of that day. So it beats their actual next-morning reading, and an earliest-wins rule quietly starts selecting evenings for exactly the people it was supposed to protect.
When we checked, three of the six athletes with a stored timezone were America/New_York. This was not a latent bug waiting for an edge case. It was one evening weigh-in away from being live.
Days have to be bucketed in the athlete's own local time. If you build anything like this, that is the sentence to take away.
Frequency beats protocol
The most useful thing we found here was not about protocol at all.
We built a check that estimates your actual maintenance calories from your own data: average intake, minus the rate your weight is changing, converted at roughly 7,700 kcal per kilogram. Straightforward arithmetic. The interesting part was discovering what stops it working.
It was not food logging. Weigh-in frequency was the binding constraint, and it was not close. One athlete had 35 days of logged food against exactly two weigh-ins taken two days apart, three weeks stale. Run the estimate on that and it returns a maintenance figure of a few hundred calories a day for an adult man, which is nonsense produced by real data.
And single readings are dangerous even when you have enough of them. One 63.4 kg outlier sitting between readings of 61.5 and 61.7 moved the derived answer by about 200 kcal a day on its own. Which is why the endpoints are now averaged over a five-day band rather than differenced raw. That change costs nothing and is the single biggest accuracy improvement available.
The external evidence points the same way, with an honest caveat. A cohort study of 9,768 Withings smart scale users, covering 4.2 million weight measurements over a mean of 1,085 days, found daily self-weighing associated with weight loss while weighing every other day or less was associated with unchanged or increased weight. But the correlation was r = -0.111, and the authors say plainly that it is "generally very low, which indicates that self-weighing explains relatively little of the weight change variation." It is observational and cannot establish causation.
So do not read that study as "weighing yourself makes you lose weight." Read it as: the people whose data is dense enough to show a trend are the people who have a trend to look at. That is a measurement argument, not a motivational one, and it is the one that actually holds.
What to do
- Same time, same conditions, every time. Morning, post-void, pre-food is the best default because it is the most repeatable. If you genuinely cannot, pick a different fixed time and never mix.
- Weigh most days, not once a week. A weekly weigh-in is a single sample of a signal that moves 1 kg a day. You are not measuring your weight, you are measuring which day you picked.
- Judge the trend, never the reading. A day-to-day change is almost entirely fluid. Anything under a fortnight of readings is not yet telling you about fat.
- If you weigh twice a day, know which one your app keeps. Not all of them tell you, and the choice is not neutral.
- Do not switch scales mid-block. Scales disagree with each other by more than a week of real progress.
The best time to weigh yourself is the one you will repeat. Everything downstream, your calorie target included, is built on that repetition rather than on any single reading being correct.
Kipp keeps one reading per day, takes the earliest, and buckets days in your own timezone. It reads your weight trend alongside what you actually trained and ate, and adjusts what it asks of you as the trend moves, rather than handing you a chart to interpret on your own.
Sources
- Frequency of Self-Weighing and Weight Change: Cohort Study With 10,000 Smart Scale Users, JMIR, 2021. 9,768 users, 4,230,928 measurements, mean 1,085 days of tracking. PMC
- The Mifflin-St Jeor resting energy expenditure equation, American Journal of Clinical Nutrition, 1990, is the basal metabolic rate estimate referenced above. Cited by name rather than by link because we could not open the paper to check the reference at the time of writing.
- The 61.5 / 62.3 kg readings, the 240 kcal/day swing, the 63.4 kg outlier and the timezone finding are from our own weigh-in data. Sample sizes are stated inline; they are small, and none of them is a population claim.
