# Welltower Skill — Strategic Considerations

This is the "what else do I need to think about" companion to the skill itself. The skill folder gives you a working scaffold. This document covers the decisions, constraints, and risks that determine whether the skill ships clean or dies in production.

Read this before the May 7 SLT review. Several items are decisions only Scott, Yasmine, and the SLT can make.

---

## 1. Master template extraction (do this first)

**The single highest-leverage one-time task.**

The Welltower deck has a specific brand template — slide layouts, table styling, chart styling, header/footer treatment, color application. python-pptx renders cleanly only if it builds on top of an existing master file. Building from a blank presentation will produce something that looks "almost right" but never quite right.

**What to do:**

1. Take the most recent approved Welltower deck (Welltower March 2026, in `SLT Board Deck Samples/`).
2. Open in PowerPoint.
3. Strip all content from each slide, keeping only the layout structure, brand colors, fonts, and decorative elements.
4. Save as `templates/welltower_master.pptx` in the skill folder.
5. The skill renders new decks by adding slides from this master and populating placeholders.

**Why this matters:** if you skip this, the AI-generated decks will look like AI-generated decks. JV partners notice. The 80 percent done framing only works if the 80 percent looks like the 100 percent.

**Effort:** 2 to 4 hours, one-time.

---

## 2. Source data integration — file uploads now, live connectors later

**Phase 0 (now):** The skill operates on file uploads only. Drop files in a folder, run the skill. This is correct for the prototype. It validates the assembly logic without paying integration costs.

**Phase 1+ (Lovable web app):** Replace file uploads with live read-only connectors.

The data comes from six systems:

| System | What it provides | Connector type | Effort |
|---|---|---|---|
| Yardi | Financials, occupancy, EHR for SL/AL | REST or SQL view | High — Yardi APIs are quirky |
| Welcome Home | CRM, funnel, leads | REST | Medium |
| Google Ads | Ad spend, leads, conversion | REST (Google Ads API) | Low |
| Power BI | Asset management, capex | REST or direct query | Medium — depends on Rajiv and Calvin's setup |
| Dayforce | HR turnover, vacancies | REST | Medium — recently migrated, schema unstable |
| Marketing folder | Creative images | File system or DAM | Low |

**Decision needed at the May 7 check-in:** confirm that file uploads are acceptable for the May–June Phase 0 / Phase 1 build, and that live connectors land in Phase 2+. Otherwise you risk paying 4–6 weeks of Yardi integration work before proving the assembly works.

---

## 3. Welltower-specific content nuances

The Welltower deck has details that do not appear in other partners' decks. These must be preserved.

**Net Future Activity column** — Welltower-specific occupancy forward indicator. Lives on slide 10 only.

**WT-managed vs OPT-managed capex split** — Welltower retains capex approval authority on certain spend categories. The split appears on slide 23 only. Other partners do not get this.

**Site-level P&L appendix** — Welltower is the only partner that gets site-level P&L (slides 21-22). This is per Nat's explicit policy. Do not allow this section to leak into other partners' overlays.

**Water-related incident callouts** — Welltower has historically requested visibility on water incidents. The original deck agenda explicitly mentions them. The skill includes an optional `_water_incidents.md` input and surfaces a callout on the relevant community's operations slide.

**Currency duality** — Welltower is a US REIT. Optima reports in CAD. The skill renders in CAD with explicit currency notation on financial slides.

---

## 4. Voice anchoring discipline

**The single most underrated component of this skill.**

AI-drafted narrative defaults to a generic "financial reporting" register that sounds nothing like the Optima voice. Without strong anchors, the deck will read like Bloomberg, not like the Welltower decks Nat approves.

**The discipline:**

1. Every narrative bullet generation prompt includes 3 to 5 verbatim anchors from `voice_anchors.md`.
2. Anchors are sampled from the relevant register (operational, financial, capex).
3. Every approved deck contributes 5 to 10 fresh anchors back to the library.
4. The library compounds over cycles. Voice gets tighter every month.

**What can go wrong:**

- Skipping the few-shot step entirely. Output will sound generic.
- Mixing registers. A capex bullet written in financial register will feel off.
- Adding anchors from drafts, not approved decks. Garbage in, garbage out.

**Owner:** Nat (since she owns the deck voice today). She approves anchor additions.

---

## 5. Period and fiscal-calendar awareness

The skill must understand:

- **Calendar year** — Welltower runs on calendar year (Jan–Dec). Confirmed.
- **Period naming** — "March 2026", not "Q1 2026" (monthly cadence).
- **Closing-period awareness** — do not run the skill before Yardi closes for the period. The skill should accept a `--allow-pre-close` flag for early drafts but flag the output explicitly.
- **YTD reset** — every January, the YTD column resets. The skill must know what fiscal year it is in.

**Decision needed:** what is the cutoff date each month? Is the deck always shipped by Day 7 of the following month? The skill scheduler in Phase 1 needs this anchor.

---

## 6. Multi-cycle batch (12 communities × 12 months = 144 deck instances per year)

For Welltower alone, the volume is:

- 12 monthly cycles
- 12 communities by mid-2026
- = 144 community-rendering operations per year (each as a slide on a single deck, but the data pipeline is per-community)

Plus Yarrow monthly (similar scale), Yarrow quarterly (4 cycles), one-off managed (4 partners × ~4 cycles each).

**What this means for the skill:**

- It must be batchable. Running it once for May 2026 should not require human input that does not also work for June 2026.
- The intermediate JSON should be the source of truth for re-runs. If the data has not changed, the output should not change.
- Output naming convention is non-negotiable. `Welltower_Monthly_Report_April_2026.pptx` — predictable, sortable.

---

## 7. Iteration cycles and versioning

Real-world cycle: Nat approves draft 1, comments come back, the skill regenerates draft 2. Then Angela's comments come, draft 3. Then Lauren approves. Three to five iterations per cycle is normal.

**The skill must support:**

- Re-runs that do not overwrite. Suffix with `_v1`, `_v2`, `_v3` automatically.
- Carrying forward narrative edits from a prior draft. If Nat edited slide 19's commentary in v1, the skill should preserve that edit in v2 unless the underlying data changed.
- Diff reporting. Show what changed between v1 and v2.

**Phase 0:** file-naming-based versioning is fine. Phase 1+: proper version tracking in Supabase.

---

## 8. Confidentiality and data isolation

**The rule:** a Welltower run never reads files from another partner's folder. A Yarrow run never reads files from Welltower's folder. The rule is structural, not advisory.

**How it is enforced in the skill:**

1. The `--data` argument must be a Welltower-specific intermediate JSON.
2. The intermediate JSON's `meta.partner` must be `welltower`. Mismatch = error.
3. The skill never traverses outside the `--data` JSON for any number on any slide.
4. The output filename is locked to the partner. No accidental cross-partner artifacts.

**Phase 1+:** Supabase row-level security keyed on partner_id. A user authorized for Welltower never sees Yarrow rows.

**Why this matters:** JV partners are competitive with each other in some dimensions. Cross-pollination is a confidentiality breach. The discipline is non-negotiable.

---

## 9. Failure modes and graceful degradation

What happens when something goes wrong in production:

| Failure | Detection | Skill behavior |
|---|---|---|
| Missing input file | Step 2 input validation | Stop, list, ask user |
| Malformed input (column missing, wrong type) | Step 2 input validation | Stop, show row, ask |
| AI narrative drift from voice | Manual review on slide 19 first cycle | Add new anchors, regenerate |
| Foot-and-tie failure | Step 6 validator | Stop, show offending number, ask |
| Brand template missing | Step 5 render | Warn, fall back to bare LAYOUT_WIDE, flag in audit report |
| Excel companion tie failure | Step 6 validator | Stop, show offending cell |
| Source data Yardi schema change (Phase 1+) | Connector-level mapping check | Flag, ask, do not silently proceed |

**The cardinal rule:** the skill never silently proceeds past a failure. Better to stop and ask than to ship a deck with a wrong number.

---

## 10. Operational highlights — the hardest input

Of all 17 inputs, operational highlights is the hardest because it is genuinely human-authored. It is not exported from a system. Today's process is Lauren's coordinator emailing each GM and curating responses.

**Phase 0 (skill in Cowork):** the SLT person running the skill drops a markdown file with one section per community.

**Phase 1+ (web app):** structured per-community intake form, surfaced on a dashboard 5 days before each cycle's ship date. AI nudges any GM who hasn't submitted by Day 3.

**Phase 2+ option:** AI scrapes the community's Slack channel or shared activity log for the period. Surfaces candidate highlights. GM picks 3 to 5. This is a real productivity unlock.

Decision deferred. Discuss with Lauren.

---

## 11. What this skill does NOT solve

Calling this out so the SLT does not have unrealistic expectations.

- **Yarrow quarterly.** The marquee outcome (40-50 hours to under 8) is Phase 4. This Welltower skill is Phase 0. Yarrow needs the Healthcare overlay (4 pages of clinical metrics, compliance, agency hours) AND the LP overlay (debt, covenants, cashflow, performance levers) AND the Quarterly overlay (definition pages, big rocks). It is materially harder.
- **Live partner-facing dashboard.** Explicitly out of scope per Ali's framing on April 29.
- **The SC discussion itself.** The 6-hour Yarrow quarterly SC churn is not eliminated. The skill compresses preparation, not deliberation.
- **Compliance web scrape.** Lauren's separate ask. Not part of this skill.

---

## 12. Measurement — how do we know the skill is working

Numbers worth tracking from cycle one:

| Metric | Today (Welltower monthly) | Phase 0 target (with skill) |
|---|---|---|
| Cycle effort (combined hours) | ~5-10 hrs | < 1 hr |
| Time from Yardi close to ship | 5-7 days | 2 days |
| Number of human edits to AI-drafted narrative per cycle | n/a | < 5 per cycle (Phase 0), < 3 (Phase 1) |
| Foot-and-tie failures | n/a | 0 |
| Voice register consistency (Nat's qualitative judgment, 1-5) | 4 (human-baseline) | 4+ (Phase 0) |
| Cycles shipped on calendar without escalation | 80% (estimate) | 100% |

Track these from cycle one. They become the case study for Yarrow monthly and quarterly.

---

## 13. The owner question

Per the April 29 SLT, no single owner was named for the capstone. Nat is the de facto candidate.

For this skill specifically:

- **Skill owner (technical):** Scott or whoever runs the Phase 0 prototype. Maintains `voice_anchors.md`, `config.json`, `slide_spec.md`. Responds to schema drift.
- **Content owner (Optima-side):** Nat. Approves anchor additions, owns the deck voice.
- **Cycle owner (Optima-side):** Lauren MacLeod. Coordinates inputs, runs the skill each cycle, ships the deck.

This split keeps the skill maintainable without burdening any one person.

---

## 14. The May 7 ask

At the SLT check-in tomorrow:

1. **Confirm Nat is the owner.** No deck builds without an owner.
2. **Get sign-off on the input checklist** (`README_INPUTS.md`). Nat and Lauren confirm they can produce these files for the May close.
3. **Get sign-off on the voice anchors.** Nat confirms the existing anchors sound like her voice.
4. **Confirm the May 19 prototype demo target.** Welltower-only deck, real April close data, side-by-side with the human-built April deck.
5. **Master template extraction goes on Scott's desk this week.** One-time, 2-4 hours.

These five items unlock everything else. Without them, the skill is a spec, not a system.

---

## Hyperscale, do not replace

The skill produces 80 percent of the deck. The SLT's judgment is the other 20 percent. The narrative is AI-drafted in the Optima voice. The numbers are foot-and-tied to source. The slides come out brand-faithful. The hours come down. The voice stays.

That is the only outcome that matters.
