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.
- Click Clients in the sidebar to see your roster.
- Select a client from the list to open the client page.
- Open the Nutrition tab, then scroll to Food Journal (last 7 days).
- 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"):
- Trust — clients own their food journal. If trainers could fabricate entries, the data is meaningless.
- Cost — trainers fabricating data could trigger downstream re-pricing of macro coaching.
- 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
- Open the Nutrition tab and review the last 7 days.
- Spot patterns — are calories systematically low? Is protein hitting target?
- Compare daily totals to the MacroTarget you set above.
- Have the conversation via WhatsApp — "I noticed protein is low on the 23rd and 24th, anything going on?"
- 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?
