Good morning, Mahdi /
Last 30 days · This month vs last
Loading…
Revenue by brand · YTD
| Brand | Revenue | COGS | Opex | Net Profit | GM % | NM % | Data |
|---|
MTD funnel
By channel · MTD
By lifetime value
Inflows vs outflows
Auto-flagged events
Revenue by destination · MTD
Pulse /Today
Hourly · Today
Last 10 confirmed
Team pulse
Upcoming departures · 7 days
Deposits due
Reminders
Group Command
No data yet
Head to Upload Data and load your first monthly P&L file to see this view come alive.
By Brand /All Brands
Monthly revenue · selected period
By quarter
Current year
All brands side-by-side
Year by Year
Loading year-by-year stats…
Marketing
monthly_pnl. Upload Meta/Google CSVs for per-channel detail.Spend · revenue · ROAS · CAC · by brand
Last 12 months
By brand · selected period
Enquiry → Confirmed
By ROAS · MTD
Margins & Suppliers
Loading margin data…
Expenses
Expense trajectory · 12 months
stacked by categoryTop categories
QTDRecent transactions
click a category tag to recategorizeSpend by source
where money leaves fromIntelligence
What this does
one-click full-group reviewPulls every P&L row, marketing spend, ops cost, booking summary and upload-log entry since company launch, sends the aggregated signal to Claude, and returns an executive report covering SWOT, financial audit, data infrastructure audit, and portfolio review.
Auto-findings
scanning monthly_pnl…Cost Transparency
every £ traces to its source EOY rowAudit Import
Step 1 · Run migration SQL
aligns Supabase schema with the audit package
Open Supabase → SQL Editor and run
02_audit_migration.sql (brands, destinations, payments, bookings columns)
then 03_suppliers_products_migration.sql (supplier & product tracking for true margin analysis).
Both files are in the dashboard folder.
Step 2 · Wipe polluted transactional data
keeps brands, removes everything else
Removes all rows from bookings, booking_payments, monthly_pnl,
annual_expenses, marketing_spend, ops_cost, upload_log.
Step 3 · Drop the audit package CSVs
auto-detects each file by name
Select all CSV files from owt_group_data_package/csv/. Required files:
brands.csv, destinations.csv, destination_aliases.csv,
bookings.csv, payments.csv.
Also accepted: suppliers.csv, products.csv (unlocks true margin tracking for OWT & TGU).
Step 4 · Rebuild monthly P&L from bookings
runs after bookings load
Groups bookings by brand × booking_month and writes a clean monthly_pnl
snapshot. This is what every other view reads.
Documents
Loading documents…
Forensic Audit
What this does
two-layer reviewLayer 1 — Deterministic checks: scans every booking and P&L row to find duplicate bookings, duplicate quote numbers, revenue reconciliation mismatches (bookings sum vs P&L), suspected currency errors on Lakbay/OWT-USA, and data integrity issues (negative margins, cost > sale, future booking dates).
Layer 2 — Claude CFO review: reads the findings, returns root-cause verdicts and a priority-ranked cleanup plan.
Upload Data
Upload sessions
one-click rollback per session · last 20Smart Upload Portal
AI classifies each file and routes it to the right tableDrop P&L, bookings, marketing spend, or ops cost files — any mix, any order. The classifier reads the columns and filename, picks the right destination, and logs what it did.
Override AI (advanced)
Recent Uploads
audit trailNo uploads yet.
Settings
AI provider
used when the uploader can't classify a file on its ownChoose one provider. The key is stored in this browser only — never sent to our database.
Data Sources
Connected Google Sheets
—Sync history
last 24 hours| Started | Sheet | Status | Rows | Trigger | Duration |
|---|
Smart Upload
How I figured this out
detection stepsCorrect the routing
saved as a learned patternCan't find the right slot?
Use the manual drill-down Admin Panel — every category, every year, every brand.
Recently auto-routed
last 10 uploads| File | Detected destination | Confidence |
|---|
Admin Panel
Expense Review
Step 1 · Extract expenses from EOY Balance files
drag & drop · parses in browser · no storage upload
Drop one EOY - <BRAND> <YEAR>.xlsx file per brand/year
(e.g. EOY - OWT 2025.xlsx). Multi-select OK. Each file has the 4 expense rows
(3% Bank / Stripe Charges, Operation Cost, Marketing,
UK Office Rent) with 12 monthly values — the parser pulls each row and writes to
expense_extraction_log; findings with confidence ≥ 0.85 auto-apply to
monthly_pnl. Year is taken from the filename; sheet year (a tab called
"2024") and column headers ("Jan-24") are also supported as fallback.
Step 2 · Review extractions
loading…No extractions yet. Drop a Book above to get started.
cashflow_monthly, AR aging computed from bookings minus booking_payments. Bank-level cash balance and supplier AP still pending direct feeds.
Cashflow
cashflow_monthly · 13-month view