Prepared by
Prepared for
Client Meeting · End-to-end system flow

How the System Works, Start to Finish

The complete journey as flowcharts — from a first enquiry, through every operational step that runs the fleet, crew, suppliers, stores and accounts, to the deal being delivered and closed. Charter first, then brokerage, then the always-on backbone underneath both.

Colours — who owns the step

Client / Buyer / Seller Sales & Brokers Finance Operations Crew The system, automatically Always-on ERP backbone

Shapes

Rounded box — a step someone does Diamond — a decision or a gate Cylinder — a record or register the system keeps Pill — link to the next part of the flow
Overview

The whole picture

Every enquiry enters one place, is qualified, and becomes a client. It then follows either the charter chain or the brokerage chain — both of which draw on the same operational backbone — and ends in a closed, paid, reported deal.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  E["Enquiry in — website, WhatsApp, phone, email, referral, social"]:::client
  L["Lead created — source tagged, advisor assigned, 24h response clock"]:::sys
  Q{"Qualified?"}:::gate
  P["Follow-up pool — automated nurture"]:::sales
  C["Client registered — Client ID, KYC / compliance"]:::sales
  S{"Charter or brokerage?"}:::gate
  CH["CHARTER CHAIN — A1 to A12"]:::ops
  BR["BROKERAGE CHAIN — B1 to B10"]:::ops
  BK[("Always-on ERP backbone — fleet, maintenance, crew, stores, accounts")]:::back
  FC["Charter delivered, invoiced, profit locked"]:::finance
  FB["Sale completed, handed over, commission settled"]:::finance
  AC["Aftercare — thank-you, review, follow-ups, upsell"]:::client
  E --> L --> Q
  Q -->|No| P
  Q -->|Yes| C --> S
  S -->|Charter| CH
  S -->|Brokerage| BR
  BK --- CH
  BK --- BR
  CH --> FC --> AC
  BR --> FB --> AC
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      

Part A — Charter, end to end

Someone wants to charter a yacht. Twelve linked steps: the first three are the sales side (CRM), the next seven are the operational engine (ERP), and the last two close the money and keep the client.

A1 · CRM · Sales

Lead & qualification

The enquiry becomes one record. An advisor runs a consultation using a fixed questionnaire, then decides whether it is real and workable. Qualified enquiries become registered clients with KYC started.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  IN["Enquiry in"]:::client --> CAP["One record created — source tagged, duplicate check"]:::sys
  CAP --> ASG["Advisor assigned — 24-hour response clock"]:::sys
  ASG --> CON["Consultation call — charter questionnaire: dates, guests, occasion, budget, preferences"]:::sales
  CON --> QQ{"Real and workable?"}:::gate
  QQ -->|No| POOL["Follow-up pool — automated nurture"]:::sales
  QQ -->|Yes| REG["Client registered — Client ID, preferences stored"]:::sales
  REG --> KYC["KYC documents requested"]:::finance
  KYC --> NX(["To A2 — matching & proposal"]):::sales
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Client, SalesAutomatic acknowledgement, assignment, SLA timer, duplicate check, nurture sequence
A2 · CRM + Fleet

Yacht matching & proposal

The system matches the request against yachts that are actually available — reading the fleet register and current maintenance status — and the advisor curates a shortlist. A branded proposal and an internal cost/profit sheet are built and sent.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  RQ["Client requirements"]:::sales --> M["Matching engine — budget, guests, dates, location, experience"]:::sys
  FL[("Fleet register + availability calendar")]:::back --> M
  MS[("Maintenance status")]:::back --> M
  M --> SH["Shortlist — 2 to 3 available yachts, curated by advisor"]:::sales
  SH --> PR["Proposal built — yacht, itinerary, rate, VAT, inclusions, terms"]:::sys
  PR --> CO["Internal cost & offer sheet — fees, costs, tips, commission, profit"]:::finance
  CO --> SN["Sent to client by private link — open tracking"]:::sales
  SN --> RV{"Client response"}:::gate
  RV -->|Change requested| PR
  RV -->|Declined| LO["Marked lost — reason logged"]:::sales
  RV -->|Approved| NX(["To A3 — booking & contract"]):::sales
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Sales, ClientAutomatic availability check, match ranking, proposal document, price / VAT / profit calculation, open tracking
A3 · CRM + Compliance

Booking, contract & KYC

Approval creates a booking and locks the yacht for those dates. The agreement and invoices are generated and sent for signature; the booking cannot be confirmed until KYC is complete and the agreement is signed.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  AP["Proposal approved"]:::client --> BK["Booking created — Booking ID"]:::sys
  BK --> LK["Yacht locked on the calendar for the dates"]:::sys
  LK --> DC["Agreement + invoices generated from templates"]:::sys
  DC --> SG["Sent for e-signature — client uploads ID"]:::client
  SG --> GT{"KYC complete and agreement signed?"}:::gate
  GT -->|No| CH["Automated reminders"]:::sys
  CH --> SG
  GT -->|Yes| CF["Booking confirmed — operations notified"]:::ops
  CF --> NX(["To A4 — invoicing & payment"]):::finance
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Sales, Client, ComplianceAutomatic calendar lock, document generation, signature routing, reminders, operations hand-off
A4 · ERP · Finance

Invoicing & payment

A dated payment schedule is created — deposit, balance, security deposit. Operations is only released to spend once the deposit is confirmed. Everything posts to the accounts ledger with VAT applied by rule.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  SC["Payment schedule — deposit, balance, security deposit (all dated)"]:::finance
  SC --> DP["Deposit invoice sent — pay online"]:::client
  DP --> PD{"Deposit received?"}:::gate
  PD -->|"No, overdue"| RM["Reminder cadence — booking held"]:::sys
  RM --> PD
  PD -->|Yes| RC["Receipt issued — posted to accounts"]:::finance
  RC --> RL["Finance approval — operations released to spend"]:::finance
  RL --> BL["Balance + security deposit invoices scheduled before charter"]:::finance
  AL[("Accounts ledger + VAT")]:::back --- RC
  BL --> NX(["To A5 — operations planning"]):::ops
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Finance, ClientAutomatic invoice send, dunning reminders, receipts, ledger posting, VAT, operations release
A5 · ERP · Operations

Operations planning

An operations manager takes over. Checklists appear automatically, the itinerary is finalised with the client, and the plan branches into three parallel workstreams — crew, procurement and stores.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  OM["Operations manager assigned"]:::ops --> CL["Checklists created from templates"]:::sys
  CL --> IT["Final itinerary confirmed with client"]:::ops
  IT --> PL["Charter plan — route, marina coordination, timings, special requests"]:::ops
  PL --> WX["Weather check"]:::sys
  PL --> CR["Crew requirement raised"]:::ops
  PL --> VN["Vendor services needed — catering, entertainment, watersports, transfer"]:::ops
  PL --> PV["Provisioning & water-toy list"]:::ops
  CR --> N1(["To A6 — crew"]):::ops
  VN --> N2(["To A7 — procurement"]):::ops
  PV --> N3(["To A8 — stores"]):::ops
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
      
Who Operations, ClientAutomatic checklist creation, weather check, workstream hand-offs
A6 · ERP · Crew

Crew management

The crew requirement is filled from the fleet-wide roster, checking that every certificate is valid for the charter dates. Assigned crew get a briefing and acknowledge it on their phones.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  RQ["Crew requirement — captain, steward, deckhand, chef, engineer"]:::ops
  RS[("Crew roster — availability, certifications, medicals, visas")]:::back
  RQ --> RS --> AS["Crew assigned to the charter"]:::ops
  AS --> CT{"Certificates valid for the dates?"}:::gate
  CT -->|No| SW["Reassign or flag for renewal"]:::ops
  SW --> AS
  CT -->|Yes| BF["Briefing sent — crew acknowledge on mobile"]:::crew
  BF --> RD["Crew ready"]:::crew
  RD --> NX(["To A9 — readiness gate"]):::ops
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef crew fill:#efe8f7,stroke:#6b4ea8,color:#3f2e66;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Operations, CrewAutomatic certificate-expiry check against dates, briefing delivery, acknowledgement capture
A7 · ERP · Procurement

Procurement & vendors

Services are ordered from approved vendors whose trade licence and insurance are valid. Purchase orders are raised, vendors confirm, and the expected bill is recorded against the charter's costs.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  ND["Service needed"]:::ops --> VD[("Vendor database — approved, documents valid, past ratings")]:::back
  VD --> PO["Purchase order raised"]:::finance
  PO --> VC{"Vendor confirms?"}:::gate
  VC -->|No| AL["Alternate vendor"]:::ops
  AL --> PO
  VC -->|Yes| SD["Service scheduled for charter day"]:::ops
  SD --> BL["Vendor bill expected — added to charter cost sheet"]:::finance
  BL --> NX(["To A9 — readiness gate"]):::ops
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Operations, FinanceAutomatic vendor-document validity check, PO generation, cost accrual
A8 · ERP · Stores

Stores & provisioning

The provisioning and water-toy list is checked against stock held for that yacht. Anything short is ordered and received into stock; everything is then allocated to the charter.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  LS["Provisioning & water-toy list"]:::ops --> ST[("Stores — stock levels per yacht, reorder points")]:::back
  ST --> CK{"In stock?"}:::gate
  CK -->|No| OR["Purchase / provisioning order"]:::finance
  OR --> RV["Goods received — stock updated"]:::sys
  CK -->|Yes| AC["Allocated to the charter"]:::ops
  RV --> AC
  AC --> NX(["To A9 — readiness gate"]):::ops
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Operations, FinanceAutomatic stock check, low-stock flag, stock movement on receipt and allocation
A9 · ERP · Operations

Yacht preparation & readiness gate

The three workstreams come back together. The pre-charter checklist and final inspection are done, and a single gate decides whether the charter is allowed to proceed.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  C6(["Crew ready (A6)"]):::crew --> GATE
  C7(["Vendors confirmed (A7)"]):::ops --> GATE
  C8(["Stores allocated (A8)"]):::ops --> GATE
  PP["Pre-charter checklist — cleaning, setup, safety equipment, fuel, water"]:::ops --> IN["Final inspection"]:::ops --> GATE
  GATE{"Ready for charter? — crew acknowledged, checklist 100 percent, no expired certificate, weather checked"}:::gate
  GATE -->|No| FX["Resolve outstanding items"]:::ops
  FX --> GATE
  GATE -->|Yes| RY["Ready for guest boarding"]:::ops
  RY --> NX(["To A10 — charter day"]):::crew
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef crew fill:#efe8f7,stroke:#6b4ea8,color:#3f2e66;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Operations, CrewAutomatic gate enforcement — the charter cannot be marked ready until every condition is met
A10 · ERP · Crew & Operations

Charter day

Crew run the day from a mobile checklist. Extra requests and charges are logged live. After the guests leave, a damage inspection decides whether the security deposit is released or partly deducted.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  AR["Yacht & crew on station — vendors arrive"]:::crew --> CI["Guest arrival — check-in, ID verification"]:::crew
  CI --> SB["Safety briefing — captain introduction"]:::crew
  SB --> LV["Charter live — itinerary run from mobile checklist"]:::crew
  LV --> EX["Extra requests & charges logged"]:::crew
  EX --> EN["Charter completed — guest check-out"]:::crew
  EN --> DI["Damage inspection"]:::ops
  DI --> DG{"Damage?"}:::gate
  DG -->|Yes| DR["Damage report — deduction proposed, admin approval"]:::ops
  DG -->|No| DL["Security deposit cleared for release"]:::finance
  DR --> DL
  DL --> NX(["To A11 — financial close"]):::finance
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef crew fill:#efe8f7,stroke:#6b4ea8,color:#3f2e66;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Crew, OperationsAutomatic extra charges flow to the final invoice, deposit review triggered
A11 · ERP · Finance

Financial close

The final invoice is settled, vendors and crew are paid, the deposit is returned or deducted, commissions are split, and the company profit for that charter is calculated and locked. Per-yacht profit and loss updates automatically.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  FN["Charter completed"]:::ops --> FI["Final invoice — extras added"]:::finance
  FI --> CO{"Balance collected?"}:::gate
  CO -->|No| RM["Reminders"]:::sys
  RM --> CO
  CO -->|Yes| VP["Vendor & crew payments made"]:::finance
  VP --> DP["Security deposit refunded or deducted — statement issued"]:::finance
  DP --> CM["Commission split — agent, team, referral"]:::finance
  CM --> PF["Company profit calculated — charter financial log locked"]:::finance
  PF --> PL[("Per-yacht profit & loss updated")]:::back
  PF --> NX(["To A12 — aftercare"]):::client
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who FinanceAutomatic extras billing, dunning, commission calculation, profit calculation, ledger lock, P&L update
A12 · CRM · Client care

Aftercare

The client is thanked, asked for a review and a survey, and any complaint routes into a resolution workflow. Automated follow-ups then keep the relationship warm and surface the next opportunity.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  TY["Thank-you email + receipt"]:::sys --> RW["Review request + satisfaction survey"]:::sys
  RW --> CP{"Complaint?"}:::gate
  CP -->|Yes| RS["Complaint resolution workflow"]:::sales
  CP -->|No| LY["Loyalty points / voucher"]:::sys
  RS --> LY
  LY --> FU["Automated follow-ups — 30 & 90 days, birthday, repeat charter"]:::sys
  FU --> UP["Upsell prompts — brokerage, management, membership"]:::sales
  UP --> CL(["Booking closed"]):::finance
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who System, SalesAutomatic the entire sequence — thank-you, review, survey, loyalty, follow-ups, upsell prompts

Part B — Brokerage, end to end

Walidia connects a seller and a buyer for a commission. Two intake tracks feed a listing and a matching process; the sides meet at the offer, then run through diligence, transaction, transfer and handover before the commission is closed.

B1 · CRM · Sales

Buyer & seller intake

Enquiries are split at the door into buyer or seller, each with its own questionnaire and qualification. Qualified clients are registered with a compliance check before any listing or offer activity.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  IN["Enquiry in"]:::client --> TP{"Buyer or seller?"}:::gate
  TP -->|Seller| SQ["Seller questionnaire — yacht, year, price, ownership, finance, timeline"]:::sales
  TP -->|Buyer| BQ["Buyer questionnaire — purpose, budget, type, length, brand, location"]:::sales
  SQ --> SL{"Qualified?"}:::gate
  BQ --> BL{"Qualified?"}:::gate
  SL -->|No| PP["Follow-up pool"]:::sales
  BL -->|No| PP
  SL -->|Yes| RS["Seller registered — KYC / compliance"]:::finance
  BL -->|Yes| RB["Buyer registered — KYC / compliance"]:::finance
  RS --> NS(["To B2 — listing"]):::sales
  RB --> NB(["To B4 — matching"]):::sales
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Client, Sales, ComplianceAutomatic routing, duplicate check against known yachts, KYC request
B2 · ERP · Listing

Listing & valuation

The yacht is inspected and its documents gathered. A valuation combines market comparisons with the broker's view; once a price is agreed, a listing agreement is signed and the yacht enters the sale inventory.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  IS["Yacht inspection — documents gathered: registration, ownership, insurance, survey history"]:::ops
  IS --> VL["Valuation — market comparison + broker view"]:::sales
  VL --> PR{"Price agreed?"}:::gate
  PR -->|Adjust| VL
  PR -->|Approved| AG["Listing agreement — exclusive / open / co-brokerage — e-signed"]:::sales
  AG --> AC["Listing activated — added to sale inventory"]:::sys
  AC --> RN[("Renewal reminder set — 30 / 14 / 7 days before expiry")]:::back
  AC --> NX(["To B3 — marketing"]):::sales
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Operations, SalesAutomatic agreement generation, signature routing, listing record, renewal reminders
B3 · ERP · Marketing

Marketing distribution

The listing is published across every channel, each one tracked with its own status and link. Enquiries from any channel come straight back into the system as leads.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  L["Active listing"]:::sales --> PB["Published — website, yacht portals, social media, broker network"]:::sys
  PB --> TR["Each channel tracked — status & link"]:::sys
  TR --> EN["Buyer enquiries captured back as leads"]:::sys
  EN --> NX(["Feeds B4 — matching"]):::sales
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
      
Who Marketing, SystemAutomatic multi-channel publish, per-channel tracking, lead capture
B4 · CRM + Compliance

Matching & viewing

Buyers are matched to live listings and sent a curated shortlist. A viewing cannot be scheduled until the buyer's ID is verified and an NDA is signed — with proof of funds required on higher-value yachts.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  BP["Buyer profile"]:::sales --> MT["Matching engine — budget, length, brand, type, location"]:::sys
  IV[("Sale inventory — active listings")]:::back --> MT
  MT --> SL["Shortlist sent via preferred channel"]:::sales
  SL --> FB["Buyer feedback logged"]:::sales
  FB --> VR["Viewing requested"]:::client
  VR --> VG{"ID verified + NDA signed? (proof of funds if high value)"}:::gate
  VG -->|No| HD["Held — documents chased"]:::sys
  HD --> VG
  VG -->|Yes| SC["Senior broker assigned — viewing scheduled at marina"]:::sales
  SC --> VW["Viewing conducted — feedback captured"]:::sales
  VW --> NX(["To B5 — offer"]):::sales
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Sales, Client, ComplianceAutomatic match scoring, shortlist delivery, ID / NDA gate, scheduling, reminders
B5 · CRM · Brokers

Offer & negotiation

A signed offer generates the full document set. Every offer, counter-offer and response is kept as one linked history until the seller accepts — at which point the yacht is locked "under offer".

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  OF["Buyer submits signed offer"]:::client --> DS["System generates quotation, commission agreement, invoice, purchase agreement"]:::sys
  DS --> LG["Offer logged — buyer, seller, amount, currency"]:::sales
  LG --> RP{"Seller response"}:::gate
  RP -->|Counter| CT["Counter-offer — new linked version"]:::sales
  CT --> RP
  RP -->|Reject| LX["Closed lost"]:::sales
  RP -->|Accept| UO["Yacht under offer — listing locked"]:::sys
  UO --> NX(["To B6 — survey"]):::ops
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Brokers, Buyer & SellerAutomatic document set, full negotiation history, listing status
B6 · ERP · Operations

Survey & sea trial

An independent survey and a sea trial check the yacht. A failed or conditional result reopens the negotiation; a clear result and a positive evaluation move the deal to the transaction.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  OD["Survey ordered — surveyor booked"]:::ops --> RP["Survey report"]:::ops
  RP --> RS{"Result"}:::gate
  RS -->|"Failed / conditional"| RN["Renegotiate or withdraw"]:::sales
  RN --> BK(["Back to B5 — offer"]):::sales
  RS -->|Passed| TR["Sea trial conducted"]:::ops
  TR --> EV["Result evaluated"]:::sales
  EV --> DC{"Proceed?"}:::gate
  DC -->|No| PL["Follow-up pool"]:::sales
  DC -->|Yes| NX(["To B7 — transaction"]):::finance
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
      
Who Operations, Brokers, BuyerAutomatic status tracking, renegotiation trigger, go / no-go record
B7 · ERP · Finance

Transaction & funds

The purchase agreement is finalised and the buyer's payment is received into a stakeholder account, kept separate from Walidia's own money. Nothing moves to transfer until the funds have cleared.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  YP["Purchase agreement finalised & e-signed"]:::sales --> IV["Invoice issued"]:::finance
  IV --> FD["Buyer payment received into stakeholder account (held separately)"]:::finance
  FD --> CL{"Funds cleared?"}:::gate
  CL -->|No| WT["Awaiting clearance"]:::sys
  WT --> CL
  CL -->|Yes| NX(["To B8 — ownership transfer"]):::ops
  LD[("Stakeholder ledger — buyer in, seller / broker / referral out")]:::back --- FD
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef gate fill:#ffffff,stroke:#0b1d3a,color:#0b1d3a;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who Finance, Brokers, BuyerAutomatic payment instructions, receipts, clearance gate, stakeholder-ledger entries
B8 · ERP · Operations

Ownership transfer

Once funds clear, ownership is transferred and the registration and insurance are updated. The transaction is then marked complete in the system.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  ST["Funds cleared"]:::finance --> TF["Ownership transfer initiated"]:::ops
  TF --> RG["Registration updated — flag state"]:::ops
  RG --> IN["Insurance updated"]:::ops
  IN --> CP["Transaction marked complete"]:::sys
  CP --> NX(["To B9 — delivery & handover"]):::ops
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
      
Who Operations, BuyerAutomatic transfer checklist, completion status
B9 · ERP · Operations

Delivery & handover

Delivery is scheduled and a pre-delivery inspection is done. The full documentation package is assembled, the buyer signs an acceptance form, and a delivery certificate formally closes the handover.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart LR
  DS["Delivery scheduled"]:::ops --> PD["Pre-delivery inspection"]:::ops
  PD --> PK["Documentation package assembled"]:::sys
  PK --> AC["Buyer signs acceptance form"]:::client
  AC --> CT["Delivery certificate signed"]:::client
  CT --> NX(["To B10 — commission close"]):::finance
  classDef client fill:#f6eeda,stroke:#a9822c,color:#5f4715;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
      
Who Operations, BuyerAutomatic document package assembly, acceptance & certificate signing
B10 · ERP · Finance

Commission close & post-sale

Seller and buyer payments are confirmed and everyone is paid out of the stakeholder account. The commission is split, company profit is calculated, the deal is closed, and post-sale follow-ups begin.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  CF["Buyer & seller payments confirmed"]:::finance --> PO["Seller paid, brokers paid, referrals paid"]:::finance
  PO --> SP["Commission split — company / broker / referral"]:::finance
  SP --> PF["Company profit calculated — deal closed in system"]:::finance
  PF --> RC["All receipts issued — financial closure"]:::finance
  RC --> FU["Automated follow-ups — 7 / 30 / 90 / 180 days"]:::sys
  FU --> UP["Upsell — yacht management, charter, maintenance, insurance"]:::sales
  UP --> DN(["Deal closed"]):::finance
  PF --> RP[("Reporting — commission, profit, broker performance")]:::back
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef finance fill:#e0f0f5,stroke:#0e7ea3,color:#0a4f66;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Who FinanceAutomatic payout tracking, commission split, profit calculation, closure, follow-ups, reporting

Underneath both — the always-on ERP backbone

These six functions run continuously, whether or not there is an active deal. Every step in Parts A and B either reads from them or writes to them — so information is entered once and flows everywhere.

%%{init:{'theme':'base','themeVariables':{'fontFamily':'Inter,sans-serif','lineColor':'#7d92a8','primaryColor':'#eef2f6','primaryTextColor':'#0b1d3a','primaryBorderColor':'#c4d0de'}}}%%
flowchart TD
  MN["Maintenance & compliance — service schedules, dry-dock, certificate & insurance renewals"]:::back
  FL["Fleet register — specs, documents, live availability"]:::back
  CW["Crew roster — certifications, medicals, visas, availability"]:::back
  SR["Stores & suppliers — stock, purchase orders, vendor performance"]:::back
  FN["Finance & accounting — ledger, payables / receivables, VAT, multi-currency"]:::back
  RP["Reporting — revenue, margin, cash, utilisation, per-yacht P&L"]:::back

  MN -->|"available / not available"| FL
  FL -->|"feeds"| MATCH["Yacht matching — A2 & B4"]:::sys
  CW -->|"feeds"| OPS["Charter operations — A5 to A10"]:::ops
  SR -->|"feeds"| OPS
  OPS -->|"purchase orders, consumption"| SR
  OPS -->|"usage & downtime"| MN
  OPS -->|"costs"| FN
  DEAL["Charter & brokerage deals — A1 to B10"]:::sales -->|"invoices, payments, commissions"| FN
  FN -->|"figures"| RP
  classDef sales fill:#e8edfc,stroke:#1a56db,color:#12357f;
  classDef ops fill:#e1f0eb,stroke:#1f7259,color:#123a2e;
  classDef sys fill:#eef2f6,stroke:#5c6b7e,color:#33404f;
  classDef back fill:#0b1d3a,stroke:#0b1d3a,color:#ffffff;
      
Runs continuously — reminders for expiring certificates, low stock, overdue payments and listing renewals fire on their own