WS2 · Commission Engine · live ops.
Lead: Carla Oliver · Provider: CoSai · Current state: Implemented · Health: Green
1 · Done · Doing · Next
The fortnight rhythm. Refreshed by the WS Lead each Steerco. This is the artefact Steerco reads to know what happened, what's happening, and what's next — without having to read the whole backlog.
- Sprint J (Deploy 3.1) shipped 2026-06-28 — Daily 03:00 UTC backup of flip360-commission D1 → gzip → R2 bucket flip360-backups; retention 7 daily + 4 weekly + 12 monthly; admin UI at /crm/admin/backups with manual-trigger button and restore runbook; first real backup verified (66 tables, 680 rows, 131,775 bytes, 2.0s round-trip)
- Sprint PMO-Hub shipped 2026-06-27 (out-of-band) — cosaiflip360.org/engagement/pmo self-service workstream status cards so Matt + Corrina can read every workstream's status without asking
- Sprint I (Deploy 3.0) shipped 2026-06-27 — UAT Go-Live: migration 0023 provisioning Matt, Carla, Corrina as UAT users; admin sign-in-links page at /crm/admin/sign-in-links; legacy login picker restricted to Carla
- 10 delivery sprints (A through J) shipped to production: 88+ routes, 13 role-tailored surfaces, 24 D1 migrations applied (local + remote)
- Full-stack CRM live at flip360crm.org — contact + deal management, accounting-grade financial layer, audit surfaces, mobile drawer, magic-link auth, now-protected daily backup floor
- Three-way sync discipline verified at every close — sandbox = Cloudflare lockstep; GitHub push currently routed to CnCBrain-ai/flip360 pending personal-account App install (sync formality, not service-affecting)
- UAT can commence immediately — sign-in links issuable on demand via /crm/admin/sign-in-links (Carla retains admin gate)
- Phase 1 progress: 1 of 4 hardening sprints complete (J ✅). Remaining: K (errors) → L (tests) → M (staging)
- One-time manual setup carla still owns for Sprint J: set BACKUP_CRON_SECRET as a GitHub Actions repo secret on the flip360 repo so the 03:00 UTC GH Actions cron can authenticate. Until that's set, scheduled run fails with a clear error; manual button on /crm/admin/backups already works in prod.
- Sprint M-original (Resend on flip360.ai) still PARKED — blocked on DNS access; current workaround (admin-issued sign-in links via WhatsApp) is functional, not broken
- Sprint K (Deploy 3.2) — Error monitoring + structured logging: production bugs visible to engineering before users report them; per-role usage analytics. Closes R2.
- Sprint L (Deploy 3.3) — Automated test suite + Continuous Integration: every commit runs tests; regressions caught pre-deploy. Closes R3 + R8.
- Sprint M (Deploy 3.4) — Staging environment: new work deploys to staging URL first; production promoted only after staging validation. Closes R10.
- Phase 1 remaining duration: 3 sprints (≈ 1.5–3 working weeks). Phase 2 unlocks once Phase 1 closes — auth lifecycle, data quality, integrations (Xero, Gmail, Stripe), UX polish responding to UAT feedback
- Risk register heat-map after Sprint J: R1 closed, R2/R3/R8/R10 close inside Phase 1, remaining open risks (R4, R7, R9) sequenced to their respective Phases with acceptable interim mitigations
2 · This week · Mon 22 June → Sun 28 June
The Mon-Sun sprint. Items pulled from the backlog into active work for this 7-day window. 2 items in sprint.
3 · Backlog · 7 items
Everything on the runway for WS2, grouped by status. Each item has an owner, an effort estimate, a target Steerco, and an acceptance test (the single sentence that defines "done").
In sprint 2 items
Next up 1 item
Backlog 3 items
Done 1 item
4 · RAID · WS2 open items
Open Risks, Assumptions, Issues, Dependencies attributed to WS2. Closed items hidden — see the full RAID register filtered to WS2.
| ID | Type | Severity | Title | Owner |
|---|---|---|---|---|
| A003 | Assumption | Green | BD lead embodiment: Mathew Punter (Phase 1 dual-hat with Founder) CRM demo + production build treat Matt as BD lead in Phase 1; Settings → Roles & Access allows reassignment to a dedicated BDM hire under Phase 2 without code change. |
Carla (WS2 Lead) |
| A004 | Assumption | Green | Lifecycle stages default to Lead → MQL → SQL → Opp → Customer → Champion → At-risk → Churned Stages seeded as editable rows in config_lifecycle_stages; Corrina/Matt change names + ordering + transition rules via Settings → Lifecycle. No code change required. |
Carla (WS2 Lead) |
| A005 | Assumption | Green | Owner assignment defaults to round-robin within role Settings → Lead Routing exposes round-robin / territory / capacity / manual; default seed is round-robin; switchable per role at any time. |
Carla (WS2 Lead) |
| A006 | Assumption | Amber | Compliance gate default checklist: claims-substantiated · disclosure-present · brand-approved · legal-cleared Settings → Compliance Gates exposes per-asset-type checklist. Corrina + counsel ratify the production set at Steerco #3 before any /crm/* compliance gate goes live. Demo uses 4-default seed. |
Corrina (consulted) · Carla (accountable) |
| A007 | Assumption | Amber | Cooling-off period defaults to 14 days, vertical-agnostic Settings → Cooling-off exposes per-vertical / per-commission-type duration. Demo seeds 14 days flat; Matt ratifies vertical-specific durations at Steerco #3 before commission engine production cutover. |
Matt (consulted) · Carla (accountable) |
| A008 | Assumption | Amber | Commission base rate placeholder 10% until Matt-signed policy lands Settings → Commission Engine exposes per-vertical rate + tiered structure (volume / tenure / mix bonus). Demo seeds 10% flat placeholder. Production /me/commissions/* gated until Matt-signed policy is loaded into config_commission_policy. |
Matt (consulted) · Carla (accountable) |
| A009 | Assumption | Green | Payout schedule defaults to monthly, 15th of month Settings → Payouts exposes weekly / fortnightly / monthly / on-demand + minimum threshold + payment rails. Demo seeds monthly + 15th. |
Carla (WS2 Lead) |
| A010 | Assumption | Green | Data retention defaults to 7 years (AU financial-services norm) Settings → Data Retention exposes soft-delete-to-hard-delete window + audit-log retention. Demo seeds 7 years per AU FS norm; counsel confirms at Steerco #3. |
Compliance (consulted) · Carla (accountable) |
| A011 | Assumption | Green | GST treatment defaults to 10%, applied per AU GST rules on commission payouts Settings → Financial Defaults exposes GST rate + gross-up/inclusive/exclusive + PAYG withholding rules. Demo seeds 10%; counsel + accountant confirm at Steerco #3. |
Finance (consulted) · Carla (accountable) |
| A012 | Assumption | Green | Approval chains: single sign-off < $10k · dual ≥ $10k · tri for compliance-rule changes Settings → Approval Chains exposes per-action sign-off thresholds. Demo seeds default. Production thresholds ratified by Matt at Steerco #3. |
Matt (consulted) · Carla (accountable) |
| A013 | Assumption | Green | Working hours / SLA timers default to Mon-Fri 0900-1700 AEST/AEDT Settings → Working Hours exposes per-role SLA timers + AU public holiday calendar. Demo seeds AEST/AEDT business hours. |
Carla (WS2 Lead) |
| A014 | Assumption | Green | Notifications default to all in-app on, email digest 0800 AEST daily Settings → Notifications exposes per-trigger email vs in-app + quiet hours + opt-out controls. Demo seeds digest cadence; members configure their own once /me/* is live. |
Carla (WS2 Lead) |
| A015 | Assumption | Amber | Sales-internal + CS suite embodiers TBA until Phase 2 BAU hires Phase 1 demo uses TBA placeholders. Settings → Roles & Access allows assignment of real users to Sales / CS roles once Phase 2 BAU hires land. No code change. |
Carla (WS2 Lead) |
| R003 | Risk | Amber | Settings versioning + retroactive recalc risk on commission engine Commission policy changes must be effective-dated, never retroactive without explicit recalc approval. Historical commission records carry the policy-version they were calculated against. Dry-run preview before save shows "would change N commissions, total $X delta". |
Carla (WS2 Lead) |
| R004 | Risk | Amber | Misconfigured Settings could break commission engine or compliance gate Settings admin permission gated to specific roles (CFO + Compliance Officer). Financial-rule changes require dual sign-off. All changes audited with before/after diff. Recovery: every settings row versioned, one-click revert. |
Carla (WS2 Lead) |
| D002 | Dependency | Amber | Final commission policy from Matt before /me/commissions/* production cutover Demo seeds 10% placeholder. Production /me/commissions/* blocked until Matt-signed policy loaded into config_commission_policy. Settings → Commission Engine exposes the editor; Matt completes by Steerco #3. |
Matt (consulted) · Carla (accountable) |
| D003 | Dependency | Amber | AU regulatory clearance on member-side commission framing (AFSL / AUSTRAC / consumer law) Counsel-engaged sprint Steerco #2 → #3 covers AFSL applicability for referral payments, AUSTRAC AML/CTF for member payouts, ACL disclosure obligations. /me/commissions/* + /crm/compliance/* surfaces parameterised by counsel-ratified rules in Settings. |
Compliance (Pine Lawyers, consulted) · Carla (accountable) |
| I001 | Issue | Amber | Architectural pivot — /crm-demo/* must be a working CRM tool, not a styled walkthrough Decision D-PIVOT-CRM (Carla, 2026-06-24): /crm-demo/* refactored from visual narrative pages to a real three-pane CRM workspace backed by D1. New schema (migration 0003): contacts, deals, activities, tickets, notes, settings_rows. Sarah Chen + 24 demo contacts seeded. BD/Sales/CS/CMO workspaces share contact data so the cross-role thread is real, not narrated. Pipeline kanban actually drags; settings actually edit; cooling-off change actually propagates. Demo data only — /crm-demo/* gate held; /crm/* untouched. Resolves the risk Matt and Corrina decline sign-off on a visual mock. |
Carla (WS2 Lead) · Claude (build) |
| A016 | Assumption | Green | Demo data lives in D1 (not constants) but namespace stays /crm-demo/* Per D-PIVOT-CRM: D1 tables prefixed `demo_` (e.g. demo_contacts, demo_deals) — written/read by /crm-demo/* only. Real /crm/* namespace will use the same schema shape but un-prefixed tables, created only after D116 mechanical-build kickoff. Settings → Demo Reset surface (later) wipes demo_* on demand. |
Carla (WS2 Lead) |
| A017 | Assumption | Green | Wave 1 UAT scope = 4 workspaces walking Sarah-Chen end-to-end on real data Per D-PIVOT-CRM: BD (Matt) → Sales-internal → CS → CMO. One contact (Sarah Chen) progresses through all four workspaces; each role sees a real working surface (kanban, queue, account-health, dashboard) with data from the same D1 rows. Wave 2 + Wave 3 stubs hold their coming-soon state until Wave 1 is signed. |
Carla (WS2 Lead) · Matt + Corrina (UAT) |