🔍 Deep Audit · v1 Google Sheets vs Excel Monthly Obligations

Tue May 12 2026 · 12:10 AM EDT · Pre-migration analysis
Path: outputs/2026-05-12_00-10_audit_monthly-obligations-v1-vs-excel.html
Purpose: Before Sam migrates the Excel workbook to Google Sheets and rewrites the Apps Script, this audit catalogs every tab, every formula path, every script function, every trigger, and flags every conflict between the two systems. Nothing gets silently dropped, nothing gets duplicated, every decision is named.

📋 Executive summary

The two systems are NOT duplicates. They each hold material the other doesn't.

v1 Google SheetsExcel workbook
Source ID1L_rxCSOnc...Monthly Obligations.xlsx (local)
Tabs~13-15 tabs (~41 markdown sections in Drive dump)26 tabs
Schema ageLive since Sep 2025 · ~150 patchesBuilt Mon 5/11 via cloud Excel Claude session (~17 turns)
Obligations row count~57 active + 11 archived43 active
Obligations schema41 columns (legacy bloat)28 columns (cleaner) + Side/Amortized?/Include-in-Debt-KPI? (NEW)
Apps Script118 functions · 137 KB Code.js · 6 active triggersNone (Excel has no Apps Script equivalent)
STR detailMentions only in Action Master5 tabs (9312, 9332, Combined, Operations, PM History)
Provenance/source tracingNone (numbers are magic)Sources_&_Provenance tab traces every static value
Wife-safe viewNone — wife sees everything if sharedWife_View tab with 5 KPIs · no debt or business detail
Action Master / loopsYes — 37-row Action_Master tabYes — 25-row Action_List tab
Cashflow projectionYes — 20-month month-by-month projectionYes — Cashflow_Assumptions with real Rocket Money baselines
Snowball / AvalancheYes — High-APR-first plan viewNot built (computable from Obligations_Master)
Calendar overlayYes — Jewish holidays + personal eventsCalendar_Seasonality (multiplier grid for STR pricing)
Net worth / InvestmentsNoInvestments tab (auto-pull liabilities, assets blank)
Rocket Money reconcileNoTop 50 recurring charges from RM 6mo export
Amazon classifierNo100-row keyword categorization (15 buckets)
Sharing/visibility frameworkNoneSharing_Map tab + per-tab color tags (Sam/Wife/Mildred/All/Meta)

Recommendation in one line: Excel workbook is the better architecture going forward. v1 Google Sheets has critical data + the live Apps Script automation. The migration is NOT "Excel replaces Sheets" — it's "port Excel architecture INTO new Google Sheets, then port the useful Apps Script functions onto the new sheet, then archive both v1 Sheets and original Excel file."

📊 v1 Google Sheets — tab inventory + what each holds

From Drive dump of 1L_rxCSOnc... · 41 distinct markdown sections. Multiple sections per tab in some cases (Daily Snapshot KPIs render across 5+ sections).

TabCols / RowsWhat it holdsMigration verdict
Monthly Obligations (main tab)41c × 57rCore obligations table — Type, Card Name, Issuer, Balance, Limit, Min Due, Due Date, Day, APR, Utilization, Payoff Months, Interest Warning, Suggested Payment, User Override, etc. Has live formulas for Days-Until-Due, Interest Warning, Final Payment Suggestion.MERGE Excel's Obligations_Master has the same data with cleaner 28-col schema. Excel schema wins. Data values reconcile (43 Excel rows ⊂ 57 v1 rows — Excel deleted some closed/archived).
Settings / config3c × 7rLAST_MIGRATION marker, version flags, set by V3_MIGRATE_FROM_LEGACY function.DROP Apps Script migration artifact. Excel doesn't need this — it's the destination, not a versioned migration.
Lists (dropdown sources)8c × 15rtype_list, pay_from_list, schedule_list, status_list, cadence_list — dropdowns for data validation.MIGRATE Move to new Sheets as a _Lists sheet with named ranges. Excel Obligations_Master uses inline dropdowns; Sheets prefers central _Lists.
Obligations_v3 (newer migration target)24c × 43rSame data, fewer columns, drafted as the "clean" version. Schema mid-evolution between v1 41-col and Excel 28-col.DROP Superseded by Excel Obligations_Master.
Cashflow projection9c × 20rMonth-by-month forward projection: fixed_bills, debt_payments, installments, total_outflow, income_estimate, net, running_balance. Through Oct 2027.MERGE Excel has Cashflow_Assumptions (input layer) but not the 20-month projection (output layer). Port the v1 projection logic onto Excel inputs.
Pay This Week / Snowball10c × 12r2-week pay queue + High-APR-first payoff plan view.MIGRATE Useful view. Rebuild on Excel Obligations_Master with FILTER/SORT formulas in new Sheets.
Daily Snapshot KPIsMulti-sectionDue this month, Cards >80% util, Highest-APR balance, Days to next pmt, Suggested payment actions, Active installment plans, Last report run, Action Master open count, Top 10 obligations by amount, Mini list next 2 weeks.MIGRATE Excel has Dashboard but doesn't expose this many KPIs. Adopt these KPI definitions in Excel Dashboard, OR keep them in new Sheets as the auto-refreshed dashboard tab.
Archive (closed obligations)43c × 11r11 archived rows (cleanup-2026-04-26): Amex Gold, etc.MIGRATE Excel Archive tab is empty (9r placeholder). Port these 11 rows over.
Snowball/Avalanche projection6c × 20rMonth-by-month payoff projection: Starting Balance, Payment, Interest, Ending Balance, Notes — currently shows #VALUE! errors.MERGE Useful structure but broken. Rebuild clean in new Sheets.
High-Priority Debt / High-Risk Util6c × multiAvalanche-method view, high-APR debt attack, high-util warning.MIGRATE Conditional-formatted slice of Obligations_Master.
Action_Master8c × 37rCategory, Subcategory, Task, Priority, Status, Due Date, Owner, Notes — full open-loops list. Has Market/Trading rules section (7 rules).MERGE Excel Action_List is 25r, mostly different scope (financial-only). Reconcile: take v1's broader Action_Master, mark which rows are Excel-Action-List equivalents, drop the trading rules (those belong in MIS doc).
Trading rules (7 daily)1c × 7rDaily-take-trades-only-when-regime-aligned · etc. — Sam's trading discipline rules.DROP Already covered in MIS memory + CURRENT_STATE. Doesn't belong in financial sheet.
Auto_Hide / lookup ranges1c × multiShow/Hide flags, internal-script lookup cells.DROP Apps Script implementation detail. Re-create in new Sheets when porting script.
Custom payment plans15c × 3rSchema-only example row for custom payment plans (down payment, frequency, etc.).MERGE Excel Installments covers this. Drop the example row.
Calendar event listings5c × multiBucket, Start, End, Event, Location — Jewish holidays + personal events.MIGRATE Useful. Excel doesn't have this. Port to new Sheets — feed off Google Calendar API in new Apps Script.
Mini-views / Recently Paid4-6c × multiRecurring subscriptions, recently-paid list, scheduled-for-this-week.MERGE All derivable from Obligations_Master with FILTER. Drop the static copies.

📊 Excel workbook — 26 tab inventory + verdict

TabCols / RowsWhat it holdsMigration verdict
Claude Log6c × 18rSession journal (turns 1-17 from Mon 5/11 cloud Excel session).DROP Local-session artifact. Useful only inside Excel — don't carry to Sheets.
User_Guide6c × 78r"How to operate" — workflow instructions.MIGRATE Belongs in new Sheets as on-board doc.
README6c × 35rSystem overview.MIGRATE Same.
Sharing_Map6c × 66rTab color legend (Sam/Wife/Mildred/All/Meta) + future-state share architecture.MIGRATE Drives Protected Ranges setup in new Sheets.
Handoff1c × 228rMarkdown handoff doc (what you pasted to me).DROP One-time handoff. Keep in repo as docs/ markdown instead.
Sources_&_Provenance 🔑7c × 37rEvery static value's source file + date + extraction method. Critical anti-magic-number discipline.KEEP — CRITICAL No equivalent in v1 Sheets. Carry forward.
Dashboard15c × 37rKPIs: Monthly Oblig $27,579 · Debt $121K revolving · RE/Auto $890K · Personal/Business split · Action Queue.MIGRATE Adopt v1 KPI definitions too. Both have dashboards; merge into one.
Action_List7c × 25rOpen items, decisions, color-coded checkboxes.MERGE With v1 Action_Master (which has 37r broader scope).
Wife_View 🔑7c × 33rCalm 5-KPI view. NO debt or business detail. Wired to SavingsGoals.KEEP — CRITICAL Becomes separate Google Sheet with IMPORTRANGE to main.
Obligations_Master 🔑28c × 44rCleaner schema + Side/Amortized?/Include-in-Debt-KPI? (NEW).KEEP — CRITICAL Replaces v1 Monthly Obligations.
Rocket_Reconcile10c × 54rTop 50 recurring charges from RM 6mo · US Alliance + Vaad confirmed.KEEP — CRITICAL No v1 equivalent. Drives data integrity.
Amazon_Splitter10c × 113r100-row keyword categorizer · 15 buckets · ready for Amazon Order History paste.KEEP Utility tool. No v1 equivalent.
Installments18c × 24r20 active installment plans.KEEP Excel schema cleaner than v1's installment slice.
Savings10c × 12r6 goal buckets · wired to Wife_View.KEEP No v1 equivalent.
Trips11c × 10rIsrael summer 2026 seeded.KEEP No v1 equivalent.
STR_9312 / 9332 / Combined / Operations / PM_History6-8c × varied50 nights Airbnb 9312 · 51 nights 9332 · combined +$664/mo bank-level cashflow · Streamline PM audit.KEEP No v1 equivalent. Critical STR truth.
Nearby_ProForma14c × 51r5 Eden Gardens builder pro formas (Models A-E).KEEP Reference for STR pricing strategy.
Investments8c × 43rNet worth template, liabilities auto-pull, asset values $0 (Sam to fill).KEEP No v1 equivalent. Pending Sam fills assets.
Control_Panel7c × 24rLive totals.MIGRATE Excel + v1 both have this. Merge.
Cashflow_Assumptions 🔑9c × 35r22 blue input cells · $47.5K income / $11.3K fixed / $13.5K variable — REAL Rocket Money 6mo data.KEEP — CRITICAL Foundation for the 20-month projection.
Calendar_Seasonality15c × 23r96-cell multiplier grid + forecast rows 17-21.KEEP Drives STR pricing.
Archive8c × 9rEmpty placeholder.MIGRATE + populate with v1's 11 archived rows.

🔁 Schema deep-dive: Obligations (v1 41-col vs Excel 28-col)

v1 (41 cols)Excel (28 cols)Verdict
TypeCategory + Debt TypeExcel split is cleaner — Category=Kids/Personal/Business · Debt Type=Mortgage/Card/Installment
Card NameAccount / Card NameRename only
Issuer / VendorIssuer / VendorMatch
Balance / CostBalance / CostMatch · Excel uses positive sign (v1 had 31 negatives — bug fixed)
Credit LimitCredit LimitMatch
Min DueMin Due / Scheduled PmtMatch
Due DateDue Date · Due DayExcel splits date+day for clarity
Day(folded into Due Day)Same
Next Payment AlertNeed Action Flag · Next 7 Days Flag · Overdue FlagExcel split into 3 boolean flags — better for filtering
Pay From AccountPay From AccountMatch
Payment Scheduled(folded into Payment Status)Excel cleaner
Payment StrategyPayment StrategyMatch
Payment StatusPayment StatusMatch
NotesNotesMatch
APRAPRMatch
% UtilizationUtilization %Match
APR Flag · Priority Alert · Interest % of Min Due(folded into Need Action Flag)Excel cleaner — 3 calc cols → 1 flag
Payoff Months (Min/Aggressive) · Interest Warning(not in Excel — derive from Obligations_Master)v1 had this calc. Add to Excel.
Suggested Payment This · Payment Due in X Days · User Override · Final Payment Suggestion · Allocated Budget Input(folded into 3 cols)Excel cleaner — v1 had too many overlapping payment-suggestion cols
Future Balance post payment · Next Due Date(not in Excel)v1 calc. Add to Excel if Sam uses it.
Installment Count · Start Date · Bi-weekly(in Installments tab instead)Excel splits installment detail into dedicated tab — cleaner
Monthly Impact · Interest per Pmt · Home/Mortgage InterestMonthly Interest ($)Excel folded into one
(not in v1)Active (boolean)Excel NEW · drives Dashboard filtering
(not in v1)BehaviorExcel NEW · "Installment plan" / "Revolving" / "Fixed bill"
(not in v1)Linked InstallmentExcel NEW · cross-ref to Installments tab
(not in v1)Total Due This MonthExcel NEW · separates "this month total" from "min due"
Category · Debt Type · Home/Mortgage InterestCategory · Debt TypeMatch (Excel simpler)
(not in v1)SideExcel NEW · Personal / Business / STR — drives KPI filtering
(not in v1)Amortized?Excel NEW · YES on US Alliance HELOC, etc.
(not in v1)Include in Debt KPI?Excel NEW · fixes v1's wrong -$773K debt KPI → correct $121K revolving
(not in v1)Closed Loop StateExcel NEW · tracks Open / Done / Snoozed

Net read: Excel schema is a clear evolution. The 6 new columns (Active, Behavior, Linked Installment, Side, Amortized?, Include in Debt KPI?, Closed Loop State) fix real v1 bugs. v1 had 4-5 redundant calc columns the formulas can rebuild. Carry forward Excel schema. Add back v1's Payoff Months (Min) and Interest Warning as derived formulas in Sheets.

⚙️ v1 Apps Script — 118 functions · 137 KB Code.js

Bound to v1 Sheets via clasp project 1_cgriwCQ.... Lives locally at HookStreet-Business-OS/sheets/src/Code.js.

Top-level callable functions (menus + triggers)

FunctionPurposeTriggerMigration verdict
onOpenAdds custom menu when sheet opensSheet-openMIGRATE Reskin for new menu items
DAILY_SENDRenders + sends Daily Snapshot emailTime-based every 2 days, configurable hourMIGRATE Core daily report
WEEKLY_SENDWeekly review emailTime-based weeklyMIGRATE Core weekly report
BIWEEKLY_SENDBi-weekly reportTime-based weekly (with isBiweeklyRunWeek_ gate)MIGRATE Could fold into WEEKLY
MONTHLY_SENDMonthly comprehensive reportDay 1 of monthMIGRATE Core monthly
WIFE_SENDWife-friendly filtered snapshotManual menuMIGRATE Becomes IMPORTRANGE-based on new architecture
DEBT_SUMMARY_SENDDebt-only summary emailManual menuKEEP Useful on-demand
OPERATIONS_SUMMARY_SENDOperations Summary (reads Eden + STR + HSU)Manual menuMERGE Bigger surface than just financial — belongs in Operating_OS workbook eventually
PROCESS_QUICK_CAPTURERoutes Quick Capture form submissions to right tabsonFormSubmit + every 30minKEEP Voice intake critical
MILDRED_START_BUILDBuilds Mildred's start-of-day briefDaily 7:30 AMMERGE Move to Operating_OS workbook
DASHBOARD_REFRESHRefreshes Dashboard tab calculationsManual menuMIGRATE Adapt to Excel Dashboard schema
MENU_REFRESH_CALENDARPulls Google Calendar events into sheetManual menuMIGRATE Calendar overlay is useful
MENU_EVALUATE_ALERTSEvaluates all alert thresholdsManual menuMIGRATE Core alerting
FULL_SETUP_AND_CLEANUPOne-shot system initializationManual menuDROP Migration artifact — new sheets has different setup
CREATE_DEFAULT_TRIGGERS / DELETE_PROJECT_TRIGGERSTrigger managementManual menuMIGRATE Same shape in new project
SHOW_SETUP_HELP · EXPLORE_CONNECTED_SHEETS · CLEAR_EXAMPLE_ROWSUtility/adminManual menuDROP Migration cruft

Helper / private functions (94 total, prefixed with _)

Categorized roughly:

⏰ Active triggers (these fire whether Sam is logged in or not)

TriggerScheduleWhat it doesRisk if not migrated
PROCESS_QUICK_CAPTURE (form)onFormSubmit + every 30 minRoutes Quick Capture form responses to appropriate tabsHIGH — voice intake breaks if not migrated
MILDRED_START_BUILDDaily 7:30 AMBuilds Mildred's start-of-day briefMEDIUM — Mildred's morning routine
DAILY_SENDEvery 2 days at configurable hourDaily Snapshot emailMEDIUM — Sam's morning rhythm partial
WEEKLY_SENDWeekly on weekdayWeekly reviewMEDIUM — Sunday weekly review
BIWEEKLY_SENDWeekly with isBiweeklyRunWeek_ gateBi-weekly comprehensiveLOW — redundant with WEEKLY
MONTHLY_SENDDay 1 of monthMonthly comprehensiveMEDIUM — month-open ritual

Migration rule: Before deleting any v1 trigger, the new Sheets script must have the equivalent trigger AND have been verified once. Do NOT decommission v1 until new is firing successfully for 1 full week.

📈 Data fidelity check — do numbers reconcile?

KPIv1 Sheets valueExcel valueMatch?
Total Monthly Obligations$26,299 (from Daily Snapshot)$27,579 (from Dashboard)CLOSE — $1,280 gap · Excel includes Sully ($4,706) which v1 may not
Debt Balance-$773K (BROKEN — includes amortized mortgages)$121K revolving onlyv1 BROKEN · Excel's Include-in-Debt-KPI? flag fixes this
RE/Auto Outstanding(unclear in v1)$890Kv1 doesn't separate · Excel adds clarity
Cards >80% util2(not surfaced as KPI yet)v1 has this · Excel should adopt
Days to next payment1 day(derives from Obligations_Master.Days Until Due)Excel can compute · same definition
Active obligations57 rows (some closed)43 rows (Excel pre-filtered Active=TRUE)EXPECTED · Excel dropped 14 closed/redundant
Sully (caretaker) $4,706/moNOT in v1$4,706/mo line itemv1 MISSING · Excel added 5/11
US Alliance HELOC $217K @ 8.50%In v1 (negative sign bug)$217K positive · $1,390/mo amortized · excluded from Debt KPIv1 SIGN WRONG
STR cashflow combinedNOT in v1+$664/mo (9312 +$539 · 9332 +$125)Excel correctly identifies STRs cashflow-NEUTRAL · v1 had no view

Bottom line: Excel is the authoritative truth. v1 has 4+ data integrity bugs (sign convention, amortized in debt KPI, missing Sully, negative balance display). Migrate Excel forward; archive v1 once migration verified.

🚧 Gap analysis — what migrates, what's net-new, what dies

Net new in Excel (carry forward)

Net new in v1 Sheets (preserve in migration)

Things to DROP from both

Things to MERGE

🗺️ Migration plan — 3 phases · 7-10 day timeline

Phase 1: Build new Google Sheets ("Hook Street Financial OS v3") — Day 1-2

  1. Create new Google Sheet titled Hook Street Financial OS v3
  2. Add 24 tabs from Excel (drop Claude Log + Handoff) with same color coding
  3. For each tab: copy Excel data column-by-column, recreate any Excel-specific formulas in Google Sheets syntax
  4. Add 4 new tabs from v1: Cashflow_Projection (20-month) · Snowball_Plan · Calendar_Overlay · Archive (populated with v1's 11 rows)
  5. Set up Sharing_Map → Protected Ranges (Sam-only on grey tabs, wife-view-only on yellow, etc.)
  6. Verify all Sources_&_Provenance values match
  7. Run Excel-to-Sheets fidelity check on each KPI

Phase 2: Build new Apps Script — Day 3-5

  1. Create new Apps Script project bound to the new Sheet. Initial title: Hook Street Financial OS v3 Script
  2. Copy ~50 functions from v1 Code.js (the MIGRATE/KEEP-marked ones). Adapt to new tab names + Excel schema:
    • Core sends: DAILY_SEND, WEEKLY_SEND, MONTHLY_SEND, WIFE_SEND, DEBT_SUMMARY_SEND
    • Data extraction: getObligationData_, getInstallmentData_, summarizeByCategory_
    • Email rendering: buildOwnerEmailHtml_, buildWifeEmailHtml_, renderSection_, renderTitleBlock_
    • Calendar: refreshCalendarSummary_, fetchGCalEvents_, parseIcs_
    • Quick Capture routing: quickRoute*_ (5 functions)
    • Alerting: evaluateAndSendAlerts_, hasDueSoon_
    • Utilities: money_, pct_, num_, formatDateMaybe_
    • Logging: logRun_, logReportSend_
  3. Add NEW functions for Excel-schema-aware logic:
    • computeDebtKPI_ — sums balance only where Include_In_Debt_KPI = TRUE
    • computePersonalVsBusinessSplit_ — uses Side column
    • buildSourcesProvenanceReport_ — surfaces last-touched dates
    • buildWifeViewIMPORTRANGE_ — feeds separate wife-only sheet
  4. Wire triggers to NEW script — but with manual run first, no time-based trigger yet

Phase 3: Verify + cut over — Day 6-10

  1. Run new DAILY_SEND manually 3 days in a row, compare output to v1's DAILY_SEND output
  2. Reconcile any KPI deltas
  3. Run WIFE_SEND manually to wife's address — verify Wife_View IMPORTRANGE flow works
  4. Run PROCESS_QUICK_CAPTURE — verify voice-intake routing
  5. Once verified for 1 week: disable v1 triggers (do NOT delete script). Enable new triggers.
  6. Run 1 month parallel-shadow (new triggers fire + v1 triggers still fire) — compare outputs daily
  7. After 30 clean parallel-shadow days: archive v1 Sheets (rename to ARCHIVED — Monthly Obligations v1 — 2026-XX), revoke editor access, leave as read-only history

⚠️ Risk register — what could go wrong

RiskImpactMitigation
Voice Quick Capture breaks during cut-overHIGH — Sam's primary capture surfaceRun parallel for 30 days; cut-over only after verified.
Wife sees something she shouldn't (Protected Range fails)HIGH — privacyBuild Wife_View as SEPARATE Google Sheet with IMPORTRANGE pulling only safe cells. Never share the master sheet with wife.
Mildred loses her start-of-day briefMEDIUM — her workflowMigrate MILDRED_START_BUILD before disabling v1 trigger. Test on Tuesday before Monday cut-over.
Numbers reconcile but a hidden formula breaks (#VALUE!)MEDIUM — silent data corruptionAdd new Apps Script function auditAllFormulas_ that scans for #VALUE/#REF/#N/A and alerts.
v1 Sheet shared more broadly than Sam realized (current sharing audit OUTSTANDING)HIGH — pre-existing privacy gapAudit v1 Sheets sharing BEFORE migration · revoke all non-Sam access · then migrate
v1 Apps Script API keys / secrets presentMEDIUM — exposureGrep Code.js for sk-, ANTHROPIC_API_KEY, etc. · move any secrets to PropertiesService before clasp pull
Triggers fire from BOTH old and new during parallel-shadow → duplicate emailsLOW — annoying not dangerousDuring parallel shadow, send new sheet's reports to sam+v3@hookstreetcapital.com alias OR a separate label. Compare side-by-side, only swap to-line after verified.
Excel formula syntax doesn't translate cleanly to SheetsLOWExcel and Sheets share ~95% of formulas. The 5% (XLOOKUP variations, ARRAYFORMULA spread, INDIRECT scope) require manual translation. Audit during Phase 1.
Sam decides mid-migration to add new business logicMEDIUM — scope creepLock requirements at Phase 1 start. New features go to backlog. Migrate first, enhance later.

🎯 Recommended next moves — ranked

PMoveWhyTime
P0Audit v1 Sheets sharing — revoke all non-Sam accessPre-migration privacy gate · Sam's recurring concern10 min
P0Grep v1 Code.js for hardcoded secrets · move to PropertiesService if anySame — pre-migration cleanup15 min
P0Sam decides: drop the 11 v1 archived rows OR migrate them?Affects Phase 1 scope5 min (decision)
P1Sam confirms: keep BIWEEKLY_SEND or fold into WEEKLY?Affects Phase 2 trigger count5 min (decision)
P1Phase 1: build new Google Sheet from ExcelThe foundation3-4 hrs
P2Phase 2: port Apps Script — ~50 functions to adaptThe automation6-8 hrs (Claude can do most of this; Sam reviews + tests)
P3Phase 3: 30-day parallel-shadow before cut-overThe proof30 days passive
P4Build Operating_OS workbook (Excel handoff Section 10 priority)Separate from Financial OS — Mildred + STR ops live thereSeparate workstream after Phase 1 complete

❓ Decisions you need to make before I start Phase 1

  1. Drop or migrate v1's 11 archived obligations? They're cleanup-2026-04-26 closed loops. My read: migrate to Excel Archive tab for audit history. Your call.
  2. Drop or keep BIWEEKLY_SEND? It's gated by isBiweeklyRunWeek_ check. Could fold into WEEKLY with a flag. Simplification.
  3. Trading rules from v1 — where do they live? They're financial-adjacent. I'd put them in docs/TRADING_RULES.md in the workspace repo since they're discipline rules, not data. Your call.
  4. OPERATIONS_SUMMARY_SEND — Financial OS or Operating OS? It reads Eden + STR + HSU. Operating OS makes more sense per Excel handoff Section 10. Confirm.
  5. v1 Action_Master 37 rows or Excel Action_List 25 rows or merged? My read: merge into one Action_Master in new Sheets, mark each row with source (v1/Excel) initially, then dedupe manually with you.
  6. Wife_View as separate Sheet (recommended) or Protected Range in main? My strong rec: separate Sheet, IMPORTRANGE pull. Cleanest privacy boundary. Confirm.
  7. New script project bound to new Sheet, OR standalone? My rec: bound (matches v1 pattern, easier menu/onOpen integration). Confirm.
  8. Parallel-shadow recipient address. Send Phase 3 reports to sam+v3@hookstreetcapital.com? Or a separate label? Confirm.