AirIAM — Internal Project Review

Olsen Palmer · Institution Profile Automation

Prepared for review with Kuk Yi  |  July 15, 2026  |  Prepared by Greg Elmore  |  Internal only — do not distribute to client

1. Where we are Build phase complete — moving to client engagement

Olsen Palmer produces client-facing bank "Institution Profile" decks from an Excel workbook that pulls S&P Global Market Intelligence data (via the SNL/MI Office add-in), linked into PowerPoint by Macabacus. They asked us to explore automating this. We have finished the design, built and validated everything that can be built without OP's licensed environment, and packaged an immediately usable deliverable. The engagement now shifts from building to closing Phase 0 with the client.

✓ Design (v5)20-page architecture, QC, security, licensing & phased plan. Externally reviewed, all feedback incorporated.
✓ POC 0 — QC coreExtract, reconcile, scrub, QC engine. 156 automated tests, all green.
✓ Production v0 (v0.1.0)Standalone op-check.exe — analyst-ready, no licenses or install needed.
▶ Client engagementFindings deck & demo ready. Working session with OP to schedule.

2. How OP's process works — the two integrations

OP's entire profile production runs on two third-party add-ins. Understanding what each does — and how dependent the process is on S&P — frames every decision that follows.

Analystsets bank + period on the Inputs sheet
S&P MI OfficeData in1,600+ SNL calls pull bank financials into Excel
Excel workbook~4,600 formulas compute every profile figure
MacabacusData out50 live links push ranges into the deck
PowerPointclient-facing Institution Profile
IntegrationWhat it doesWhat that means for us
S&P Market Intelligence Office (the "SNL" add-in)The sole data source. Embeds S&P's bank regulatory & market data directly into Excel as formulas (SNLData, SNLTable, SNLPrice). One refresh re-pulls all 1,600+ data points for the selected bank and period — balance sheet, income statement, deposits/loans, asset quality, stock data, market share, demographics.Enterprise, entitlement-gated, no trial available. It's OP's license; automation/VM rights are the Phase 0 gating question. Windows-desktop only → forces the Windows runner in Phase 1.
MacabacusThe Excel→PowerPoint bridge. Maintains 50 live links between workbook ranges and deck tables/charts. After the workbook refreshes, one Macabacus refresh updates the deck in place, preserving formatting — replacing dozens of error-prone copy-pastes.Cheap ($360/user/yr), trialable, analyst-familiar. Its link tags are also what make our QC engine possible — each deck value asserts its own source range. Failure modes (silent stale links, metadata leakage) are exactly what op-check catches. Decision: keep it for Phase 1; replace selectively with deterministic generation in Phase 4, evidence-driven.
The S&P dependency, plainly: every number in the deck originates from S&P. There is no alternate data path — if the S&P refresh doesn't run, there is no profile. That single dependency drives the three biggest constraints in this project: licensing (their entitlement governs automated use and whether figures may appear in client deliverables), architecture (the add-in is desktop-only, hence the hybrid Windows runner), and roadmap (the API migration in Phase 4 is a separate S&P purchase, not something we can decide unilaterally).

3. What has been validated we can do

Each capability below is proven on OP's actual sample files (the CBAN target-profile workbook + deck), not claimed on synthetic data.

3,117
workbook values extracted with full source lineage
50
Macabacus Excel→PPT links mapped
91%
of deck values auto-traced to exact source cells
253
hidden metadata items scrubbed, zero visible change
156
automated tests, all passing (v0.1.0)
CapabilityEvidence
Deck-to-source reconciliationEvery linked number in the deck is checked against its exact source cell in the workbook. 91% traced automatically; zero unexplained discrepancies on the clean sample.
Error detection (seeded test)We planted three realistic errors in a copy of OP's deck — a transposed number (3.09→3.90), a stale period label (2026 Q1→2025Q3), leftover instruction text. The engine caught all three, with slide/shape/cell detail. This satisfies the design's formal QC acceptance criterion.
Stale / unapproved source detectionFlags any deck content linked to a workbook not on the approved list (see findings below — this fired on their real deck).
Metadata scrubProduces a client-safe copy: zero external links, zero confidential strings, author metadata gone — verified independently, rendered slides pixel-identical, opens in PowerPoint with no repair prompt.
Analyst-ready packagingSingle op-check.exe (22 MB): one command, color-coded PASS/FAIL HTML report, plain-language errors, editable config, non-technical user guide, CI pipeline. No Python, no infrastructure, no S&P/Macabacus license needed.

Findings on OP's own sample — the business case

Running the tool on the files OP sent us surfaced real, material problems a manual review would not reliably catch:

Talking point: these findings make the working session self-demonstrating — the tool blocks their own sample deck for real defects, catches a planted wrong number live, then hands them a verified-clean scrubbed copy of their own file.

4. Important boundary — what is not built yet

Nothing shipped so far refreshes data or writes to the presentation. Today's tool is a read-only quality gate on the finished pair. Updating the deck when source numbers change — set inputs → trigger S&P refresh in the workbook → trigger Macabacus link refresh in the deck — is Phase 1, and it can only be built and tested in an environment with OP's licensed S&P add-in and Macabacus. That is by design, not a gap: it is the piece gated on the client.

Phase 1Set inputsinstitution / period
Phase 1S&P refreshworkbook (POC A)
Phase 1Link refreshdeck via Macabacus (POC B)
Built ✓QC gatereconcile + rules
Built ✓Approveanalyst review
Built ✓Scrub & releaseclient-safe copy

Strategy note worth aligning on: we are not rebuilding OP's deck in code. The design keeps their existing workbook + Macabacus deck as the production engine and automates around it. Native slide generation happens later (Phase 4), and only for objects where link refresh proves unreliable. Lower risk, preserves analyst editability, and avoids re-implementing what Excel/PowerPoint already do.

5. What happens next

Our side (this / next week)

Gated on Olsen Palmer (Phase 0 asks)

Delivery phases after Phase 0 closes

PhaseScopeExit criterion
1 — Refresh automationPOC A (workbook S&P refresh) + POC B (Macabacus link refresh) via COM automation on a hardened Windows runner in the licensed environment.20+ consecutive controlled runs with no unexplained manual intervention.
2 — Extraction & QC integrationWire the already-built extraction/QC/lineage engine into the refresh pipeline.Intentionally seeded errors detected at agreed rates (already demonstrated standalone).
3 — Web workflow & governanceAzure web app: Entra ID, deal workspaces, role-based access, approval/release workflow, per-run evidence packages.Full release gate operating with audit evidence.
4 — Selective modernizationNative generation for unreliable linked objects, approved AI narrative, S&P API migration if entitlement/volume justify.Sized separately after field inventory.

6. What will be delivered

DeliverableStatusNotes
op-check v0.1.0 (exe + user guide + config)Ready nowImmediate value: pre-send QC + scrub, no infrastructure. Commercial decision needed: free Phase 0 sweetener vs. first priced deliverable.
Findings / Phase 0 proposal deck (in OP's own slide format)Ready nowQA'd against their template chrome; recommend a 30-second flip-through in real PowerPoint before it goes out.
Verified scrubbed sample deck + live demo runbookReady nowThe meeting is self-demonstrating with these.
Design document v5 (internal)CompleteInternal scoping baseline. A client-facing version can be produced on request.
Phase 1 refresh automationGated on OPStarts the day licensing is confirmed; needs their licensed environment.
Azure production system (Phases 3–4)Scoped, not startedWeb app + hardened Windows runner pool; tenancy decision required first.

7. Why a web app in Azure, not a desktop app

The data decides it, not the technology. Profile content is deal-context material with possible MNPI. A desktop app scatters that across analyst laptops and makes the controls the whole design rests on — central audit log, human-approval release gate, enforced metadata scrub, consistent add-in versions — effectively unenforceable. A tenant-hosted web app keeps deal data off endpoints behind Entra ID and role-based access, logs every run in one place, and routes any LLM use through a single server-side private endpoint.

The one nuance: the Phase 1 refresh needs Excel + the licensed S&P and Macabacus add-ins, which are Windows-desktop software. So the web app hands that one step to a hardened Windows automation runner inside the same tenant (dedicated identity, one job at a time, watchdogs, quarantine, kill switch). That dependency disappears if/when Phase 4 moves to the S&P API.

And v0 being a local exe is not a contradiction: it is a manual pre-send check that embeds nothing sensitive and never moves files — exactly the right footprint before tenant infrastructure exists.

8. Risks & decisions for this review

Licensing is the critical path. OP's S&P add-in seat does not imply automation/VM rights or API rights, and putting S&P figures in a client deliverable is a redistribution question their contract governs. No Phase 1 commitment until confirmed.