Reading the Client Food Journal

Read-only view of every meal the client has logged in the last 7 days.

trainer guide/clients/[id]
What this is for: Audit client nutrition adherence without being able to edit or fabricate entries.

What you can see

Open /clients/[clientId] → Nutrition tab. Below the macro target form is the FoodJournalSummary component. It shows:

  • Last 7 days, grouped by day.
  • For each day: total calories, total P/C/F, and a list of meals with their breakdowns.
  • Each meal: type (breakfast/lunch/dinner/snack), name, calories, P/C/F, optional notes.
  1. Click Clients in the sidebar to see your roster.
  2. Select a client from the list to open the client page.
  3. Open the Nutrition tab, then scroll to Food Journal (last 7 days).
  4. Each day lists its meals with calories, and the daily totals sit above them.

Why you cannot edit

This is a deliberate product decision (the "CEO cost rule"):

  1. Trust — clients own their food journal. If trainers could fabricate entries, the data is meaningless.
  2. Cost — trainers fabricating data could trigger downstream re-pricing of macro coaching.
  3. Behavior — clients learn faster when they fill it in themselves.

Backend enforcement: trainer POST/PATCH/DELETE on /api/clients/[id]/food-journal/* returns 403 Forbidden even though you can read.

How to coach using the journal

  1. Open the Nutrition tab and review the last 7 days.
  2. Spot patterns — are calories systematically low? Is protein hitting target?
  3. Compare daily totals to the MacroTarget you set above.
  4. Have the conversation via WhatsApp — "I noticed protein is low on the 23rd and 24th, anything going on?"
  5. If the target itself is wrong, edit it via MacroTargetForm.

Limits in the journal

  • Text-only — no photo uploads (cost decision).
  • 20 entries per client per day (rate limit).
  • Entries can be backdated up to 7 days only (clients can't fabricate a month-old eating history).
  • Notes field is HTML-stripped server-side (XSS-safe).

Common pitfalls

Where to find this

  • Page: /clients/[clientId] → Nutrition tab → FoodJournalSummary.
  • Read-only API: GET /api/clients/[clientId]/food-journal.
  • Trainer write attempts return: 403.
Was this article helpful?