| Date | Wt. | BF% | BF~ | LBM | FFMI | BMI | Target Def. | Target Sur. | Target In | Min. In |
|---|
Health disclaimer
This app is for informational use only and does not constitute medical advice. Consult a qualified healthcare professional before making significant changes to your diet or training. Calculations are based on peer-reviewed research (Alpert, 2005; Kouri et al., 1995) but individual physiology varies.
Privacy
All data lives on this device, in the browser's local storage. LBM Watcher sends none of it anywhere: no analytics, no advertising, no account, no server of its own. Beyond loading its own files, the app requests nothing from the network.
The 290 ± 25 kJ / kg fat / day figure (Alpert, 2005) defines the theoretical upper bound on adipose lipolysis. The rate-limiting step is hormone-sensitive lipase (HSL), the primary enzyme for intracellular triglyceride hydrolysis in adipocytes.
This ceiling only applies in a fully fasted state. Any caloric intake elevates insulin, which suppresses HSL via the cAMP–PKA signalling axis: insulin activates phosphodiesterase 3B, lowering cAMP and leaving HSL dephosphorylated and inactive. In a normal eating pattern, postprandial insulin suppression restricts effective fat mobilisation for most waking hours, pushing the realistic daily ceiling well below 69 kcal / kg fat.
Targeting 100% therefore creates a structural deficit that fat stores cannot fully cover. The gap is filled through gluconeogenesis (catabolism of skeletal muscle protein), which drives disproportionate LBM loss. Settings below 60% keep the deficit within what adipose tissue can realistically sustain under normal dietary conditions.
Your target body-fat %. Weight and LBM are projected forward daily under the Alpert deficit until this threshold is reached. The resulting date and weight become the cut endpoint shown on both charts.
Height is used for BMI and FFMI. FFMI 25 marks the natural upper bound (Kouri et al., 1995). Activity level scales BMR to full TDEE.
Total daily calories including all activity. Enter a value manually, or press Calculate TDEE to run Katch-McArdle against today's smoothed LBM. More accurate than weight-only estimates when body composition is tracked.
Entries are written to this browser's local storage. LBM Watcher has no server and no account system, and its own code contains no analytics and no tracking. Nothing leaves the device unless you export it yourself.
Plain UTF-8 CSV, four columns. Dates are ISO 8601. BF% and the note are optional per row and export as empty fields when absent. Files written before v1.19 have three columns and still import. The last #params row stores all settings and is restored on import.
date: YYYY-MM-DD (ISO 8601)
weight: kilograms
bodyfat: percent, optional per row
note: free text, optional per row
#params: settings snapshot
Fill in several days at once. Each row is one measurement. Press + to add a row; the date steps forward by one day automatically. Weight is required, BF% is optional. Rows with no weight are skipped. Existing entries for the same date get overwritten.
Thanks for being here, and for trusting a tiny, independent app with your data.
Everything you enter stays on this device. No account, no cloud, no analytics, no tracking. A backup leaves the device only when you export it yourself.
Let's set up a few basics so your numbers are yours from day one. Takes about a minute.
Your height anchors BMI, FFMI and your muscle-gain ceiling. Your activity level sets your daily energy baseline.
Not sure? Pick the lower one. Most people overestimate.
Add today's numbers to get going. Both are optional, so you can skip and add them later.
Body fat: read it from an impedance scale, or estimate it. A rough number is fine to start, and you can refine it anytime.
Pick the body-fat level you're aiming for. The app projects your path toward it and flags anything that would cost you muscle.
This sets how aggressive your plan is. Gentler protects your hard-earned muscle; steeper is faster but riskier.
A gentle default is set for you. When in doubt, leave it. You can fine-tune anytime.
Add your weight every day or two. Consistency beats precision. The app smooths out the daily noise for you.
Projections appear from your second entry. Over the first two to three weeks the curve settles in and the numbers get sharper.
It starts in Cut mode and switches on its own if your trend turns into a bulk. Nothing else to configure.
| Date | Day | Wt. | Wt.~ | BF% | BF~ | LBM | FFMI | BMI | Target Def. | Target Sur. | Target In | Min. In | Note |
|---|
Editing overwrites this measurement. Changing the date moves the entry; if another entry already exists on the new date, it is replaced.
LBM Watcher runs without a server. What you enter is written to storage inside this browser, and the app requests nothing from the network beyond its own files. This page describes how that is built and what you can look at yourself.
Open the app in a desktop browser, open the developer tools with F12 and switch to the Network tab. Reload once so the panel starts clean, then use the app: add an entry, change a parameter, open a chart. The only requests are for the app's own files. Adding data produces none at all.
In the same tools, open Application, then Local Storage. One key holds everything: your entries and your settings, as plain readable text. That is the whole database.
The response headers carry a Content Security Policy with connect-src 'self', which stops a script in this page from opening a connection to another host. It does not cover a normal link you tap, which is why the two external links in the app are named openly rather than hidden under a broad denial.
Turn on flight mode and use the app. It keeps working, because the files are cached on the device and there is nothing else to fetch.
An export is a file, and once you have shared or backed it up, where it goes is up to you and your device. Your operating system may include app data in its own backups. Those are outside the app, and this page does not pretend otherwise.
A lookup aid, not a measurement. The figures are schematic: at the same body fat percentage two people can look noticeably different, because fat distribution and how much lean mass sits underneath vary from person to person.
The male bands are the same ones the dashboard uses to colour your body fat reading, so the picture and the label always agree. The female bands follow the American Council on Exercise reference ranges. Both are population references for orientation, not a diagnosis.
LBM Watcher · Last updated: July 2026
Short version: LBM Watcher collects no data. Everything you enter stays on your device. No server, no account, no analytics, no advertising.
LBM Watcher is a free, local-only Progressive Web App (PWA) for tracking body weight, body fat percentage, and lean body mass over time. It is developed and maintained independently by Feym Luna.
LBM Watcher collects no personal data of any kind. Specifically:
All data you enter (weight measurements, body fat percentages, and app settings) is stored exclusively on this device, in the app's local storage (a standard browser feature called localStorage). Nothing leaves the device unless you export it yourself, and an export is a file you then control. The app also asks the system to treat this storage as persistent, so it is less likely to be cleared when space runs low.
You can delete all stored data at any time from within the app (Data → Delete all data) or by clearing the app's data through your device settings.
The app makes no automatic connections to external servers. The only external link present in the app is the optional support link:
The JetBrains Mono font is bundled with the app and served from your own device. No request is made to Google Fonts or any other external font service. Beyond loading its own files, the app requests nothing from the network. The only links pointing outside it are the support page and the contact address, and both open only when you tap them.
LBM Watcher is provided for informational purposes only. It does not constitute medical advice, diagnosis, or treatment. The physiological calculations in this app are based on peer-reviewed research (Alpert, 2005; Kouri et al., 1995) but individual physiology varies significantly.
Do not rely solely on this app to make health or dietary decisions. Consult a qualified healthcare professional, registered dietitian, or sports medicine specialist before making significant changes to your diet, training, or caloric intake.
This app is intended for users aged 18 and older. We do not knowingly collect any data from children under 13. Since no data is collected from anyone, there is nothing to collect from minors either.
If this privacy policy changes, the updated version will be published with a revised "Last updated" date. Since no data is collected, changes are unlikely to affect users materially.
For questions about this privacy policy, reach out by email: contact@feymluna.com
The developer goes by Feym Luna and responds in English and German.
This policy is also published at https://lbm-watcher.feymluna.com/privacy. Same content, shareable from any browser.