ZODIAC
Analyst Report · Week 8 · Fractional CEO Engagement
Engagement live · Contract unsigned
·
ZODIAC Ltd · Bar, Club & Karaoke · Camden · Partnerships.Community engagement

Eight weeks in, the engagement is running at 4.5% of market rate. Here is the arc, the gap, and what to fix this week.

An analyst pass across the historical and current record — Stripe lineage, strategy-hub timeline, portal audit, and the connector stack — rebuilt as a decision surface. One concessionary partial in, £7,500 of contract gap, £44,200 of personal subsidy, a portal liability the consultancy shouldn't be carrying, and no countersigned agreement yet. Every number below is cash-clean and pulled from the one-brain source of truth.

P0 · Cash Position as of 21 Apr 2026 · wk 8
Cleanly received · Zodiac to date VERIFIED
£1,800cash in
Inv 0002 · March concessionary partial · paid 30 Mar · net after fees £1,772.80
Only money in across 52 elapsed days · 40 working days
Effective day rate
£45
% of market
4.5%
Subsidy to date
£44.2k
Retainer position TO BILL
£3,200mar+apr gap
£700 March shortfall (absorbed) + £2,500 April upfront · 3 weeks late (un-invoiced)
Admin error on supplier side · not Zodiac debt
Q1 deliverables · admin backlog BLOCKED
£4,300inv 0003
Wrong bill-to · wrong inbox · not reachable by Zodiac finance
Void + reissue as 0004 to ZODIAC Ltd via Dee
Personal capital in venue TREATMENT TBC
£6,000abottz art
Out-of-pocket · reimburse / capitalise / gift — one of three · pick explicitly
Adds to entitlement if reimbursed · to equity if capitalised
Engagement Arc · 8-Week Timeline 9 events · 1 open front
01 · ~01 MAR
Role agreed
Verbal · strategy-hub marks "active (Simon Williams)"
— paper trail: none
02 · WK 1–4
Phase 1 work
Deep clean · Dee scope · Dojo extract · portal scaffolded
~160 hrs absorbed
03 · 30 MAR 18:39
Inv 0001 void
Wrong email (enquiries@) · voided before any charge
£1,800 · no money moved
04 · 30 MAR 18:46
Inv 0002 paid
Reissued to accounts@ · retry success after 1 decline
£1,800 · concession partial
05 · Q1 CLOSE
Deliverables shipped
"Q1 2026 invoice generated & delivered" — strategy-hub
Bundle value £4,300
06 · 03 APR
Inv 0003 misissued
Wrong Stripe record · wrong bill-to · wrong inbox (info@)
£4,300 · unpayable as-is
07 · ~01 APR
April retainer due
Monthly-upfront model · invoice not yet raised by supplier
£2,500 · 3 wks late
08 · 21 APR · TODAY
Analyst pass
Reset the billing rail · fix the portal liability · countersign
Gap to close: £7,500
09 · WK 9+
Contract live
Monthly cycle · April + May + per-phase invoices · auto-chase
Target: recurring £2,500+
Contract Gap Analysis what's agreed · what's working · what's paper
State of the agreement
Role: External Consulting / Fractional CEOVerbal · strategy-hub line 513 confirms "agreed and active"
LIVE
Operating proxy: Dee Chanel (via Jade)Dee reports into CEO structure · Jade signs off · not arm's-length AP
LIVE
!
Monthly retainer figureWorking assumption £2,500/mo · public Fractional Partnerships Lead rate · not signed
ASSUMED
!
Billing cadence: monthly upfrontStandard partnerships.community Fractional practice · not documented in a Zodiac-specific SoW
ASSUMED
Countersigned Fractional CEO agreementPhase 1 open item · strategy-hub line 478 · highest-leverage miss in the stack
OPEN
Abottz art treatment (reimburse / capitalise / gift)£6,000 personal capital sitting in venue without a paper instrument
OPEN
March concession logged as one-time waiverNeeds explicit clause so £1,800 doesn't drift into precedent
OPEN
Scope / re-pricing triggerEngagement running at ~6× retainer scope · no written uplift mechanism
OPEN
Analyst read
Drift risk: high
Four of eight contract dimensions are open or assumed. Three of them (retainer figure, cadence, March waiver) will be resolved in a single countersigned document. Two (art treatment, scope re-price) are the founder-economics decisions that have to be made before the document gets drafted, not after.
Signed
2 / 8
Assumed
2 / 8
Open
4 / 8
Fix: Action P0-3 resolves 6 / 8 in one motion
Value · Entitlement · Cash — Three-Band Math £2,500/mo retainer assumption
LineBasis£
A · Economic value transferred to Zodiac
Time delivered at market mid-rate ~400 hrs × £100/hr · Fractional CEO mid-band £40,000
Capital contributed — Abottz art, installed in venue Personal out-of-pocket £6,000
Subtotal · economic value transferred ~£46,000
B · Contract entitlement (what the engagement actually owes)
March retainer (full month) £2,500 × 1 £2,500
April retainer (upfront ~1 Apr · un-invoiced) £2,500 × 1 £2,500
Q1 deliverables bundle Inv 0003 → void + reissue cleanly £4,300
Abottz art — optional reimbursement at cost Treatment TBC (£6,000)
Subtotal · entitlement (excl. art) £9,300
Subtotal · entitlement (incl. art at cost) £15,300
C · Cash actually received
Inv 0002 · March concessionary partial Paid 30 Mar · card · retry success £1,800
Subtotal · cash received to date £1,800
Gap · Subsidy · Realised rate
Gap: entitlement (excl. art) − cash received £700 concession + £2,500 Apr + £4,300 Q1 £7,500
Personal subsidy: value − cash received Time + capital, not counting fees £44,200
Effective day rate £1,800 ÷ 40 working days £45 / day
£7,500 Gap — Decomposed by Cause & Owner only £4,300 is a true receivable
March shortfall
£700
Full £2,500 retainer − £1,800 concessionary partial accepted
Owner: Supplier · Resolution: absorbed, logged as one-time waiver
April retainer
£2,500
Due upfront ~1 Apr · not yet invoiced · 3 weeks late on supplier side
Owner: Supplier · Resolution: raise April invoice this week
Q1 deliverables
£4,300
Inv 0003 misissued to wrong record · not reachable by Zodiac finance
Owner: Supplier · Resolution: void + reissue as 0004 to ZODIAC Ltd via Dee
Analyst note

Of the three components, only the £4,300 is a proper receivable, and only once reissued cleanly. The £700 March gap is a deliberate absorbed concession — it is not a debt Zodiac owes. The £2,500 April retainer is a pending self-invoice on the supplier side. Reading this gap as "Zodiac owes £7,500" would be wrong; reading it as "partnerships.community needs to do three pieces of paperwork" is correct.

£44,200 Subsidy — Category Decision pick one, not drift
Option A · Sweat equity
Accrues a claim on Zodiac's future value. Requires a written instrument (equity / SAFE / earn-in) with Jade. Without paper, the claim evaporates.
Best if: long-term conviction + cap-table appetite
Option B · Scope re-set
Engagement is running at ~6× retainer scope. Raise a scope amendment via Dee, re-price forward — e.g. tier up to £3,500–£5,000/month from May.
Best if: near-term cash over equity
Option C · Conscious gift
Deliberate investment in Zodiac as a community/mission project. Fine — but log the total given so it doesn't drift into resentment later.
Best if: mission-led, not ROI-led
Portal Liability Audit · zodiac.partnerships.community custodial risk on supplier infra
Critical findings
C1
api/zodiac-bank.js:35 — bank endpoint accepts token === '1'Don't fix the auth — delete the endpoint. Supplier should not host client's sort code + account on own infra.
DELETE
C2
api/zodiac-manage-access.js:10-11 — Vercel project & team IDs hardcodedMove to env vars · revisit once portal ownership is decided
ENV VAR
C3
api/zodiac-manage-access.js:15-20 — personal Gmail fallbacks as DEFAULT_EMAILSRemove fallback. Fail closed, not open. Client access list must not silently default to supplier email.
FAIL CLOSED
C4
deploy.command:12,30 — GitHub PAT hardcodedRotate ghp_qBo5…PigOr now · move to Keychain · unrelated to consulting reframe, just hygiene
ROTATE
Architectural question
Should supplier custody client ops data at all?
The portal is on the supplier's Vercel, supplier's domain, supplier's repo — yet holds Zodiac's bank details, staff access, internal strategy. That's custodial liability the consulting engagement isn't paid or insured to carry.
Two clean paths
(a) Migrate portal to Zodiac-owned domain + Vercel project (Jade/Dee as account owners, supplier as collaborator), or
(b) Keep subdomain, strip all client-operational endpoints, scope to pure strategy/deliverables dashboard.
Option (b) is faster & lower-risk · recommended this week
Connector Stack · Zodiac Lens 12 connectors · 2 pulling weight
Connector Status Wired into Zodiac tile? Best Zodiac use
Stripe MCPliveyes · revenue panelSource of all invoice lineage · keep driving from here
Vercel MCPliveyes · deploy panelSurface zodiacbarlondon.com + zodiac.partnerships.community deploy status
Windsor.ai (GA4)livepartialWire into Zodiac domain tile for real visit data · currently ping-only
Cloudflare MCPlivepartialWorkers + D1 idle · R2 disabled (403 / 10042) · enable R2 for asset hosting
HubSpot MCPliveno62 contacts · 48 companies · Zodiac deal exists · show deal stage + next task
Asana MCPliveno30-day execution timeline = Asana project · surface open-task count on tile
Apollo MCPlivenoASOS / Meta corporate outreach (Phase 3) · sequences already scaffolded
Common Room MCPlivenoAccount research for corporate bookings (Phase 3)
Slack MCPlivenoAlert on invoice paid / overdue / failed charge
Gmail · Calendar · FantasticallivenoMeeting briefings for Jade/Dee syncs · Gmail search "zodiac payment" thread
Canva MCPlivenoEvent flyers · staff incentive wristband graphics · Phase 2 signage
Ahrefs MCPplan blocksUse web-analytics-* tier instead for Zodiac rank / traffic
Architectural rule for every connector

Each one lives on supplier accounts today. Rule of thumb: is this Zodiac's data or my deliverable? If Zodiac's (their CRM, their staff calendar, their Canva brand kit) — move to a Zodiac-owned instance, supplier becomes collaborator. If supplier's deliverable (strategy docs, research, Apollo prospecting for Phase-3 outreach) — stay on supplier infra, bill for the output. Same question as portal ownership in §7 of the one-brain. Worth making the call once, across the whole stack.

Risk Matrix · likelihood × severity 5 active risks
Low severity
Medium severity
High severity
High likelihood
Retainer drift past Apr 30
Bank endpoint custody (C1) £4,300 stays uncollectable
Medium likelihood
Stripe fee drift
Scope re-set avoided Portal ownership left open
Abottz art treated as orphaned gift
Low likelihood
Connector data leakage (low per-field)
Relationship breakdown before contract

Top-right quadrant drives the Action Pipeline below. C1 (bank endpoint) and the £4,300 misissue are the two high/high cells — both resolvable this week, both entirely on the supplier side.

Action Pipeline · Prioritised 11 tasks · 3 P0 · 4 P1 · 4 P2
P0 · TODAY · 15 minutes
1
Message Dee directly, CC Jade. Reset the billing rail — request ZODIAC Ltd legal name, registered address, VAT, finance email. Frame as supplier housekeeping, not an AP chase. Include the April retainer cadence reset.Template in one-brain §8 · tone: direct, collegial, no theatrical apology · re-setting cadence is a Jade-level decision, hence CC
P0 · TODAYOwner: Simon
2
Void Stripe invoice 0003 as soon as Dee replies with clean entity details. A voided bad invoice + a clean reissue reads right; a stuck "18 days overdue" on a wrong record does not.Stripe dashboard · invoice in_1TJXRb0zXLCXziENoIAV2H15 · currently "open"
P0 · TODAYOwner: Simon
3
Delete api/zodiac-bank.js from the portal repo and force-push. Rotate the GitHub PAT (ghp_qBo5…PigOr) while in the terminal.Closes the most dangerous custodial item without needing to fix its auth · stops supplier holding client bank credentials
P0 · TODAYOwner: Simon
P1 · THIS WEEK · ~1 hour
4
Rebuild the Stripe customer record as ZODIAC Ltd once Dee confirms the legal name. Name = legal name, email = Dee, address + phone = venue, VAT populated. Archive both old records. Reissue as 0004 from the clean record.This is the moment £4,300 stops being supplier backlog and becomes a proper B2B receivable · counted from 0004's issue date
P1 · WK 8Owner: Simon
5
Raise April retainer invoice (£2,500 to be confirmed) against the clean ZODIAC Ltd record. Monthly-upfront cadence · due 1 May for May onwards · one-time late acknowledgement for April.Must include a note: "March 2026 concessionary partial (£1,800) is a one-time waiver, not precedent"
P1 · WK 8Owner: Simon
6
Harden portal · remove remaining custodial endpoints. Fail closed on api/zodiac-manage-access.js. Move Vercel project/team IDs to env vars. Remove Dojo login / staff PII / personal Gmail fallbacks.Portal audit §7 · closes C2 & C3 alongside C1 + C4 already done in P0-3
P1 · WK 8Owner: Simon
7
Decide portal ownership. Either migrate zodiac.partnerships.community to a Zodiac-owned domain + Vercel project, or keep the subdomain and scope it strictly to strategy/deliverables (no client-operational data). Document in the Fractional CEO agreement.Recommended: Option (b) this week · faster, lower-risk · revisit (a) after contract signed
P1 · WK 8Owner: Simon + Jade
P2 · NEXT 14 DAYS
8
Countersign the Fractional CEO agreement. Single highest-leverage item in the whole stack. Must specify: monthly retainer figure (confirm £2,500/mo or re-price per scope-reset logic), monthly-upfront cadence (due 1st of month), per-phase deliverables schedule, March 2026 concession logged as one-time waiver (not precedent), Abottz art treatment (reimburse / capitalise / gift), billing contact (Dee), decision-maker (Jade), data ownership (Zodiac owns ops data, supplier owns strategy/IP), termination + notice clause.Already on Phase 1 of strategy-hub timeline · line 478 · this document converts every ambiguity above into a boring monthly cycle
P2 · WK 9–10Owner: Simon drafts · Jade countersigns
9
Formalise the fee schedule in Stripe. Written subscription (monthly retainer) + product-catalog entries for per-phase deliverables. Future invoices auto-number and auto-chase instead of manual 0001/0002/0003 from memory.Stripe has billing portal + subscription schedules that make this cheap to set up
P2 · WK 9–10Owner: Simon
10
Add STRIPE_WEBHOOK_SECRET so the webhook endpoint that already exists actually fires. Route the fire into Slack + the admin command centre. Every Zodiac payment event is currently being dropped silently.One env var + one Slack channel · unblocks realtime pipeline status on the dashboard
P2 · WK 9–10Owner: Simon
11
Wire Zodiac into the admin command centre as its own panel. Cleanly-earned-to-date (not "billed"), open-invoice age from correct issue date, portal uptime ping, next-phase milestone, HubSpot deal stage, Asana open-task count. Plumb the 8 idle connectors into the single Zodiac tile — turn the dashboard into true one-pane-of-glass for Zodiac specifically.Seed: this report · ban "gross billed" from the dashboard — it's a lie to yourself
P2 · WK 9–12Owner: Simon
Analyst Bottom Line one paragraph
Week 8 close-out · founder-honest

The Zodiac engagement is economically alive (~£46k of value delivered) but financially stalled at the paperwork layer. Eight contract dimensions exist; only two are signed. Of the £7,500 "gap," £700 is an absorbed concession, £2,500 is a supplier self-invoice three weeks late, and £4,300 is a misissued Q1 bill that Zodiac's finance function has never properly seen. None of that is Zodiac debt today — all of it is supplier admin. The real risk isn't the money; it's the drift: no countersigned agreement, a £6,000 art contribution with no instrument, a portal on supplier infra holding the client's bank credentials, and a 400-hour time investment sitting as an informal gift. Four actions this week (message Dee, void 0003, delete zodiac-bank.js, reissue as 0004) close the P0 quadrant. One decision this fortnight (countersign the Fractional CEO agreement with £2,500/mo + scope-reset clause + art treatment) converts the whole engagement from ambiguity into a boring monthly cycle. That is the entire job.

P0 tasks
3
P1 tasks
4
P2 tasks
4
Time to close P0
15 min
Time to close P1
~1 hr