# Seed Huddle Result — 2026-05-25

**Ledger** | 52 clients written | Single transaction + 6 API PATCHes + 2 flag POSTs | All operations succeeded

---

## Headline

| Metric | Result |
|--------|--------|
| Clients seeded | 52 / 52 |
| Stage transitions logged in `stage_history` | 6 (audit trail intact) |
| Flag additions logged | 2 |
| SQL transaction | Single commit, no rollback |
| Failures | 0 |
| Time vs. 45-min budget | ~16 minutes |

Atlas dashboard universe is now: **30 active clients** (the ones that will appear on dashboards and have cron jobs evaluate them), and **22 inactive** (former clients, phantom record, "no longer a client" cases).

---

## State distributions (post-seed)

### By stage

| stage | count | notes |
|-------|-------|-------|
| `weekly` | 46 | 24 active steady-state + 22 inactive sitting at default |
| `offboarding` | 3 | Charles Dolezal Jr Revocable, VIP Play, FuzeBox — all leaving 6/1/2026 |
| `cleanup` | 2 | Tri-County Tire, Afton Electric — both with `recurring_active` flag |
| `onboarding` | 1 | MEG Holdings - Vet Sales (new client) |

### Active-stage matrix (what cron jobs and the dashboard see)

| stage | active | count |
|-------|--------|-------|
| cleanup | true | 2 |
| offboarding | true | 3 |
| onboarding | true | 1 |
| weekly | true | 24 |
| weekly | false | 22 |

### By service tier

| service_tier | count |
|--------------|-------|
| `recurring_only` | 48 |
| `fractional_cfo` | 3 (VIP Play, Loop TV, FuzeBox) |
| `recurring_advisory` | 1 (Blue Agave — multi-location medical) |

### By sales tax schedule

| schedule | count | clients |
|----------|-------|---------|
| `none` | 44 | — |
| `quarterly` | 7 | Grounds Guys, CLJ Plumbing, Triple C Epoxy, Thomas Garage Door, Bulldog Septic, Acadian Roofing, MEG Holdings |
| `monthly` | 1 | Allen Steel Co (materials-heavy) |

### By close cadence

52 clients all `monthly`. No quarterly or annual cadences seeded.

### Flags in use

| flag | count |
|------|-------|
| `recurring_active` | 2 (Tri-County, Afton — cleanup runs in parallel with weekly bookkeeping) |

---

## Stage history audit (last 8 rows — full traceability)

All seed transitions recorded with `actor_id=system:legacy`, `channel=api`, `trigger_type=manual`, and descriptive reasons referencing this huddle. Sample:

```
flag recurring_active   → afton-electric-llc   2026-05-25: cleanup runs in parallel with weekly bookkeeping
flag recurring_active   → tri-county-tire-llc  2026-05-25: cleanup runs in parallel with weekly bookkeeping
weekly → offboarding    → fuzebox              2026-05-25: leaving 6/1/2026
weekly → offboarding    → vip-play-inc         2026-05-25: leaving 6/1/2026
weekly → offboarding    → charles-dolezal-jr-revocable  2026-05-25: leaving 6/1/2026
weekly → onboarding     → meg-holdings-vet-sales        2026-05-25: new client, still onboarding
weekly → cleanup        → afton-electric-llc   2026-05-25: cleanup engagement 2025/2026 (23 held UF entries)
weekly → cleanup        → tri-county-tire-llc  2026-05-25: cleanup engagement, partnership reclassification scope (Jan 2025 fwd)
```

---

## Follow-up items (Larry / Jimmie review)

### Time-bound — needs a calendar entry or Kade reminder

1. **2026-06-01:** flip VIP Play (id 14), FuzeBox (id 28), Charles Dolezal Jr Revocable (id 7) to `active=false`. Currently `offboarding` and `active=true` so they remain visible during their final week.
   - **Recommendation:** Larry creates a Kade task or calendar entry for 6/1 morning. Single SQL: `UPDATE clients SET active = FALSE WHERE id IN (7, 14, 28);`

### Investigation items — Jimmie owns

2. **Tons of Bubbles (id 12)** — has drop-off services (taxable in TX) but cadence unknown. Currently set to `sales_tax_schedule=none`. Jimmie said "I need to investigate." When known, set to `quarterly` or `monthly` via direct SQL.
3. **JS Global (id 3)** — Jimmie said "not on my list." Currently `active=false` to remove from dashboard, but the row exists in Atlas. Either:
   - Confirm it's a phantom and consider deleting (cascade-safe? check `document_clients`, `kade_tasks`, etc.)
   - OR confirm it's a real client Jimmie forgot, restore to active

### Phase 2 / spec-evolution backlog (not blocking Phase 1)

4. **Bulk-update endpoint** — there's no PATCH for `close_cadence`, `sales_tax_schedule`, `service_tier`, `active`. Phase 1 used direct SQL (Option A). Worth adding `PATCH /api/clients/:slug` to Riv's Phase 2 scope so future bulk seeds (or one-off corrections like #1 above) don't need DB access.
5. **Lifecycle terminal stage** — 22 clients are `active=false` but `stage='weekly'`. Semantically odd. A future schema iteration might want `stage='former_client'` or auto-transition `offboarding→former_client` on `active=false`. Flag this to Loom for Phase 2 design.
6. **Per-client cleanup budget** — the stuck detector currently can't evaluate `cleanup` stage because the SLA is "client-specific budget × 1.25" and there's no `cleanup_budget_days` field. For Tri-County and Afton, this means they'll never trigger the `stuck` flag automatically. Loom may want to add this field in Phase 2.
7. **Defining whether the J2 Internal entity (id 65) should appear in dashboards / be in cron-fired auto-rolls** — currently treated like a regular weekly client. Probably fine but worth confirming after a few weeks of real data.

### Tax-implication observation (Ledger's lane)

8. **Allen Steel Co (id 39)** — seeded as `monthly` sales tax based on the assumption that steel is materials-heavy and likely over the $1,500/month tax-collected threshold. If revenue is actually lower, they may qualify for `quarterly`, which would reduce filing frequency. Worth confirming with Jimmie when he has a moment.
9. **MEG Holdings - Vet Sales (id 66)** — `quarterly` is a placeholder. Once we have revenue data, we should validate against the TX comptroller filing tier thresholds.
10. **Blue Agave (id 9)** — multi-entity medical + holding + internal property mgmt at `recurring_advisory` tier. If the property mgmt is internal (consolidated under the same client engagement), we may want to revisit whether Blue Agave needs dedicated IES treatment like the Chairman group. Watch how the close cycles feel over the next 2-3 months and revisit tier.

---

## Operational state right now

- Migration 010 applied
- Atlas live on port 3000 with all 8 endpoints serving
- 5 cron tasks registered (Stuck Detector running hourly; the daily ones will start checking tomorrow at 6 AM CT)
- `agent_permissions`: Jimmie has `can_admin` + `can_sign_off_eom_review`
- `actor_tokens`: 0 rows (legacy token still in use; Riv adds per-actor tokens in Phase 2)
- `stage_history`: 8 rows from this seed
- All 52 clients have non-default values appropriate to their state

**Phase 1 is seeded. Cord can now build the dashboard against meaningful data.**
