HAF Hub

Sign in to access the HAF Group control hub.

Private · authorised access only
OTIS Hub  /  Home

Welcome back

Ventures

Money · momentum · what needs you

Needs your attention

Today

Pipeline & CRM

CRM & Pipeline

Leads, segments and signups across HAF — live from the waiting-list feed.

By operator type

Recent leads

Ask OTISConnecting…

Ask OTIS

Your OTIS command line. Ask me anything, hand me a task, or attach a file for me to work from. Type / for quick commands like /go, /note or /leads. I'm right here.

Agent Task

The HAF command centre — every task the agents are running, who owns it, where it's stuck, and what needs your call. Tap any card or row to open the full task.

Green — on trackAmber — needs attentionRed — blocked / overdueGrey — parked / not startedPrivate
TaskLeadSupportProjectPriorityStatusRAGProgressNext actionDueApproval

Saves to this browser for now — ask OTIS to wire it to Supabase so tasks are shared across logins and permanent. Subtasks, comments, attachments, notifications and WhatsApp/Telegram approvals come in the next phases.

AgentRoleActiveWaitingBlockedCompleted (wk)Load

Load bands — Light 1–3 · Balanced 4–7 · Heavy 8–12 · Overloaded 13+. OTIS flags any agent who tips into overloaded.

OTIS

Your business operating brain — what needs you, what's moving across the team, and where it's stuck.

Waiting list

Needs your decision

Today's focus

Work in flight

System pulse

Route a task to an agent

Telegram — Brent

Live via OTIS

Outbound messages queue via OTIS and send on next agent tick. Inbound messages appear here automatically when OTIS processes them.

Specialists

Seven specialist agents, each reporting into OTIS on Red / Amber / Green / Grey.

OSCAR

Your single front door. Everything personal and business starts with OSCAR — captured, sorted and prepared before business work is handed to OTIS. Calm, private and discreet by default.

Owns
Daily briefPersonal captureDecision queueFollow-upsTop 3 prioritiesClose-day
MVP Personal & business quick-add · follow-ups · daily brief · close-day · route to OTIS.
Sits above OTISPrivacy wall
Personal/private items stay out of the business Hub unless you allow them. No moving money, no final approvals, no sensitive sends without your say-so.
KAY Design · The cleaner

Keeps every HUB system looking like one premium HAF product. KAY sweeps the design every night, aligns anything that has drifted back to the HAF brand standard, and keeps the whole system clean so it never gets messy — always showing the next fix, not just the mess.

Owns
Design alignmentBrand tokensHUB consistencyNightly clean-upDrift auditsTask hygiene
MVP Nightly audit · token alignment · drift report · branch + preview only · flags anything bigger for sign-off.
Reports into OTISJXPA → builds & deploysSource-only, never prod
Never deploys to production and never touches usehaf.co.uk — KAY aligns the source, ships a preview to review, and routes anything bigger up as a decision.
KYLE Finance

The money view. KYLE tracks cashflow, budgets, invoices, costs, revenue, margins, payments and approvals — and always shows the next finance action, not just the data.

Owns
CashflowInvoicesCosts & budgetsMarginsPayment approvalsPLNA subsKNECT margins
MVP Manual cashflow panel · invoice-due list · payment-approval list · weekly money summary · red-flag box.
Reports into OTISFLO → revenue · JXPA → site costsFigures private
Never approves a payment without your sign-off — approvals route up as an OSCAR'S Decision. Finance figures are redacted for non-finance roles.
FLO Data & Analytics

The data truth. FLO turns website, sales, marketing and project numbers into plain-English insight — not just dashboards, but what changed, why it matters and the next action.

Owns
KPI dashboardsWebsite & salesCampaign analyticsEnquiry conversionPLNA & KNECT dataWeekly insight
MVP Manual KPI entry · enquiry count · traffic · sales · social snapshot · weekly insight box.
Reports into OTISBacks NALA & KYLE
NALA must ask FLO for data before judging any campaign. Raw finance records stay redacted unless approved.
MEG Support & Compliance

Keeps the internal business tidy and traceable. MEG owns admin, documents, compliance, checklists, reminders and reusable processes OTIS can lean on.

Owns
Internal adminComplianceDocumentsChecklistsDriver onboardingCleverPaySOPs
MVP Admin task list · compliance checklist · document checklist · follow-up list · missing-info box.
Reports into OTIS
Flags missing info, but never makes a final compliance call without the right provider or your approval.
NALA Marketing & Growth

Owns marketing activity — campaigns, content calendar, socials, email and Manychat. Premium and clean, with every campaign tied to a clear business objective.

Owns
Marketing calendarSocial planCampaignsContent & captionsEmail / ManychatPLNA · KNECT · Shop
MVP Manual content calendar · post log · campaign-ideas list · approval queue · weekly review.
Reports into OTISAsks FLO for data
No childish styling, weak copy or clutter. Judges performance on FLO's numbers, not vibes.
JXPA Sites & Development

Owns site management and development progress — tracking sites, contractors, planning, documents, costs and next actions, with each site kept separate.

Owns
Site overviewDev progressContractorsPlanning actionsDocumentsBlockers
MVP Site list · action list per site · blocker list · document checklist · weekly site update.
Reports into OTISCosts → KYLE
Always shows next action, owner and deadline. Flags planning or cost risk early; sends financial questions to KYLE.
DEV CTO Support

Technical brain behind the Hub build — backlog, Cloudflare Pages, GitHub, Supabase, API and integration planning, security and developer handoff notes.

Owns
Hub backlogCloudflare / GitHubSupabaseAPI planningSecurity checksDeploy checks
MVP Keep the Hub secure before live data · simple working versions before deep integrations · clear handoff notes.
Reports into OTISPending install
Work affecting live data, access, security, payments or public pages must be approved through OSCAR first. Provisioning is with the platform team — this tile goes live the moment DEV is installed.

OSCAR'S Decision Queue

Every approval from every agent lands here as a row. OSCAR prepares it; you decide. Nothing commits on your behalf.

Red — OSCAR'S DecisionAmber — Waiting / infoGreen — ScheduledGrey — CompletedBlack — Private
PrioritySourceDecision neededAreaDeadlineContactStatusNext action
No decisions in the queue yet. As the agents come online, approvals from OTIS, KYLE, FLO, MEG, NALA, JXPA and DEV appear here — newest and Red at the top.
Per row, OSCAR can:ApproveHoldAsk for infoScheduleTelegramWhatsAppZoomReject

Buttons and the full field set (ID, travel / ETA checks, calendar, approval log) are built on preview. Live send, Map ETAs and calendar sync wire in once their keys are added — no faked actions.

To Do List

Synced from OSCAR — your personal assistant. Personal items stay private to you; only business tasks route into OTIS.

No tasks yet. As OSCAR comes online it drops your day-to-day straight in here — diary, follow-ups, reminders and errands.

HAF Shop

Your live product & pricing table for THE HAF SHOP. Edit any cell, add or remove rows, then Save. Seeded with the Simark draft — fill in your cost & retail prices and OTIS will load the rest into the shop.

SKUItemTypeCost £Retail £StatusNotes

Saves to this browser for now — ask OTIS to wire it to Supabase so the table is shared across logins and permanent.

Live Work Queue

What OTIS and the agents are doing right now, by traffic light. Red waits on your approval, amber is queued, green is in motion.

Approvals

Row-by-row decisions OTIS and the agents need from you. High-risk actions are held as "Waiting for Brent" automatically.

Task IDTitleAgentCategoryPriorityTypeRiskAddedStatusAction

Today's Priorities

Your daily command list. Connects to OSCAR for live scheduling later.

Top 3 today

Set by you & OTIS

Business & work blocks

Personal & meetings

Follow-ups

Waiting on other people

Private Notes

Permanent and temporary instructions OTIS should remember — brand rules, build rules, pricing notes, private thoughts. Stored on your device in V1.

Your notes

System Health

A read-out of the HUB, sites, database and connected services. Live checks land here as each is wired up.

Services

Placeholder status — live pings coming

Agent Projects

Every active project, by group — owner and next action.

Marketing

Run by NALA

Live

Finance & Legal

Private, sensitive controls — company structures, banking, investor and legal. Nothing here executes without your approval.

Private Finance Mode

This area is locked. It holds company structures, banking, investor and legal controls. Unlock to view.

Overview

Run by JXPA

Awaiting feed
Sites & devRun by JXPALast synced: —
How to make this page liveAwaiting your data

Your build & dev command view. It goes live once we agree the list of sites to watch.

  1. YouConfirm which sites/apps to track here — HAF, KNECT, PLNA, KN Cleans, the Shop.
  2. OtisI pull live status + last deploy from Cloudflare & Vercel (both connected) and fold the projects tracker in below.
Once live → Each site's live status, last deploy and open dev tasks — in one strip.
Fastest path: message me — here or on Telegram — “set up Overview” and I’ll drive the rest.
Sites
— vs last 30d
Deploys 30d
— vs last 30d
Uptime
— vs last 30d
Open Issues
— vs last 30d
Data

Site Status

JXPA
SiteStatusLast deployUptimeErrors
Feed: Sites & dev

Project management

Run by JXPA

Awaiting feed
Projects trackerRun by JXPALast synced: —
How to make this page liveAwaiting your data

Your projects board. It needs one list of the projects you want tracked.

  1. YouTell me your active projects — or drop a spreadsheet: name, owner, status, due date.
  2. OtisI stand up a `projects` table + a 20-second update route and wire this board to it.
Once live → Live project count, what's in progress, blocked, and due — updating as you log changes.
Fastest path: message me — here or on Telegram — “set up Project management” and I’ll drive the rest.
Active
— vs last 30d
On Track
— vs last 30d
At Risk
— vs last 30d
Done 30d
— vs last 30d
Data

Project Board

JXPA
ProjectOwnerStatusDueProgress
Feed: Projects tracker

Pipeline enquiries

Run by JXPA

Awaiting feed
Enquiry pipelineRun by JXPALast synced: —
How to make this page liveAwaiting your data

Your inbound enquiry funnel. It lights up once enquiries land in one place.

  1. YouTell me where enquiries arrive today — website form, email, WhatsApp, DMs.
  2. OtisI route them into an `enquiries` table and tag each stage: new → qualified → won.
Once live → New / qualified / in-progress / won counts and the live enquiry list.
Fastest path: message me — here or on Telegram — “set up Pipeline enquiries” and I’ll drive the rest.
New
— vs last 30d
Qualified
— vs last 30d
In Progress
— vs last 30d
Won 30d
— vs last 30d
Data

Pipeline

JXPA
CompanyStageValueOwnerNext
Feed: Enquiry pipeline

KN Capital

Run by MILO

Control panel
Aggregated viewRun by MILOAll sub-sections
AUM
— vs last 30d
Positions
— vs last 30d
Portfolio P/L
— vs last 30d
Committed Capital
— vs last 30d
Sub-sections
Capital MgmtMILO
AUM
Positions
Trade JournalMILO
Trades 30d
Win Rate
InvestorsMILO
Investors
Committed
PipelineMILO
New
Qualified
ProjectsMILO
Active
On Track
Container CollectiveMILO
Members
Containers

HAF Co

Run by OTIS

Control panel
Aggregated viewRun by OTISAll sub-sections
Waitlist
— vs last 30d
Shop Orders
— vs last 30d
Active Members
— vs last 30d
Open Jobs
— vs last 30d
Sub-sections
HAF KNECTJAKO
Signups
Activations
WaitlistFLO
Total Signups
New 30d
HAF PLNAJUDD
Signups
Active Drivers
X-TiersOTIS
Accounts
Active
AnalyticsOTIS
Page Views
Events 7d
HAF JobsJAKO
Open Jobs
Done 30d
StorageOTIS
Units
Occupancy
HAF ShopNALA
Products
Orders 30d
FeedbackMEG
Avg Rating
Responses
MembersMEG
Members
Active
CleverPayKYLE
Volume 30d
Transactions

Web Analytics & Funnel Tracking

Live page views and the HAF funnel — visitor → signup → activation — across www / launch / KNECT / PLNA.

Live
Window

Conversion funnel

Loading…

Traffic by site

Loading…

Traffic by source (UTM)

Loading…

Top campaigns

Loading…

Top pages

Loading…

Most-clicked CTAs

Loading…

Device & location

Loading…

Product funnels (KNECT · PLNA · Freight · Business · Driver)

Loading…

Anonymous, HAF-owned analytics. No personal, payment or compliance data is stored in events. Raw rows are never public — the HUB reads aggregate numbers only.

HAF KNECT

Live KNECT waiting-list sign-ups.

Total sign-ups
KNECT list
PLNA list
Loading live count…

HAF KNECT — Waitlist

Every sign-up captured across the HAF sites — full detail, row by row.

DateNameCategoryInterestAreaPhoneEmailStatusPriorityMailchimpSource

HAF PLNA

Run by JUDD

Live

HAF X — Tier Framework

KNECT · PLNA · Freight Forwarding · Business Accounts — the back-office view of the pricing, fees and rebates. Reads the configurable tier model; live counts fill in as accounts are created.

V—

HAF Jobs

Run by JAKO

Awaiting feed
Jobs & booking feedRun by JAKOLast synced: —
How to make this page liveAwaiting your data

The KNECT job & booking feed. It fills the moment KNECT jobs start flowing.

  1. YouGive me the go-ahead to wire this to the KNECT job flow (JAKO's system).
  2. OtisI connect the KNECT jobs feed; until KNECT is live I can seed it from any current bookings you send.
Once live → Live jobs, bookings today, courier status and job value — straight from KNECT.
Fastest path: message me — here or on Telegram — “set up HAF Jobs” and I’ll drive the rest.
Open Jobs
— vs last 30d
Active
— vs last 30d
Completed 30d
— vs last 30d
Avg Job Value
— vs last 30d
Data

Live Jobs

JAKO
RefStatusRouteValuePosted
Feed: Jobs & booking feed

Dispatch Board

JAKO
DriverVehicleRouteETAStatus
Feed: Jobs & booking feed

HAF Feedback

Run by MEG

Awaiting feed
Feedback captureRun by MEGLast synced: —
How to make this page liveAwaiting your data

Customer feedback in one place. It needs a single capture point.

  1. YouPick how to collect it — a short form link, a post-job WhatsApp ask, or pulling in reviews.
  2. OtisI build that capture into a `feedback` table and surface scores + comments here.
Once live → Average rating, latest comments and the trend — as feedback comes in.
Fastest path: message me — here or on Telegram — “set up HAF Feedback” and I’ll drive the rest.
Avg Rating
— vs last 30d
Responses 30d
— vs last 30d
NPS
— vs last 30d
Open Issues
— vs last 30d

Recent Feedback

MEG
DateRatingSourceSentimentComment
Feed: Feedback capture

Themes

MEG
TopicCountSentimentLast seen
Feed: Feedback capture

HAF Members

Run by MEG

Awaiting feed
Members storeRun by MEGLast synced: —
How to make this page liveAwaiting your data

Your HAF members view. It needs the member list source.

  1. YouTell me where members live — Shopify customers, a spreadsheet, or a fresh list.
  2. OtisI connect that source (Shopify is already linked) and map members + status here.
Once live → Member count, new joiners, and active vs lapsed.
Fastest path: message me — here or on Telegram — “set up HAF Members” and I’ll drive the rest.
Members
— vs last 30d
Active
— vs last 30d
New 30d
— vs last 30d
Churn
— vs last 30d
Data

Member Directory

MEG
NamePlanJoinedStatus
Feed: Members store

Recent Joins

MEG
NameDateTypeSource
Feed: Members store

CleverPay

Run by KYLE

Awaiting feed
CleverPay APIRun by KYLELast synced: —
How to make this page liveAwaiting your data

CleverPay transactions. It needs the CleverPay API connected.

  1. YouConfirm CleverPay is the payment system to track here — I'll then request its API key securely (never in chat).
  2. OtisI connect the CleverPay API, cross-check against Stripe (already linked), and wire the panels.
Once live → Payments volume, fees, payouts and failed-payment alerts.
Fastest path: message me — here or on Telegram — “set up CleverPay” and I’ll drive the rest.
Volume 30d
— vs last 30d
Transactions
— vs last 30d
Pending
— vs last 30d
Flags
— vs last 30d
Data

Recent Payments

KYLE
DateAmountTypeStatusRef
Feed: CleverPay API

Compliance

KYLE
ItemRiskStatusAction
Feed: CleverPay API

Social

Run by NALA

Control panel
Aggregated viewRun by NALAAll sub-sections
Total Followers
— vs last 30d
Posts 30d
— vs last 30d
Avg Engagement
— vs last 30d
Reach 30d
— vs last 30d
Sub-sections
Business SocialNALA
Followers
Posts 30d
PersonalNALA
Followers
Engagement
Content PlanNALA
Planned
Scheduled
ConnectionsNALA
Channels
Connected

Content Plan

Run by NALA

Awaiting feed
Content calendarRun by NALALast synced: —
How to make this page liveAwaiting your data

Your content calendar. It needs your planned posts in one place.

  1. YouTell me where you plan content (a sheet, Notion, or let me run it) and your channels.
  2. OtisI stand up a `content_plan` table + Buffer link so scheduled and posted items show here.
Once live → What's scheduled, what's posted, and the gaps in your calendar.
Fastest path: message me — here or on Telegram — “set up Content Plan” and I’ll drive the rest.
Planned
— vs last 30d
Scheduled
— vs last 30d
Published 30d
— vs last 30d
Drafts
— vs last 30d
Data

Upcoming Content

NALA
DatePlatformTopicFormatStatus
Feed: Content calendar

Cort Co

Run by CORT

Control panel
Aggregated viewRun by CORTAll sub-sections
Members
— vs last 30d
Revenue
— vs last 30d
Content Views
— vs last 30d
Active Leagues
— vs last 30d
Sub-sections
Cort TVCORT
Views 30d
Subscribers
Cort ClubCORT
Members
New 30d
Cort XCORT
Leagues
Players
Cort ShopCORT
Orders 30d
Revenue

Cort TV

Run by CORT

Awaiting feed
Cort TV analyticsRun by CORTLast synced: —
How to make this page liveAwaiting your data

Cort TV performance. It needs the video/streaming analytics source.

  1. YouTell me the platform Cort TV runs on — YouTube, Vimeo, or custom.
  2. OtisI connect that platform's analytics and chart views, watch-time and subscribers.
Once live → Views, watch-time, subscribers and your top content.
Fastest path: message me — here or on Telegram — “set up Cort TV” and I’ll drive the rest.
Views 30d
— vs last 30d
Watch Time
— vs last 30d
Subscribers
— vs last 30d
Uploads
— vs last 30d
Data

Top Content

CORT
TitleViewsWatch timeLikesPublished
Feed: Cort TV analytics

Cort Club

Run by CORT

Awaiting feed
Membership systemRun by CORTLast synced: —
How to make this page liveAwaiting your data

Cort Club memberships. It needs the membership source.

  1. YouTell me how Cort Club members & dues are managed — Stripe, a platform, or new.
  2. OtisI connect it (or stand up a `cort_members` table) and track members + recurring revenue.
Once live → Active members, monthly recurring revenue, joins and churn.
Fastest path: message me — here or on Telegram — “set up Cort Club” and I’ll drive the rest.
Members
— vs last 30d
Active
— vs last 30d
New 30d
— vs last 30d
Renewals
— vs last 30d
Data

Member Activity

CORT
NamePlanJoinedLast activeStatus
Feed: Membership system

Cort X

Run by CORT

Awaiting feed
League platformRun by CORTLast synced: —
How to make this page liveAwaiting your data

Cort X league data. It needs the league/competition platform.

  1. YouTell me what runs the league — a platform name or a spreadsheet.
  2. OtisI pull fixtures, results and standings into this view.
Once live → Live standings, fixtures, results and participation.
Fastest path: message me — here or on Telegram — “set up Cort X” and I’ll drive the rest.
Leagues
— vs last 30d
Players
— vs last 30d
Matches 30d
— vs last 30d
Active
— vs last 30d
Data

Standings

CORT
LeaguePlayerWDLPts
Feed: League platform

Cort Shop

Run by CORT

Awaiting feed
Cort ShopifyRun by CORTLast synced: —
How to make this page liveAwaiting your data

Cort Shop sales. It needs the Cort Shopify store connected.

  1. YouConfirm the Cort Shopify store URL — I'll request its API token securely.
  2. OtisI connect it the same way as THE HAF SHOP (already live) and wire products, orders and revenue.
Once live → Orders, revenue, best-sellers and stock — just like the HAF Shop tile.
Fastest path: message me — here or on Telegram — “set up Cort Shop” and I’ll drive the rest.
Products
— vs last 30d
Orders 30d
— vs last 30d
Revenue
— vs last 30d
AOV
— vs last 30d
Data

Recent Orders

CORT
DateOrderItemsTotalStatus
Feed: Cort Shopify

Business

Run by OSCAR

Awaiting feed
Calendar + tasksRun by OSCARLast synced: —
How to make this page liveAwaiting your data

Your business day — calendar + tasks. The calendar's connected; it needs the task feed joined in.

  1. YouConfirm which Google calendar(s) are 'business', and where business tasks should come from.
  2. OtisI filter your connected Google Calendar to business and join it with the agent task list here.
Once live → Today's meetings, what's due, and any clashes — for your business life.
Fastest path: message me — here or on Telegram — “set up Business” and I’ll drive the rest.
Today
— vs last 30d
This Week
— vs last 30d
Open Tasks
— vs last 30d
Approvals
— vs last 30d

Business Schedule

OSCAR
TimeEventLocationType
Feed: Calendar + tasks

Tasks

OSCAR
TaskPriorityDueStatus
Feed: Calendar + tasks

Personal

Run by OSCAR

Awaiting feed
Personal calendarRun by OSCARLast synced: —
How to make this page liveAwaiting your data

Your personal day. It needs your personal calendar connected.

  1. YouApprove the Apple/iCloud calendar link (CalDAV) when I prompt — I never hold your account password.
  2. OtisOnce the secure link is live I show personal events plus Megan's shared-calendar crossovers.
Once live → Personal events, reminders and shared-calendar clashes — kept fully separate from business.
Fastest path: message me — here or on Telegram — “set up Personal” and I’ll drive the rest.
Today
— vs last 30d
This Week
— vs last 30d
Reminders
— vs last 30d
Notes
— vs last 30d
Data

Personal Schedule

OSCAR
TimeEventLocationType
Feed: Personal calendar

Business

Run by KYLE

Control panel
Aggregated viewRun by KYLEAll sub-sections
Revenue MTD
— vs last 30d
Transactions
— vs last 30d
Campaigns Live
— vs last 30d
Conversion
— vs last 30d
Sub-sections
MarketingNALA
Campaigns
Reach 30d
Finance & LegalKYLE
Revenue
Transactions

Business

Run by NALA

Awaiting feed
Buffer / Meta GraphRun by NALALast synced: —
How to make this page liveAwaiting your data

Your business social performance. The connections exist — they just need re-authorising.

  1. YouRe-authorise Buffer and Meta (Instagram/Facebook) when I prompt — both are set up but disconnected.
  2. OtisI pull reach, engagement and follower growth across channels into this view.
Once live → Reach, engagement, follower growth and top posts — your business accounts.
Fastest path: message me — here or on Telegram — “set up Business” and I’ll drive the rest.
Followers
— vs last 30d
Posts 30d
— vs last 30d
Engagement
— vs last 30d
Reach
— vs last 30d
Data

Business Channels

NALA
PlatformFollowersPostsEng %
Feed: Buffer / Meta Graph

Recent Posts

NALA
DatePostReachLikes
Feed: Buffer / Meta Graph

Personal

Run by NALA

Awaiting feed
Personal socialRun by NALALast synced: —
How to make this page liveAwaiting your data

Your personal social presence. It needs your personal accounts linked.

  1. YouTell me which personal accounts to track, and authorise them when prompted.
  2. OtisI keep these fully separate from business and chart growth + engagement.
Once live → Follower growth and engagement on your personal channels.
Fastest path: message me — here or on Telegram — “set up Personal” and I’ll drive the rest.
Followers
— vs last 30d
Posts 30d
— vs last 30d
Engagement
— vs last 30d
Reach
— vs last 30d
Data

Channels

NALA
PlatformFollowersPostsEng %
Feed: Personal social

Recent Posts

NALA
DatePostReachLikes
Feed: Personal social

Social Connections

HAF social accounts.

HAF Storage

Run by OTIS

Awaiting feed
Storage recordsRun by OTISLast synced: —
How to make this page liveAwaiting your data

Your storage / unit records. It needs the storage data source.

  1. YouTell me where unit & occupancy data lives — a PMS, a spreadsheet, or new.
  2. OtisI connect it (or stand up a `storage_units` table) and track occupancy + revenue.
Once live → Occupancy %, units let vs free, and storage revenue.
Fastest path: message me — here or on Telegram — “set up HAF Storage” and I’ll drive the rest.
Total Units
— vs last 30d
Occupied
— vs last 30d
Vacant
— vs last 30d
Occupancy %
— vs last 30d

Unit Overview

OTIS
UnitTypeSizeStatusSince
Feed: Storage records

Container Stock

OTIS
ContainerLocationConditionAssigned
Feed: Storage records

HAF Shop

Run by NALA · Live · Shopify

KN Co

Run by MILO

Control panel
Aggregated viewRun by MILOAll sub-sections
Ventures Active
— vs last 30d
Cleans Jobs 30d
— vs last 30d
Cleans Revenue
— vs last 30d
Active Clients
— vs last 30d
Sub-sections
KN CleansMILO
Jobs 30d
Revenue
KN VenturesMILO
Active
In Pipeline

KN Cleans

Run by MILO

Awaiting feed
KN Cleans bookingsRun by MILOLast synced: —
How to make this page liveAwaiting your data

KN Cleans jobs. It needs to know where your cleaning bookings live today.

  1. YouTell me how you track KN Cleans jobs now — a spreadsheet, a booking app, or nothing formal yet.
  2. OtisI stand up a `kn_cleans_jobs` table + a 30-second logging route (Telegram or a form) and wire the panels.
Once live → Jobs in last 30d, revenue, active clients and average job value — automatically.
Fastest path: message me — here or on Telegram — “set up KN Cleans” and I’ll drive the rest.
Jobs 30d
— vs last 30d
Revenue
— vs last 30d
Active Clients
— vs last 30d
Avg Job
— vs last 30d
Data

Upcoming Jobs

MILO
DateClientLocationTypeStatus
Feed: KN Cleans bookings

Clients

MILO
NameJobsRevenueLast job
Feed: KN Cleans bookings

KN Ventures

Run by MILO

Awaiting feed
Ventures trackerRun by MILOLast synced: —
How to make this page liveAwaiting your data

KN Ventures portfolio. It needs your list of ventures.

  1. YouList the ventures to track — name, stake, status, value.
  2. OtisI stand up a `kn_ventures` table and surface each venture's status and value.
Once live → Venture count, total value, and the status of each.
Fastest path: message me — here or on Telegram — “set up KN Ventures” and I’ll drive the rest.
Active
— vs last 30d
In Pipeline
— vs last 30d
Invested
— vs last 30d
Live
— vs last 30d
Data

Ventures

MILO
NameStageInvestedStatusOwner
Feed: Ventures tracker

KN Capital Management

Run by MILO

Awaiting feed
Portfolio feedRun by MILOLast synced: —
How to make this page liveAwaiting your data

KN Capital portfolio. It needs your holdings feed.

  1. YouTell me where holdings live (broker, spreadsheet) — or send a snapshot.
  2. OtisI wire a portfolio feed and chart allocation, value and P&L.
Once live → Portfolio value, allocation, and P&L over time.
Fastest path: message me — here or on Telegram — “set up KN Capital Management” and I’ll drive the rest.
AUM
— vs last 30d
Positions
— vs last 30d
P/L MTD
— vs last 30d
Cash
— vs last 30d

Holdings

MILO
AssetValueAlloc %P/LLast
Feed: Portfolio feed

Allocation

MILO
ClassValueTarget %Actual %
Feed: Portfolio feed

Trade Journal

Run by MILO

Awaiting feed
Trade logRun by MILOLast synced: —
How to make this page liveAwaiting your data

Your trade journal. It needs trades logged in one place.

  1. YouSend a few trades, or pick how you'll log them — Telegram one-liners work fine.
  2. OtisI stand up a `trades` table + quick-log route and chart win-rate and R.
Once live → Win-rate, average R, open positions and P&L.
Fastest path: message me — here or on Telegram — “set up Trade Journal” and I’ll drive the rest.
Trades 30d
— vs last 30d
Win Rate
— vs last 30d
Net P/L
— vs last 30d
Open Positions
— vs last 30d
Data

Recent Trades

MILO
DateAssetSideEntryExitP/LStatus
Feed: Trade log

Investors

Run by MILO

Awaiting feed
Investor CRMRun by MILOLast synced: —
How to make this page liveAwaiting your data

Your investor relationships. It needs the investor list.

  1. YouDrop your investor list — name, committed, status — or tell me to start one.
  2. OtisI build an `investors` CRM table and track commitments and stage.
Once live → Investor count, total committed, and pipeline stage.
Fastest path: message me — here or on Telegram — “set up Investors” and I’ll drive the rest.
Investors
— vs last 30d
Committed
— vs last 30d
Called
— vs last 30d
Distributed
— vs last 30d
Data

Investor List

MILO
NameCommittedCalledReturnStatus
Feed: Investor CRM

Updates Due

MILO
InvestorTypeDueStatus
Feed: Investor CRM

Pipeline Enquiries

Run by MILO

Awaiting feed
Enquiry pipelineRun by MILOLast synced: —
How to make this page liveAwaiting your data

Your enquiry pipeline. It lights up once enquiries land in one place.

  1. YouTell me where enquiries arrive today — website form, email, WhatsApp, DMs.
  2. OtisI route them into an `enquiries` table and tag each stage: new → qualified → won.
Once live → New / qualified / in-progress / won counts and the live enquiry list.
Fastest path: message me — here or on Telegram — “set up Pipeline Enquiries” and I’ll drive the rest.
New
— vs last 30d
Qualified
— vs last 30d
In Progress
— vs last 30d
Won 30d
— vs last 30d
Data

Pipeline

MILO
CompanyStageValueOwnerNext action
Feed: Enquiry pipeline

Project Management

Run by MILO

Awaiting feed
Projects trackerRun by MILOLast synced: —
How to make this page liveAwaiting your data

Your projects board. It needs one list of the projects you want tracked.

  1. YouTell me your active projects — or drop a spreadsheet: name, owner, status, due date.
  2. OtisI stand up a `projects` table + a 20-second update route and wire this board to it.
Once live → Live project count, what's in progress, blocked, and due.
Fastest path: message me — here or on Telegram — “set up Project Management” and I’ll drive the rest.
Active
— vs last 30d
On Track
— vs last 30d
At Risk
— vs last 30d
Done 30d
— vs last 30d
Data

Project Board

MILO
ProjectOwnerStatusDueProgress
Feed: Projects tracker

Container Collective

Run by MILO

Awaiting feed
Collective recordsRun by MILOLast synced: —
How to make this page liveAwaiting your data

Container Collective records. It needs the collective's data.

  1. YouTell me what the Collective tracks — members, containers, payments — and where it's held.
  2. OtisI stand up the right table(s) and wire the panels.
Once live → Members, containers in play, and revenue.
Fastest path: message me — here or on Telegram — “set up Container Collective” and I’ll drive the rest.
Members
— vs last 30d
Containers
— vs last 30d
Occupancy
— vs last 30d
Waitlist
— vs last 30d
Data

Members

MILO
NameContainersJoinedStatus
Feed: Collective records

Vamo Sports Co

Run by VAMO

Control panel
Aggregated viewRun by VAMOAll sub-sections
Bookings 30d
— vs last 30d
Courts
— vs last 30d
Utilisation
— vs last 30d
Members
— vs last 30d
Sub-sections
Vamo PadelVAMO
Bookings 30d
Courts

Vamo Padel

Run by VAMO

Awaiting feed
Booking systemRun by VAMOLast synced: —
How to make this page liveAwaiting your data

Vamo Padel bookings. It needs the court-booking system.

  1. YouTell me what you book courts through — Playtomic, a platform, or a spreadsheet.
  2. OtisI connect it (or stand up a `padel_bookings` table) and track bookings + utilisation.
Once live → Bookings, court utilisation, and revenue.
Fastest path: message me — here or on Telegram — “set up Vamo Padel” and I’ll drive the rest.
Bookings 30d
— vs last 30d
Courts
— vs last 30d
Utilisation
— vs last 30d
Members
— vs last 30d
Data

Court Schedule

VAMO
DateCourtTimePlayerStatus
Feed: Booking system

Settings

Your account, privacy and Hub preferences.

Profile
Name
Account
Access level
Signed out
Security & privacy
Privacy modeHide sensitive figures in shared views
Emergency Lock ModeImmediately hide Finance & Legal and Private Notes
Auto-logoutLock the Hub after 15 minutes idle
On
Two-factor (2FA)Add a one-time code on top of your password
PasswordChange the password for this account
Notifications & preferences
Approval alertsTell me the moment something needs sign-off
Default landingOpen this page on sign-in
Control Home
Home Screen

Switch on the pages you want pinned to your Control Home overview. Changes save instantly.

Connections

Connect HAF's social accounts — Instagram, TikTok, Facebook, LinkedIn — so posts and enquiries flow through here. We'll wire these up next.

Access log