← Engine
Clients
All active and pipeline clients. Status controls dashboard visibility. Sync controls whether this client is included in the daily and weekly cron syncs.
Loading clients...

Add New Client
Create a new client record in D1. All Workers and dashboards will pick it up immediately.
1
Identity
URL-safe, lowercase, no spaces
If set, the subdomain uses the group name instead of the slug — useful for grouping multiple brands under one holding company subdomain
Adds a toggle to the client's report to show revenue ex-VAT. Only enable for clients whose revenue figures include UK VAT.
Adds a reach, impressions and engagement section above the campaign tables. Only enable once reach/engagement data has been backfilled for this client.
Adds a tool tab showing which companies/industries engaged with this client's LinkedIn campaigns. Requires a connected LinkedIn account — data appears after the next weekly sync.

2
Channels and accounts
Dashes added automatically

3
Dashboard config
Hex — follows Type by default (ecommerce green, lead gen blue, app amber). Edit to override.
Edit Client
Update channels, account IDs, and settings for an existing client. Use this to add a new platform retro to a live client.
Backfill Historical Data
Pull historical data from Windsor into D1. Always run a row count test before starting. November must always be run as a standalone chunk.
QA Checklist
Complete all items before marking a client live. State is saved per client.
Cohort Rules
Controls how campaigns are classified into prospecting, retargeting, or other. Rules are matched in priority order — first match wins. Changes take effect immediately with no redeployment needed.
Priority bands (lower number checked first): Lead gen 1–9  ·  Other 10–19  ·  Retargeting 20–49  ·  Prospecting 50–99 (custom cohort names also use this band). Priorities outside the correct band for a cohort will be rejected when adding or saving.
Select a client to manage its cohort rules.
Health Check
Sync status per client, per job type (Trading, Creative, LinkedIn engagement) — computed from cron sync attempts logged to the audit log, not raw data recency, since a client with genuinely zero spend can look identical to a broken sync from the data side alone. Each type only appears for clients it actually applies to.
Loading health...
Audit Log
Last 50 actions across all clients.
Loading log...
Settings
Platform configuration.
PIN
The PIN is required for destructive actions: deleting clients, marking as live, and changing the PIN itself. It is stored as a one-way hash and cannot be recovered if forgotten.
4 to 6 digits
AI Analysis benchmarks
Runs automatically once daily (11:50 UTC cron slot). Recalculates trailing CVR, channel share, and the Crank same-type/all-clients benchmark averages from current D1 data — no live Windsor calls, so this is cheap to run on demand, e.g. right after enabling Analysis for a new client.
Danger Zone
Irreversible actions. All require PIN confirmation.
Delete client
Permanently removes all D1 data for the selected client including daily stats, campaign stats, creative stats, cohort rules, QA checklist state, and the client config row. This cannot be undone.