---
title: Looker migration status
description: What is replaced, what is pending, and the gate for turning Looker off.
---

# Looker migration status

Full plan: `joe-data-plane/docs/looker-exit-plan.md`. Contract posture: month-to-month, no non-renewal notice required, so the gate is quality, not a date.

## Scorecard

| Surface | Status |
| --- | --- |
| Internal BI (dashboards, ad-hoc) | **Replaced.** Parity dashboards live in Metabase; needs Ryan's sign-off after a week of real use |
| Scheduled report engine | **Replaced.** All delivery formats (CSV/XLSX/PDF/inline/webhook) and all cadence shapes production-verified |
| Individual scheduled plans (140 total) | **In progress.** Latest classification: 61 covered, 30 partial, 49 uncovered; migrating in tranches, accounting-critical first |
| Merchant embeds | Top-3 surfaces (~92% of embedded views) have parity dashboards; hero embeds target the owner hub |
| POS reporting (till-close) | Designed (live-path overlay + till-closed events); endpoints in build |
| Webhook feeds (Zapier) | Built and inert; activation is a coordinated cutover so Looker and the platform never both send |

## Data gaps blocking the remaining plans

1. **Category-grain item sales** - blocks Soul Good journal entries, category/item report family, Ladro income splits, item-sales webhook. Next ingestion package.
2. **Labor data** - not in the data plane; blocks labor reports.
3. **Loyalty/credit detail** - blocks loyalty marketing dashboards.
4. **Hourly grain** - blocks sales-by-hour reports.

## The exit checklist

1. Ryan signs off internal BI workflows in Metabase.
2. Looker inventory export complete (done - all 140 plans, 316 dashboards, LookML recovered).
3. Cent-level parity on Sales Report + Home + Payouts for sample shops.
4. Top-8 embedded reports live in owner hub or embeds.
5. Every scheduled delivery recreated and verified via dual-send soak.
6. Long-tail embedded reports triaged: replace, embed, or sunset.

## The dual-send soak

Per plan: platform report and Looker plan run side by side to the same recipients' verification copy, outputs diffed per period, and only after agreed-clean runs does the Looker plan get paused. The send log is the audit trail. Accounting exports additionally get fixture diffs (the Ladro Transfers IIF already reproduces Looker byte-for-byte on production data).
