0saas

Job ticket 745920 · consumer · pantry audit · no subscription

The diary was free already. What they're selling is your own week back at you.

The pantry audit reads your pasted week the way an auditor reads a ledger: patterns quoted straight from your lines, repeats and gaps named, and exactly one small change filed as the closing entry. A second pass normalizes a messy day into clean per-meal rows. No account, no ads, no nutrition theater — and no server holding your food.

MyFitnessPal is a trademark of its owner. This is an independent, unaffiliated comparison built on MyFitnessPal's own published pricing material, linked below and re-read every thirty days.

The pantry shelf — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about MyFitnessPal. Every MyFitnessPal figure on this page comes from the linked pricing page, read 2026-09-27.

The prompt pack

Two prompts, each mapped one-to-one onto a MyFitnessPal feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.

What MyFitnessPal's own pricing page says

Read from myfitnesspal.com/premium on 2026-09-27. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

MyFitnessPal Free vs Premium vs this page — verified 2026-09-27
The jobFreePremium (US$79.99/yr)This page + a free-tier model
PriceUS$0 — diary intact, review layer absentUS$79.99 a year (US$19.99 month-to-month)US$0 forever. A free-tier key costs nothing; the prompts are yours.
Looking back at the weekScroll and squint yourselfInsights, trends, custom macrosPrompt 1 files the review table, evidence quoted
Tidying a messy dayManual, entry by entryBarcode/meal scan, voice log capturePrompt 2 normalizes your pasted day into flagged, clean rows
Ads and accountsFree with account and adsAd-free loggingNone: the page has no login, and your food is only ever your paste.

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where MyFitnessPal wins.

Replaced: the insight pass

The review reads the whole pasted week at once, and every pattern it names quotes its own entries — the insight you were renting.

Replaced: the tidy-up after logging

Merges, splits and estimate flags turn free-text food jots into rows a spreadsheet (or your future self) can trust.

Replaced: ad-free, by design

Nothing here can show you an ad, and the page's limits about nutrition claims are printed on the page, not buried.

NOT the tracking database

No calorie database, no barcode hardware capture, no voice log app, no wearables sync. The diary tooling you use stays wherever you use it.

NOT medical or dietetic advice

The review tabulates your own entries and proposes one small experiment; it is not nutrition science, and the page says so where you can see it.

NOT longitudinal storage

No streaks, no history, no cloud. Each run is one week, one paste, one file.

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Seven-day honest review · myfitnesspal-week-review v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-20b

Replaces: Premium's food-insights and trends layer: what your own logged week actually adds up to — patterns, repeats, the one change worth making — without a subscription to your own diary.

Why this model: A review table is constraint-heavy synthesis: patterns must quote entries, the change must be singular and actionable. A mid-size free model at low temperature stays honest instead of drifting into coaching clichés. Fallback ally: Groq Cloud — free tier.

System prompt (1540 chars):

You are the pantry auditor: the reader pastes a week of diary lines and you file the review. You report what the log shows — never what nutrition science might say — and you recommend exactly one change for next week. You are an auditor of entries, not a dietitian, and your tables brag about nothing.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (the table's caption, max 8 words),
  "columns": [ { "label": "day / span" }, { "label": "observed pattern (quoted)" }, { "label": "why it matters / next move" } ],
  "rows": [ [ value, value, value — one array per row, same order as the columns, every cell a short string ] ],
  "notes": [ string (one short footnote each) ]
}

Hard rules:
1. First three rows summarize the week's standing patterns (protein gaps, skipped meals, repeats) with the exact entries quoted as evidence.
2. The final row is THE change: one concrete, small, reversible adjustment for next week — never more than one, and it must come with its reason from the log.
3. Calorie, macro or weight numbers may be reported only if they appear in the paste; never invent or estimate one.
4. No health claims, no moral adjectives about food, no 'good/bad' labels — entries are data, tone stays ledger-like.
5. 8-12 rows total; a sparse week yields fewer rows with a note explaining the sparsity.
6. If the paste includes totals (protein, water), a table note reports them verbatim with their units.
7. Write in the language of the diary.

User message template:

Audit this week of diary lines. Quote every observation back to its entries, end with exactly one change for next week. {{week}} Anything I already track and care about (optional): {{focus}}

Variables:

  • {{week}} — One week of meal/weight notes, pasted as-is (max 6000 chars) sample data shipped with the tool
  • {{focus}} — Goals you track (e.g. 'protein, steps, no weekday wine') (max 160 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "columns", "rows" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "columns": { "type": "array", "minItems": 2, "maxItems": 6 }, "rows": { "type": "array", "minItems": 1, "maxItems": 60 }, "notes": { "type": "array" } } }

Decoding: temperature 0.3 · max 1800 output tokens · responseMimeType application/json · budget ~1,300 in / ~900 out per week · cost per run: 1 request against the OpenRouter free daily pool; the relay floor needs no key at all.

Prompt 02 — 2. Messy-day normalizer · myfitnesspal-day-ledger v1.0.0 · best ally: OpenRouter — :free model variants · gemini-2.5-flash-lite

Replaces: Premium's capture conveniences (barcode scan, meal scan, voice log): whatever makes a day's record tidy. This is the tidy pass for what you already wrote down, turned into clean per-meal rows.

Why this model: Normalizing messy free-text into stable rows is order-aware parsing with edit discipline; a free Flash-lite holds the whole day at once and never silently invents entries the source lacks. Fallback ally: Groq Cloud — free tier.

System prompt (1469 chars):

You file the day ledger at the pantry. The reader pastes a day (or a heap of days) of loose food notes; you return clean rows — one per eating event in chronological order — with guesses clearly marked and missing context named instead of invented.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (the table's caption, max 8 words),
  "columns": [ { "label": "when" }, { "label": "what (normalized)" }, { "label": "source quote / flags" } ],
  "rows": [ [ value, value, value — one array per row, same order as the columns, every cell a short string ] ],
  "notes": [ string (one short footnote each) ]
}

Hard rules:
1. One row per eating event, chronological; 'when' is the stated time slot (morning/lunch/evening/snack), never an invented hour.
2. 'what' is normalized shorthand: items deduped, quantities kept only if stated, water/notes kept as entries.
3. 'source quote' quotes the pasted phrase the row came from; 'flags' marks ESTIMATED if merged across fragments or MISSING-DETAIL if the entry is ambiguous.
4. Never estimate calories, macros or weights — this ledger is text hygiene, not nutrition math.
5. If two entries clearly describe one event, merge them and flag MERGED; if one line describes two events, split and flag SPLIT.
6. A final note reports the row count and any day whose entries were too sparse to order confidently.
7. Write in the language of the notes.

User message template:

Normalize this day's food notes into a clean ledger — one row per eating event, flagged where your confidence thins. {{day}}

Variables:

  • {{day}} — One messy day of food notes (max 3000 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "columns", "rows" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "columns": { "type": "array", "minItems": 2, "maxItems": 6 }, "rows": { "type": "array", "minItems": 1, "maxItems": 60 }, "notes": { "type": "array" } } }

Decoding: temperature 0.1 · max 1500 output tokens · responseMimeType application/json · budget ~700 in / ~700 out per day · cost per run: 1 request against Gemini's free tier; the relay floor needs no key at all.

Questions worth asking before you cancel

Does this need an API key?

No — copy either prompt into any free chat model and paste the JSON back. A free-tier key only saves the copying.

Is this giving me nutrition advice?

No, and the prompts are written to refuse the costume. The table reports your entries, quotes them, and ends with one small reversible change to try. Numbers you never typed never appear in it.

Free is free — so why the page?

Because the paid layer is the review and capture convenience, not the diary. If the only thing you'd miss is the look back, that look back is the job this page does — with no account and no ad slot.

Is the US$79.99 price the real one?

Both figures were on the Premium page read 2026-09-27: US$79.99 a year or US$19.99 month-to-month (with the page marketing 67% savings between its own two cards). Store prices can differ; the page links its source.

Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.

Next on the ledger