Mapping / Alignment
Workbook census vs canonical template registry (read-only)
Mapping coverage
- Daglig Tracker: 41/51 columns mapped; writeback whitelist 42 client fields
- 5 split - Lets get shredded and: Workout log writeback weeks 1–12; week 1 set 1 = T/U
- Dropdown helper: Ignored/replaced by app dropdowns
- PED plan: Detected, sensitive, not exposed by default
- Step Load Model: Optional — empty OK
- Food Database: Option source foodOptions[]
- Exercise Log: Option source exerciseOptions[]
- TD Nutrition: Primary meal blocks; secondary #REF ignored
- NTD Nutrition: Rest day meal blocks
- Mad udbytning: foodSwapOptions[]
- Averages: Derived/read-only analytics
- Tidsplan: Coach-owned plan + startDate week logic
Writeback readiness
- Daily tracker: ready
- Workout log: ready
- · Training weeks 1–12 mapped
- · Week 1 Set 1 = T/U confirmed
- · Dry-run: GET /api/google/writeback/workout-log/mapping
Reports: docs/architecture/workbook-census-kim-felix-wii-planer.md
Registry: src/lib/spreadsheet/templateMappings/jonathanCuttingPlanV1.ts
Sheet Control Lab
CoachGrid Workbook Template V1
Safely draft, validate, and preview template changes — no live Google writes.
Template status
Active registry
Known sheets
12
Writeback areas
2
Custom fields (est.)
10
Risk level
none
Sheet structure inspector
Jonathan Cutting Plan v1 — mapped sheets, ownership, writeback
Daglig Trackerrequiredclient
Daily check-ins — weight, steps, sleep, hunger, performance, client metrics
Client-owned columns; writeback whitelisted only
| Col | Label | Owner | WB |
|---|---|---|---|
| B | Coach/system column B | coach | — |
| C | Coach/system column C | coach | — |
| D | Coach/system column D | coach | — |
| H | Coach/system column H | coach | — |
| AZ | Coach/system column AZ | coach | — |
| E | Kropsvægt (kg) | client | ✓ |
| I | Protein actual (g) | client | ✓ |
| J | Fedt actual (g) | client | ✓ |
| K | Kulhydrat actual (g) | client | ✓ |
| L | Kalorier actual (kcal) | client | ✓ |
| N | Fiber indtag | client | ✓ |
| O | Væske (L) | client | ✓ |
+23 more mapped columns
Tidsplanrequiredcoach
Plan timeline — weeks, phases, training/rest calendar
| Col | Label | Owner | WB |
|---|---|---|---|
| A–Z | Week rows, phases, training/rest flags | coach | — |
5 split - Lets get shredded andrequiredcoach
5-day training split — exercises, sets, reps, load targets
Aliases: 5 split - Lets get shredded and big
Logged reps/load per set are client-owned writeback cells
| Col | Label | Owner | WB |
|---|---|---|---|
| A–G | Exercise, sets, reps, load targets | coach | — |
| H+ | Logged reps/load per set | client | ✓ |
TD Nutritionrequiredcoach
Training day nutrition — meals, macros, portions
| Col | Label | Owner | WB |
|---|---|---|---|
| A–F | Meals, foods, macros | coach | — |
NTD Nutritionrequiredcoach
Rest day nutrition plan
| Col | Label | Owner | WB |
|---|---|---|---|
| A–F | Rest day meals | coach | — |
Food Databaserequiredcoach
Food macro database — coach-maintained reference
| Col | Label | Owner | WB |
|---|---|---|---|
| A–E | Food name, protein, fat, carbs, kcal per 100g | coach | — |
Exercise Logrequiredcoach
Exercise library — cues, setup, muscle groups
| Col | Label | Owner | WB |
|---|---|---|---|
| A–D | Exercise, muscle, cues, setup | coach | — |
Mad udbytningrequiredcoach
Mad udbytning — approved food swap library
| Col | Label | Owner | WB |
|---|---|---|---|
| A–D | Swap from/to, multiplier | coach | — |
Averagesrequiredclient
Weekly averages and progress analytics
Derived from client tracker data
| Col | Label | Owner | WB |
|---|---|---|---|
| A–Z | Weekly averages derived from tracker | client | — |
PED planoptionalclient
Private health / protocol log
Sensitive — hidden from AI and client app by default
| Col | Label | Owner | WB |
|---|---|---|---|
| A–Z | Private health protocol log | client | — |
Step Load Modeloptionalcoach
Step load progression model
Blank template rows may import as empty
| Col | Label | Owner | WB |
|---|---|---|---|
| A–Z | Step load labels (template may be empty) | coach | — |
Dropdown helperignoredignored
Spreadsheet dropdown helper (legacy formulas)
Broken formulas safely ignored; replaced by app dropdown logic
Dropdown / value control
App-managed options — legacy Dropdown helper is read-only
Daily Tracker 1–7 scores
App-manageddailyTracker · score_fields
Hunger, cravings, motivation, performance, soreness, energy, stress, sleep quality
Macro day type
App-manageddailyTracker · macroDay
Column H — coach-owned target row; client sees mirrored value
Food swap multipliers
App-managedfoodSwaps · multiplier
Danish decimal patterns normalized on import
Training day yes/no
App-manageddailyTracker · trainingDay
Legacy Dropdown helper
LegacydropdownHelper · legacy
Ignored — broken #REF formulas; do not modify directly
No direct edits — replaced by app export path
Future export can write Google Sheet data validation rules. Stage 5.17 only drafts and validates options.
Draft operations builder
Simulated changes — local state only, uses real operation types
Allowed types: add_column, rename_column, add_dropdown_option, remove_dropdown_option, create_custom_metric, ignore_column, map_column_to_existing_field, mark_column_coach_owned, mark_column_client_owned
Proposed changes
0 draft operation(s)
No draft operations yet. Use the builder above to simulate changes.
Change preview
Before / after diff with ownership and risk
Preview appears when draft operations are added.
Validation summary
Draft set is valid
Writeback risk: none
Add simulated operations to run validation.
How this ships to spreadsheet
Export / apply strategy
- Export metadata JSONavailable
Safe now — template structure, ownership, writeback whitelist, draft schema
- Export .xlsx templateplanned
Generate workbook from validated draft operations
- Apply to copied test Google Sheetplanned
Next stage — coach-owned test copy only
- Apply to live coach sheetlater
Requires coach Google authorization + rollback/versioning
Safety rules
No unknown field becomes writable without approval
- No unknown or custom field becomes writable until mapped, validated, and approved
- Dropdown helper sheet is ignored — options are app-managed
- PED / private health log is never auto-written
- Draft operations are local preview only — no Google Sheets mutation in Stage 5.17
- Live coach spreadsheet requires OAuth + explicit confirmation (later stage)
read_only_until_mapped
Writeback whitelist: 30 Daily Tracker columns (client-owned).
Import existing sheet via Sync Center →