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). Uses npx -y @googleworkspace/cli so 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:D9 from JSON if present.
  • Usage: From knowledge/clients/lmnt/resources/, run ./write_week_by_week_to_sheet.sh after gws auth login -s sheets,drive if needed.

5. Sheet formatting (Sheet1)

  • Added: LMNT_sheet_format_requests.json
  • Purpose: Google Sheets API batchUpdate payload 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.

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 from knowledge/clients/lmnt/renewal/RENEWAL_PROPOSAL_MAR_SEP_2026.md.
    • LMNT_options_format_requests.jsonbatchUpdate payload 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.
  • 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.json if that file exists (idempotent refresh of comparison content).

8. Summary of files added

FileRole
LMNT_renewal_week_by_week_plan_of_attack.mdSpec and plan for the deliverable
LMNT_week_by_week_inputs_outputs.csvWeek-by-week table (CSV for manual import)
LMNT_week_by_week_values.jsonWeek-by-week table (JSON for gws)
LMNT_week_by_week_ASSUMPTIONS.csvAssumptions (CSV for manual import)
LMNT_week_by_week_assumptions_values.jsonAssumptions (JSON for gws)
LMNT_week_by_week_README.mdHow to run the script or import manually
write_week_by_week_to_sheet.shScript to write table + assumptions + options to Sheet via gws
LMNT_sheet_format_requests.jsonFormatting for Sheet1 (header, freeze)
LMNT_options_comparison_values.jsonOptions A/B/C comparison content
LMNT_options_format_requests.jsonFormatting for Options comparison sheet
LMNT_WEEK_BY_WEEK_IMPLEMENTATION.mdThis document

9. What exists in the Google Sheet after running