LMNT Renewal: Week-by-Week Table — What Was Done
Date: 2026-03-10
Context: Shivani/Phil ask for the LMNT renewal: a simple week-by-week table (inputs/outputs) so Phil can “clearly see progress being made weekly worth the price point,” plus formatting and a comparison of the three options.
1. Plan of attack (documentation)
- Added:
LMNT_renewal_week_by_week_plan_of_attack.md - Purpose: Single doc that defines what Phil wants, table structure, how to phrase outputs as business outcomes, assumptions to call out, and where to pull data from (Data Sources sheet, Strategic Planning Framework, renewal transcript). Used as the spec for building the table and the gws workflow.
2. Week-by-week table (data)
- Added:
LMNT_week_by_week_inputs_outputs.csv— 14 weeks (2026-03-10 through 2026-06-09), columns: Week (start date), Work stream, Inputs, Outputs, Business outcome (unlock), Primary role. Content aligned to Data Platform Documentation (e.g. Amazon 3/3, Walmart 3P & Spins 3/14) and Strategic Planning Framework.LMNT_week_by_week_values.json— Same 15 rows × 6 columns as JSON for the Sheets API (used by the gws script).
- Content: Each row is one week. Inputs = what we ingest/model that week (e.g. “Amazon Seller Central connector go-live”, “Unified order date logic”). Outputs = what ships (e.g. “Amazon + Shopify sales aligned and finance ready”, “One dashboard for retail VP”). Business outcome = one-line plain-English unlock. Primary role = DE / AE / Analyst.
3. Assumptions block
- Added:
LMNT_week_by_week_ASSUMPTIONS.csv— Six assumptions (dashboard scope, definitions and access, Shopify/Amazon alignment, marketing/MER, supply chain, primary-role key) for manual import if not using gws.LMNT_week_by_week_assumptions_values.json— Same content as JSON for the Sheets API.
- Placement in Sheet: Written to
Sheet1!A17:B24(below the week-by-week table) by the script.
4. gws script (write table to Google Sheet)
- Added:
write_week_by_week_to_sheet.sh - Purpose: Writes the week-by-week table and Assumptions to the target Google Sheet via the Google Workspace CLI (
gws). Usesnpx -y @googleworkspace/cliso it runs even when gws is not on PATH. - Target Sheet:
1PXjBjM_MSfG5jT53Ouv6VHOWge0rBxGLvBaic6Kzt6g- Sheet1:
A1:F15= table,A17:B24= Assumptions. - Options comparison: Updates
Options comparison!A1:D9from JSON if present.
- Sheet1:
- Usage: From
knowledge/clients/lmnt/resources/, run./write_week_by_week_to_sheet.shaftergws auth login -s sheets,driveif needed.
5. Sheet formatting (Sheet1)
- Added:
LMNT_sheet_format_requests.json - Purpose: Google Sheets API
batchUpdatepayload to format the week-by-week sheet. - Applied once via gws:
- Header row (row 1): Bold, light gray background (
rgb 0.93, 0.93, 0.93). - Freeze: 1 row frozen so the header stays visible when scrolling.
- Header row (row 1): Bold, light gray background (
6. Options comparison (new tab + content)
- Added:
LMNT_options_comparison_values.json— Side-by-side comparison of Option A, B, C (pricing, timeline, workstreams, key milestones, how the week-by-week table maps to each option, resourcing). Sourced fromknowledge/clients/lmnt/renewal/RENEWAL_PROPOSAL_MAR_SEP_2026.md.LMNT_options_format_requests.json—batchUpdatepayload to format the “Options comparison” sheet (header bold, light blue-gray background, freeze row 1).
- Applied via gws:
- New sheet: “Options comparison” created with
batchUpdate(addSheet). - Values: Written to
Options comparison!A1:D9. - Formatting: Header row bold + background, 1 row frozen.
- New sheet: “Options comparison” created with
- Content: Rows = Monthly price | Timeline | Workstreams | What you get by when | Weekly progress (this doc) | Resourcing change. Makes it explicit that the week-by-week table = Option B pacing (recommended) and how A/C differ.
7. README and script behavior
- Added:
LMNT_week_by_week_README.md— How to build the table: Option 1 = run the gws script (with re-auth instructions), Option 2 = manual CSV import. Lists all files and links to the target Sheet and the Data Platform Documentation (Data Sources tab). - Script: Updated so that when run, it also updates the “Options comparison” tab from
LMNT_options_comparison_values.jsonif that file exists (idempotent refresh of comparison content).
8. Summary of files added
| File | Role |
|---|---|
LMNT_renewal_week_by_week_plan_of_attack.md | Spec and plan for the deliverable |
LMNT_week_by_week_inputs_outputs.csv | Week-by-week table (CSV for manual import) |
LMNT_week_by_week_values.json | Week-by-week table (JSON for gws) |
LMNT_week_by_week_ASSUMPTIONS.csv | Assumptions (CSV for manual import) |
LMNT_week_by_week_assumptions_values.json | Assumptions (JSON for gws) |
LMNT_week_by_week_README.md | How to run the script or import manually |
write_week_by_week_to_sheet.sh | Script to write table + assumptions + options to Sheet via gws |
LMNT_sheet_format_requests.json | Formatting for Sheet1 (header, freeze) |
LMNT_options_comparison_values.json | Options A/B/C comparison content |
LMNT_options_format_requests.json | Formatting for Options comparison sheet |
LMNT_WEEK_BY_WEEK_IMPLEMENTATION.md | This document |
9. What exists in the Google Sheet after running
- Tab “Sheet1”: Week-by-week table (rows 1–15), formatted header, frozen row 1; Assumptions (rows 17–23).
- Tab “Options comparison”: Three-column comparison (Option A | B | C), formatted header, frozen row 1; bottom note: “We recommend Option B.”
- Sheet URL: https://docs.google.com/spreadsheets/d/1PXjBjM_MSfG5jT53Ouv6VHOWge0rBxGLvBaic6Kzt6g/edit