01Executive summary & recommendation
Walidia Yachts runs two distinct revenue engines that today share people, spreadsheets and inboxes but no common system:
- Charter — selling dated experiences on an owned/managed fleet. The hard part is operational orchestration: availability, crew, vendors, provisioning, checklists, charter-day execution and per-charter profitability.
- Brokerage — intermediating the sale of third-party yachts for commission. The hard part is transaction governance: listings, KYC-gated viewings, offer/counter-offer history, survey & sea trial, ownership transfer and commission splits.
Analysis of both process maps shows roughly 70% common foundation (lead & client management, KYC/AML, document generation, e-signature, multi-invoice payments, VAT, commission calculation, automation, reporting, role-based audit) and 30% line-specific depth. This is the shape of a single platform with two configured pipelines, not two systems.
Recommendation
Build on Odoo Enterprise with two custom modules (Charter Operations, Brokerage Transactions) and a configurable Commission & Tax rules engine. Odoo ships the common 70% — CRM, quotations, invoicing with UAE FTA-compliant VAT, inventory/purchase, fleet, maintenance, e-sign, document portal and automation — as configurable product. Investment concentrates on the genuinely yacht-specific 30%, the source code stays owned by Walidia, and running cost stays low. It extends to the yacht-management service line later without re-platforming.
Choose Zoho One + Zoho Creator instead only if budget is tight and a lighter operations layer is acceptable. Avoid a fully bespoke build unless the intent is to productise and resell the software — for a single operator it means rebuilding commodity ERP plumbing (accounting, tax, e-sign) at 3–4× the cost and timeline.
Indicative shape
| Dimension | Odoo Enterprise + custom (recommended) | Zoho One + Creator | Fully custom |
|---|---|---|---|
| First go-live | 3–5 months | 2–4 months | 9–15 months |
| Implementation | USD 40–90k | USD 20–45k | USD 150–350k+ |
| Run cost / yr | ~USD 12–25k | ~USD 8–16k | hosting + a retained dev team |
| VAT / accounting | Native, FTA-ready | Native (Zoho Books) | Build or integrate |
| Operational depth | High (custom modules) | Medium (Creator ceiling) | High (everything is custom) |
| Code ownership | Yes (Odoo + custom modules) | Partial (config + Deluge) | Yes |
Figures are planning-grade ranges for a GCC implementation partner; confirm against a scoped statement of work.
02Business context & economics
Walidia positions in the superyacht segment (30 m+) across the GCC and Indian Ocean. Inbound demand arrives through website forms, WhatsApp, phone, email, referral and social. Three service lines are marketed — charter, brokerage, management — plus event-led experiences (celebrations, corporate, sports events, film shoots). This blueprint covers charter and brokerage; management is a planned Phase 5 extension.
Revenue mechanics
Charter
Income = charter fee + priced extras (F&B, watersports, entertainment, transfers) + APA / security deposit (pass-through, refundable — not revenue).
Cost = crew, fuel, berth / visitor / marina fees, vendor purchase orders, provisioning, staff & crew tips, team commission %, agent commission, bank charges.
Margin = Total Offer − Total Cost, tracked per charter and rolled up per yacht (P&L).
Brokerage
Income = commission on the sale value (typically a % of the agreed price; may be a central agreement or co-brokerage split).
Cost = broker share, referral share, co-broker share, marketing / portal syndication.
Company profit = total income − seller payment − commissions. The yacht itself is never on Walidia's balance sheet; buyer funds are handled in a stakeholder capacity.
Problems the system must remove
- No single view of fleet availability → double-booking and manual conflict checks.
- Proposals and cost/offer tables built by hand in spreadsheets → slow, inconsistent, error-prone pricing.
- Commission and profit calculations manual → disputes and closure delays.
- VAT treatment varies by departure jurisdiction and supply type → compliance exposure.
- KYC, NDA and signature chasing done over email → viewings and bookings stall.
- Certificate and listing-agreement expiries tracked in spreadsheets → risk of a charter cancelled dockside or a listing lapsing.
- No SLA visibility on the 24-hour consultation promise → lead leakage.
- Post-charter / post-sale follow-up and repeat-business nurture is ad hoc.
- No per-charter or per-yacht profitability reporting for owners and management.
03Stakeholders, roles & access
The flows name Sales, Finance, Operations and Admin as role bands, plus a Super Admin who assigns senior brokers. Expanded into an access model:
| Role | Owns | Key permissions |
|---|---|---|
| Super Admin / Owner | Configuration, overrides, group P&L | All records; edit tax & commission rules, templates, automations; force state transitions with logged reason; assign senior brokers |
| Sales Agent | Own leads, enquiries, proposals | CRUD on own pipeline; create bookings/offers; read own commission; no financial approval |
| Broker / Senior Broker | Listings, viewings, offers, negotiations | As Sales Agent + conduct high-value viewings, submit YPAs; senior brokers assigned to viewings by Super Admin |
| Sales Manager | Team pipeline & targets | Read/edit all team records; reassign leads; approve proposals above threshold; team dashboards |
| Operations Manager | Charter delivery | Charter planning, checklists, crew & vendor assignment, provisioning, charter-day log; cannot see full margin |
| Finance / Accountant | Invoices, payments, VAT, closure | All financial records; issue invoices & receipts; record payments; run commission & profit; give Finance Approval / Operational Release |
| Compliance Officer | KYC / AML, document validity | Review & approve KYC packages; flag PEP / sanctions; manage retention; block progression on failed checks |
| Crew (Captain +) | Assigned charter tasks | Mobile: view briefing & manifest, complete pre-charter & charter-day checklists, acknowledge assignment, log incidents |
| Marketing | Listing distribution | Publish listings to website / portals / social; manage media library; no client PII beyond consent state |
| Vendor (external) | Purchase orders | Portal: accept / decline PO, confirm delivery, upload trade licence & invoice |
| Client (external) | Own documents & approvals | Tokenised magic-link portal: view proposal, approve documents & changes without login, pay online, upload KYC |
Access is role-based with record-level scoping (an agent sees their own pipeline; a manager sees the team) and field-level protection on cost and margin data. Every override by Admin is written to an immutable audit log with actor, timestamp, before/after and a mandatory reason.
04Scope & value streams
In scope — Phase 1–4
- Lead & client management, both lines
- Charter: enquiry → matching → proposal → booking → operations → charter day → close
- Brokerage: buyer & seller intake → listing → matching → viewing → offer → survey → transaction → handover
- Fleet & sale-inventory registers, availability calendar
- KYC/AML, document generation, e-signature
- Quotations, multi-invoice billing, payment schedules, VAT, receipts
- Commission & per-deal / per-yacht P&L
- Vendor management & purchase orders
- Maintenance & compliance register
- Client portal, automation engine, dashboards
Out of scope / later
- Yacht Management service line (Phase 5)
- Crew payroll & HR administration
- Full replacement of statutory accounting if an external ledger is retained (integrate instead)
- Public website rebuild — integrate with existing forms
- Native mobile apps beyond a responsive crew/ops web view (Phase 5)
- AI valuation models — start rules-based, revisit
The two value streams, end to end
05Charter — process architecture
The charter map contains 20 numbered blocks. Grouped into level-1 processes with the system behaviour and control each must enforce:
A · Demand & qualification
| Process | System behaviour | Control / rule |
|---|---|---|
| Lead capture | Omni-channel intake (web form, WhatsApp, email-to-lead, manual); source & lead-type tagging (Individual, Corporate, Government, DMC, Concierge, Charter Partner) | Duplicate check on email / mobile / EID / company TRN before create (BR-2) |
| Consultation | Auto-created "consultation" task on assigned agent with due time | 24-hour SLA; escalation to manager on breach (BR-1) |
| Charter questionnaire | Structured "Under Booking" form — experience type, dates & alternates, duration, timings, guests, proposed yachts, budget, itinerary, marina, catering / entertainment / watersports / transfer picklists, special services | Answers persist to the enquiry and pre-fill the proposal |
| Qualification | Qualified / Not-qualified decision; not-qualified → Follow-Up Pool with nurture cadence | Enquiry cannot advance to Proposal unless Qualified (BR-3) |
| Client registration | Creates Client record + Client ID; captures type, VIP level, preferred comms, dietary / allergy notes, previous charters | Client Approved gate before enquiry proceeds |
B · Sales & deal shaping
| Process | System behaviour | Control / rule |
|---|---|---|
| Charter enquiry | Enquiry entity with charter details (dates, times, guests adults/children, destination, route, pickup / drop-off marina); inquiry status pipeline (New → Contacted → Proposal Sent → Waiting Client → Follow-Up → Qualified → Lost); experience selection | Agent assignment; next-action always present |
| Yacht matching | Rules engine scores fleet on budget, guest capacity, yacht type, location, availability window, experience fit → ranked matches → shortlist | Only Available yachts with no conflicting confirmed booking surface (BR-4) |
| Quotation / proposal | Proposal assembled from yacht profile (specs, photos, charter PDF), itinerary, charter rate, VAT, standard inclusions, special services & F&B, T&Cs; status Draft → Sent → Viewed → Revision Requested → Accepted / Declined; revision & negotiation loop with version history | Sent via client portal; view tracking; approval without login (BR-14) |
| Cost & offer table | Detailed sheet: hourly rate, yacht fees, tax, visitor / berth fees, security deposit, F&B, entertainment, watersports, transfers, others; payment 1–3 with due dates; standard inclusions; tips (buggy / catering / crew); team commission %, agent commission; bank charges + VAT; APA refund; Total Cost / Total Offer / Total Profit | Profit computed, not typed; visible only to Sales Manager, Finance, Admin |
C · Booking, contract & billing
| Process | System behaviour | Control / rule |
|---|---|---|
| Booking management | Booking + Booking ID on proposal acceptance; details snapshot (date, yacht, guests, duration, marinas, agent); 12-state booking status dashboard per charter | Availability locked on confirmation; Operations notified (BR-4) |
| Contract & KYC | Full KYC (passport / EID, company docs, TRN, proof of address); auto-generate quotation, charter agreement, multiple invoices, NDA, crew agreement, vendor agreements; send for e-signature; store signed set | Booking cannot reach Confirmed without complete KYC + signed agreement (BR-3) |
| Payment management | Multiple / recurring invoices; dated payment schedule (deposit, final balance, security deposit); payment tracking with status Pending / Partial / Paid / Overdue; automated reminders; receipts; Finance Approval → Operational Release | Operations prep blocked until deposit threshold received (BR-5); overdue triggers reminder cadence (BR-13) |
D · Operations & delivery
| Process | System behaviour | Control / rule |
|---|---|---|
| Charter operations | Ops manager assigned; client interaction log (call / meeting, details verification, final guest requirements, final itinerary); ops meeting; checklist instances from templates; charter plan (route & itinerary, weather check, marina coordination, guest manifest, special requests, provisioning order, crew briefing) | "Ready for Charter" gate: crew acknowledged + checklist 100% + no expired mandatory certificate + weather check done (BR-6) |
| Crew management | Captain & crew assignment with roles & responsibilities (captain, steward, deckhand, chef, engineer); crew documents with expiry (licence, STCW, passport, visa, medical); crew acknowledgement | Certificate expiry surfaced against charter date |
| Yacht preparation | Pre-charter checklist, final inspection, ready-for-boarding sign-off | Blocks charter-day start if incomplete |
| Vendor management | Vendor database by category; trade licence / TRN / insurance / contract on file; assign vendor → generate PO → vendor confirmation → post-charter performance rating | Only vendors with valid documents assignable |
| Inventory & water toys | Inventory check; import inclusions from inclusion stock; consumption recorded against charter | Low-stock flag before "Ready for Charter" |
| Charter-day operations | Timeline log: yacht arrival & setup, guest transfer, service-provider arrival, guest arrival & check-in, ID verification, safety briefing, captain introduction, boarding, live status, additional requests, extra charges, incident / complaint reports, completion, check-out, damage inspection, damage report, security-deposit review | Extra charges flow to billing; incidents route to management; damage governs deposit release (BR-12) |
E · Close, aftercare & fleet back-office
| Process | System behaviour | Control / rule |
|---|---|---|
| Financial flow / close | Charter financial log: client payment confirmed, vendor payments, crew payments, commission breakdown (sales / referral / company), additional charges, security deposit released or deducted, company profit, financial closure, receipts, booking closed | Immutable once closed; profit = Total Offer − all logged costs (BR-8) |
| Post-charter | Thank-you email, feedback request, online review request, satisfaction survey, complaint resolution, gift voucher / loyalty points, repeat-charter reminder, automated follow-ups (30 / 90 / annual), upsell prompts (brokerage, sales, management, crew, maintenance, annual package, membership), client status update | All templated in the automation engine |
| Fleet management (backend) | Yacht profile (ID, make/model, builder, year, LOA/beam/draft, engines/hours, capacity, cabins, crew, marina, berth, rates, full specs); media (photos, video, drone, brochures, virtual tour); documents (registration, insurance, survey, safety certificates, service history, warranties); availability calendar; yacht status (Draft / Available / Reserved / Confirmed Charter / Maintenance / Out of Service / Archived) | Reusable for the brokerage sale-inventory register (shared Yacht master) |
| Maintenance & compliance + P&L | Maintenance schedule; preventive tasks (engines, generator, A/C, electrical, plumbing); hull maintenance; cleaning schedule; annual survey; registration / insurance / class renewals; safety inspection; maintenance log; yacht-level P&L | Renewal reminders; expired mandatory certificate makes the yacht non-charterable (BR-6) |
| Automation engine | Workflow library across Sales (lead assignment, follow-up reminders, proposal & quotation generation/approval), Operations (crew / marina / vendor notifications), Finance (invoice generation, payment reminders, receipts, deposit-refund reminders), Client (booking confirmation, charter reminder, weather update, thank-you, feedback, birthday) | Rules editable by Admin without code |
06Brokerage — process architecture
The brokerage map has 15 blocks and two converging pipelines (buyer and seller). Level-1 processes:
A · Demand & qualification (dual intake)
| Process | System behaviour | Control / rule |
|---|---|---|
| Lead capture | Omni-channel; lead type split Buyer / Seller at capture | Duplicate check on existing client / existing yacht / existing company (BR-2) |
| Buyer flow | Consultation within 24 h; buyer questionnaire (purpose — private / charter / investment; budget; preferred type; features & customisation; experience level; length; brand; location; timeline; notes); qualification → register or Follow-Up Pool | 24-hour SLA (BR-1) |
| Seller flow | Consultation within 24 h; seller questionnaire (make & model, year, length, location, asking price, ownership status, loan / mortgage, reason for sale, timeline); qualification → register or Follow-Up Pool | Mortgage / lien flag carried into transaction due diligence |
| Registration + compliance | Client record (name, email, mobile, nationality, location, buyer/seller type, EID / passport, notes); initial KYC / compliance check (individual / corporate documents) → Client Approved | Compliance Officer approval before listing or offer activity (BR-9) |
B · Seller listing management
| Process | System behaviour | Control / rule |
|---|---|---|
| Yacht inspection & documentation | Inspection record; documentation set (general info, marketing materials, registration, licence, ownership, insurance, survey reports, service history) | Ownership evidence required before activation |
| Valuation | Market comparison data + broker valuation → pricing decision (Approved / Adjusted) | Adjusted price requires senior broker sign-off |
| Listing agreement | Agreement type — Exclusive / Open / Co-Brokerage; central listing agreement or referral agreement generated & e-signed; listing activation | Only one active exclusive listing per yacht (BR-10) |
| Marketing launch | Distribution to website, portals, social media, broker network; per-channel status & URL | Auto-renewal reminder before listing end date (BR-10) |
C · Matching, viewing & offer
| Process | System behaviour | Control / rule |
|---|---|---|
| Buyer matching | Buyer profile + agent assignment; matching engine on budget, length, brand, type, location → multiple matches → shortlist → sent to buyer via preferred channel → feedback logged → next action | Start rules-based; "AI recommendation" is a later scoring upgrade |
| Viewing management | Viewing request; buyer verification (EID mandatory; company docs, proof of funds, KYC, LOI, VAT status optional); NDA sent for signature (mandatory); scheduling (date / time, marina, senior broker assigned by Super Admin); viewing conducted; feedback (Interested / Not Interested / Follow-Up); next action | Viewing cannot be scheduled until EID verified AND NDA signed; proof of funds required above a value threshold (BR-9) |
| Offer management | Consultation → yacht matched → auto-generate quotation, commission agreement, invoice, yacht purchase agreement; offer submitted + e-signature; offer log (buyer, seller, amount, currency); seller response (Accept / Reject / Counter); offer history tracking; negotiation cycle; offer accepted → Under Offer status | One active offer per buyer per yacht; counter-offer creates a linked version; acceptance locks the listing (BR-11) |
D · Diligence, transaction & handover
| Process | System behaviour | Control / rule |
|---|---|---|
| Survey & sea trial | Survey ordered → report (Passed / Failed / Conditional); sea trial scheduled & completed; result evaluation; renegotiation if required; Proceed / Cancel / Follow-Up Pool decision | Failed / Conditional result reopens negotiation before YPA finalises |
| Transaction process | Yacht purchase agreement created & e-signed; invoicing; final payment received; ownership transfer initiated; registration update; insurance update; transaction completed | Ownership transfer cannot start before final payment cleared (BR-11) |
| Financial flow | Deal closed (confirmed sales log); buyer payment received (receipt); seller payment (agreed amount, receipt); commission breakdown (broker cost, referral cost, company income); company profit = total income − seller payment − commissions; payments processed (seller, brokers, referrals); financial closure (all payments confirmed, all receipts issued, deal closed in CRM) | Buyer funds tracked in a stakeholder ledger, separate from company revenue (BR-8, NFR-Sec) |
| Delivery & handover | Delivery scheduled; pre-delivery inspection; documentation package prepared; crew briefing (acknowledgement form); client acceptance form; handover completed; delivery certificate signed | Delivery certificate closes the deal record |
| Post-sale management | Automated follow-ups (7 / 30 / 90 / 180 days); client feedback; upsell (yacht management, charter management, maintenance, insurance, crew services, upgrade / trade-in) | Feeds the yacht-management pipeline |
E · Back-office
| Process | System behaviour | Control / rule |
|---|---|---|
| Yachts-for-sale inventory | Yacht profile (ID, make/model, builder, year, length/beam/draft, engines/hours, cabins/guests/crew, flag/location, asking price/currency, full specs); media (photos, drone video, PDF); documents (registration, licence, insurance, survey, ownership, service history); yacht status (Draft / Available / Active Listing / Under Offer / Sold / Off Market) | Same Yacht master as the charter fleet, with an ownership = third-party flag (§9) |
| Pipeline & status board | Separate buyer and seller pipelines; colour-coded indicators (green complete / sold, blue active, yellow pending action, orange offer / negotiation, red lost / cancelled / expired, grey draft / on hold / off market) | Colour derives from state, not set manually (§10) |
07Functional requirements
Requirements are grouped by module and prioritised Must Should Could Won't (now). "Must" defines the Phase 1–3 minimum viable system.
FR-1 · Lead & contact management
FR-2 · Client, KYC & compliance
FR-3 · Yacht master, fleet & sale inventory
FR-4 · Charter enquiry, matching & proposal
FR-5 · Booking, contract & documents
FR-6 · Billing, payments & VAT
FR-7 · Charter operations & charter day
FR-8 · Crew & vendor management
FR-9 · Brokerage listing, viewing & offer
FR-10 · Brokerage transaction & handover
FR-11 · Commission & profitability
FR-12 · Client portal & automation
FR-13 · Maintenance, compliance & reporting
08Business rules catalogue
These are the decisions and constraints the flows imply but do not fully specify. Each needs client confirmation before build; together they are the configurable heart of the platform.
24-hour consultation SLA
When a lead is created, a consultation task is due within 24 hours on the assigned agent. At 75% of the window an agent reminder fires; on breach the lead escalates to the sales manager and is flagged on the dashboard.
The 24-hour promise appears in both flows; without a timer it is unenforceable.
Duplicate detection
A new lead / client is matched against existing records on exact email, exact mobile, exact EID/passport, exact company TRN, and fuzzy (name + nationality + approximate DOB). A match blocks blind creation and offers link-or-merge. Brokerage additionally matches the subject yacht (hull/registration).
"Duplicate check" is a named step but has no rule; ambiguous matching corrupts the client base and commission attribution.
Progression gates
Enquiry → Proposal requires client status = Qualified. Booking → Confirmed requires KYC complete + agreement executed. Brokerage Offer requires Client Approved by Compliance.
Prevents un-vetted deals advancing and creating downstream compliance and payment problems.
Availability locking
Tentative = soft hold, auto-expires after N hours (default 48). Option Held = hard hold with an explicit expiry date. Confirmed = locked. Two overlapping confirmed bookings on one yacht are forbidden; matching and calendars only surface yachts free for the full requested window.
Eliminates double-booking, the single most damaging operational failure.
Operational release
Operations preparation cannot begin until Finance records receipt of at least the configured deposit threshold (default 50%) and issues Operational Release.
Stops the company incurring vendor and provisioning cost against unpaid bookings.
Ready-for-charter preconditions
A charter cannot be marked Ready unless: crew assigned and acknowledged; pre-charter checklist 100% complete; no mandatory yacht certificate expired before the charter end date; weather check recorded within 72 hours of departure.
Codifies the safety and readiness sign-off implied by sections 8–12 of the charter flow.
VAT treatment matrix
Tax is resolved by rule, not entered manually:
| Supply | Condition | Indicative treatment* |
|---|---|---|
| Charter fee | Charter starts in UAE waters, pleasure use | 5% standard-rated |
| Charter fee | Charter starts outside UAE (Maldives, Seychelles, Oman, etc.) | Outside scope of UAE VAT |
| Charter fee | Qualifying commercial / international transport use | Potentially zero-rated — confirm per vessel |
| APA / security deposit | Refundable pass-through | Disbursement — no VAT; VAT applies only to consumed extras |
| Brokerage commission | Services performed for a UAE-resident party | 5% standard-rated |
| Brokerage commission | Services to a non-resident, yacht outside UAE | Potentially zero-rated — confirm place of supply |
*Directional only — the exact matrix must be signed off by Walidia's tax advisor and encoded as editable rules. Multi-jurisdiction VAT is the largest hidden complexity in this build.
Commission & profit engine
Charter: Total Profit = Total Offer − (yacht & fee costs + provisioning + vendor POs + crew + tips + team commission % + agent commission + bank charges). Brokerage: Company Profit = Total Income − Seller Payment − (broker share + referral share + co-broker share). Splits default from the agreement type and are overridable per deal with reason.
Both flows contain a commission table but no calculation rules; this must be a first-class, auditable module.
Brokerage viewing gate
A viewing cannot be scheduled until the buyer's EID/passport is verified and the NDA is signed. Proof of funds is mandatory when the listing asking price exceeds a configurable threshold. Senior broker is assigned by Super Admin.
Protects seller confidentiality and filters non-serious buyers on high-value assets.
Listing validity
Exclusive and co-brokerage listings carry a start and end date. Renewal reminders fire at 30 / 14 / 7 days before expiry. On expiry without renewal the listing moves to Expired and drops from public channels. Only one active exclusive listing may exist per yacht.
"Auto renewal reminder" is named; the surrounding lifecycle rules are not.
Offer lifecycle
At most one active offer per buyer per yacht. A counter-offer creates a new version linked to its parent, preserving history. An accepted offer moves the listing to Under Offer and blocks new offers. Ownership transfer cannot begin until final payment has cleared.
Keeps the offer log coherent and prevents conflicting commitments to a seller.
Security deposit / APA handling
Held in a liability account, never recognised as revenue. Released within N days of charter completion after damage inspection is signed off. Any deduction requires a damage report and Admin approval and generates a client-facing statement.
"Refund APA" and "Security Deposit Review" appear with no governance; mishandling client funds is a compliance and reputational risk.
Payment schedule & dunning
Default schedule: deposit on booking, balance X days before charter, security deposit with balance or on boarding. Overdue items trigger a reminder cadence (e.g. due-date, +2, +5, +10 days) and hold Operational Release.
"Automatic Payment Reminders" is named without a cadence or consequence.
Document versioning & approval
Any change to a client-approved document creates a new version requiring re-approval. Portal approvals capture identity token, timestamp and IP. Superseded versions remain retrievable.
"Approve documents & changes without login" needs an evidentiary trail to be contractually meaningful.
Access & override
Agents see their own records, managers their team, Finance all financial data, Compliance all KYC. Admin can override any state transition; every override records actor, timestamp, before/after and a mandatory reason.
"Admin → Overrides, audit, compliance" is a header only.
Multi-currency
Brokerage offers, agreements and payments are held in the deal currency; the FX rate is captured at offer date and frozen on the deal. All management reporting is presented in an AED base with the rate source recorded.
Offer log includes "Currency"; without rate capture, profit and commission cannot be reported consistently.
09Domain data model
A single model serves both lines. The spine below is shared; charter and brokerage add their own satellites around it.
Core spine
Shared entities
| Entity | Purpose | Key attributes | Principal relationships |
|---|---|---|---|
| Party | Any person or organisation Walidia deals with | type (person/org), name, nationality/flag, addresses, PEP flag | plays many PartyRole; has ContactChannel |
| PartyRole | The hat a party wears on a context | role (client-buyer, client-seller, charterer, guest, referrer, vendor, owner), from/to date | Party → Lead / Opportunity / Listing |
| ContactChannel | Reachable endpoints & preference | kind (email/mobile/WhatsApp), value, preferred, consent | belongs to Party |
| Lead | Unqualified demand | source, business line, lead type, status, SLA timestamps, assigned agent | Party; converts to Client + Opportunity |
| Client | Approved party in a buying role | client ID, type, VIP level, preferences, consent, KYC status | Party; owns Opportunities, Bookings, Deals |
| Employee / User | Internal actor | role, team, targets, active | owns Leads, Activities, Commission Entries |
| Yacht | Unified yacht master — owned/managed or third-party | ID, make/model, builder, year, LOA/beam/draft, engines/hours, capacity, cabins, crew, flag, home marina, rates, ownership flag, status | has Media, YachtDocument, AvailabilityHold; referenced by Enquiry, Booking, Listing, Offer |
| YachtDocument | Vessel paperwork with validity | type (registration/insurance/class/safety/survey/service), issued, expiry, file | belongs to Yacht; drives compliance reminders |
| Media | Marketing assets | kind (photo/video/drone/brochure/tour), URL, order, rights | belongs to Yacht / Listing |
| Marina / Location | Geographic reference | name, country, coordinates, berth info | referenced by Booking, Viewing, Charter Plan |
| KYCDocument | Client due-diligence evidence | type, expiry, verification status, reviewer, verified date | belongs to Client / Party |
| DocumentTemplate | Merge-field master for generated docs | type, body, applicable line, version | produces Document |
| Document | A generated instance | type, version, status, generated from, parent version | belongs to Opportunity/Booking/Deal; has ESignEnvelope |
| ESignEnvelope | Signature request | provider, signers, status, completed file, audit hash | wraps one or more Documents |
| Activity / Task | Work item & "next action" | type, due, assignee, status, subject reference | polymorphic to Lead / Opportunity / Booking / Deal |
| CommunicationLog | Interaction history | channel, direction, body, thread ID, timestamp | belongs to Party / Opportunity |
| TaxRule | Editable VAT resolution | supply type, jurisdiction condition, rate, treatment, effective dates | consumed by Invoice line calc |
| Invoice | Billing document | number, currency, FX rate, status, line items, tax lines | belongs to Booking / Deal; has ScheduleItem, Payment |
| PaymentScheduleItem | Dated expectation | type (deposit/balance/security), due date, amount, status | belongs to Invoice / Booking |
| Payment | Money received or paid | direction, method, amount, currency, date, allocation | settles ScheduleItems / Invoices; issues Receipt |
| Receipt | Acknowledgement of payment | number, amount, party, linked payment | belongs to Payment |
| CommissionPlan | Rule set by line / agreement type | gross rate basis, split definitions, VAT handling | instantiates CommissionEntry |
| CommissionEntry | One payee's share on one deal | payee, basis, %, amount, VAT, payment status | belongs to Booking / Deal |
| FinancialLog | Immutable per-deal ledger | line category, cost/income, amount, source ref, locked | rolls up to Yacht P&L and company profit |
| AutomationRule | Trigger → condition → action | event, filter, actions, channel, active | emits Notification |
| Notification | Outbound message instance | template, channel, recipient, status, sent at | from AutomationRule / manual |
| PortalToken | Magic-link session for a client | token, scope, expiry, consumed events | grants access to Documents / Invoices |
| AuditLog | Immutable change record | actor, action, entity, before, after, reason, timestamp | references any entity |
| FeedbackResponse | Post-engagement sentiment | type (review/survey/NPS), score, comments, resolution | belongs to Booking / Deal / Client |
| LoyaltyLedger | Points & vouchers | entry type, points, voucher code, expiry | belongs to Client |
Charter satellites
| Entity | Purpose | Key attributes | Principal relationships |
|---|---|---|---|
| CharterEnquiry | The charter opportunity | experience type, dates + alternates, duration, timings, guests (adult/child), destination, route, marinas, questionnaire answers, inquiry status | Client; produces ShortlistItem, Proposal, Booking |
| MatchResult / ShortlistItem | Engine output | yacht, score, reasons, client feedback | CharterEnquiry → Yacht |
| Proposal | Priced offer to the client | selected yacht, itinerary, rate, inclusions, extras, T&Cs, status, version | CharterEnquiry; has CostOfferTable; becomes Booking |
| CostOfferTable | Full costing worksheet | all fee & cost lines, payments 1–3 + due dates, tips, commissions, bank charges, APA refund, totals & profit | belongs to Proposal / Booking |
| Booking | Confirmed charter commitment | booking ID, yacht, dates/times, guests, duration, marinas, agent, 12-state status | Proposal; has AvailabilityHold, Charter, Invoices |
| AvailabilityHold | Calendar claim on a yacht | kind (tentative/option/confirmed), from, to, expiry | Yacht ↔ Booking |
| Charter | Operational record (1:1 with confirmed Booking) | ops manager, readiness state, ops meeting notes | Booking; has ChecklistInstance, CharterPlan, CrewAssignment, CharterDayLog |
| ChecklistTemplate / ChecklistInstance / ChecklistItem | Repeatable operational controls | item text, responsible role, due offset, done, done by | Charter |
| CharterPlan | Voyage planning | finalised route & itinerary, weather check, marina coordination, special requests | Charter |
| GuestManifest / Guest | Who is aboard | name, ID reference, dietary, notes | Charter |
| CrewMember | Crew register | role, certifications + expiry, availability | referenced by CrewAssignment |
| CrewAssignment | Crew on a charter | role, responsibilities, acknowledgement, acknowledged at | Charter ↔ CrewMember |
| Vendor | External service supplier | category, trade licence, TRN, insurance, contract, rating | has PurchaseOrder |
| PurchaseOrder | Committed vendor spend | vendor, lines, amount, status, confirmation | Charter ↔ Vendor |
| ProvisioningOrder | Consumables & catering | items, supplier, cost, delivery | Charter |
| InventoryItem | Water toys & inclusion stock | name, quantity on hand, reorder level | consumed by Charter |
| CharterDayLog / TimelineEvent | Live execution record | event type, time, note, media | Charter |
| ExtraCharge | On-the-day additions | description, amount, VAT, billed | Charter → Invoice |
| IncidentReport | Complaint / incident | type, description, severity, resolution | Charter |
| DamageInspection / DamageReport | Post-charter condition check | findings, cost estimate, photos, approval | Charter → SecurityDeposit |
| SecurityDeposit | Refundable client float | amount held, deductions, released amount, released date | Booking |
| MaintenanceJob / MaintenanceLog | Fleet upkeep | type, schedule, status, cost, completed | Yacht |
| ComplianceItem | Renewable certificate tracker | certificate type, due date, status | Yacht → reminders |
Brokerage satellites
| Entity | Purpose | Key attributes | Principal relationships |
|---|---|---|---|
| BuyerProfile | What a buyer wants | purpose, budget range, preferred type, features, experience level, length, brand, location, timeline, notes | Client; drives BuyerMatch |
| SellerIntake | Seller's yacht & terms | make/model, year, length, location, asking price, ownership status, loan/mortgage, reason for sale, timeline | Client; produces Listing + Yacht |
| Valuation | Pricing evidence | market comparison data, broker valuation, recommended price, decision (approved/adjusted) | SellerIntake / Listing |
| Listing | An active mandate to sell | yacht, seller, agreement type (exclusive/open/co-brokerage), price, start & end date, status, central/referral agreement ref | Yacht + Client; has MarketingChannel, Offer |
| MarketingChannel | Where a listing is published | channel, status, external URL, published/removed dates | Listing |
| BuyerMatch / ShortlistItem | Listings proposed to a buyer | listing, score, sent channel, buyer feedback | BuyerProfile ↔ Listing |
| Viewing | An arranged inspection | buyer, listing, assigned broker, date/time, marina, status, feedback (interested/not/follow-up) | has BuyerVerification, NDA envelope |
| BuyerVerification | Pre-viewing gate evidence | EID/passport (mandatory), company docs, proof of funds, KYC, LOI, VAT status | Viewing |
| Deal | The brokerage opportunity linking buyer, seller, listing | pipeline stage, currency, FX rate, expected value | Listing + buyer Client; has Offer, Survey, Transaction |
| Offer | A price proposal | buyer, seller, listing, amount, currency, version, parent offer, status | Deal; generates Documents; has OfferEvent |
| OfferEvent | Negotiation history entry | action (submit/counter/accept/reject/withdraw), amount, actor, timestamp | Offer |
| SurveyOrder | Condition survey | surveyor, scheduled, report, result (passed/failed/conditional) | Deal |
| SeaTrial | On-water test | scheduled, completed, result evaluation | Deal |
| YachtPurchaseAgreement | The binding contract | parties, price, conditions, signed file | Deal (Document subtype) |
| Transaction | Completion process | invoicing, final payment, ownership transfer, registration update, insurance update, status | Deal; has OwnershipTransfer |
| OwnershipTransfer | Title change record | flag state, old/new owner, registration ref, effective date | Transaction → Yacht |
| DeliveryHandover | Physical & documentary handover | delivery schedule, pre-delivery inspection, doc package, crew briefing ack, client acceptance form, delivery certificate | Deal |
| StakeholderLedger | Client-money account, separate from revenue | buyer funds in, seller/broker/referral paid out, balance | Deal |
Why one Yacht master matters. Charter Fleet (§17 of the charter map) and Yachts-for-Sale Inventory (§12 of the brokerage map) describe near-identical structures. Modelling them as one Yacht entity with an ownership flag means a managed yacht can be listed for sale without re-keying, an owner's charter history informs its valuation, and the same media and document vault serves both. This is the highest-leverage modelling decision in the blueprint.
10Lifecycles & state models
Each pipeline colour on the status board is derived from these states, never set by hand.
Charter booking status
Charter enquiry / inquiry status
Proposal status
Brokerage — buyer pipeline
Brokerage — seller pipeline
Listing status
Offer status
Yacht (fleet) status
Status-board colour mapping
| Colour | Meaning | Example states |
|---|---|---|
| Green | Completed / sold / closed won | Completed, Sold, Closed Won, Handover Completed |
| Blue | Active / in progress | Confirmed, Active, Operation In Progress, Matched |
| Yellow | Pending action / follow-up required | Waiting Client, Follow-Up, Awaiting Documents |
| Orange | Offer received / under review / negotiation | Offer, Negotiation, Under Offer, Revision Requested |
| Red | Closed lost / cancelled / rejected / expired | Cancelled, No Show, Declined, Rejected, Expired, Closed Lost |
| Grey | Draft / on hold / off market | Draft, Option Held (lapsed), Off Market |
11Integrations
| Capability | Purpose | Options | Phase |
|---|---|---|---|
| WhatsApp Business API | Lead capture, client notifications, approvals — the primary GCC channel | Meta Cloud API via provider (360dialog, Twilio, Wati); native in Zoho | 1 |
| Transactional email + inbox sync | Proposals, invoices, reminders; two-way conversation capture | Native to Odoo/Zoho; or Postmark / SES | 1 |
| E-signature | Agreements, NDAs, YPAs, delivery certificates | Odoo Sign / Zoho Sign / DocuSign | 1 |
| Accounting & VAT filing | FTA-compliant ledger, VAT returns, audit file | Native (Odoo Accounting UAE / Zoho Books); or integrate existing ledger | 1 |
| Payment gateway | Card / online deposit & balance payment via portal | Telr, Network International, Stripe, PayTabs | 2 |
| Bank feed | Statement import & reconciliation | Bank API / OFX / manual import | 2 |
| Website lead forms | Capture enquiries from walidiayachts.com | Webhook / form API to lead intake | 1 |
| Calendar sync | Charters, viewings, crew schedules, surveys | Google / Microsoft 365 two-way | 2 |
| Weather data | Pre-charter weather check & client weather updates | OpenWeather / StormGlass / PredictWind | 2 |
| Yacht marketplace syndication | Push brokerage listings to portals | YachtWorld / BOAT / TheYachtMarket feeds | 3 |
| Document storage | Large media & signed-document archive | Native filestore + S3 / Cloudflare R2 backing | 1 |
| BI / analytics | Owner & management reporting beyond built-in dashboards | Odoo/Zoho Analytics; or Metabase / Power BI | 3 |
12Non-functional requirements
Localisation
- Multi-jurisdiction (6 countries), multi-currency with AED base reporting
- English + Arabic UI and documents, RTL support
- Locale-aware dates, numbers, VAT numbering
Security & compliance NFR-Sec
- Role-based + record-level + field-level access
- Client-money (APA, buyer funds) on a segregated ledger
- UAE PDPL + GDPR (EU guests); AML/KYC 5-year retention
- Encryption at rest & in transit; MFA for staff
Auditability
- Immutable audit log on every state change and override
- Financial log locked on closure
- Document version history retained
Availability & performance
- Small concurrent user base (< 50) but document- & media-heavy
- 99.5% uptime target; nightly backup, ≤ 24 h RPO
- Portal pages load < 2 s on mobile networks
Usability
- Mobile-first for crew & brokers working dockside
- Charter-day checklist usable one-handed
- Consistent status colours across every board
Configurability
- Tax rules, commission plans, checklist & document templates, automation rules all admin-editable without code
- New picklist values (catering, watersports, experience types) self-service
13Build options & recommendation
| Criterion | Odoo Enterprise + custom modules | Zoho One + Creator | Low-code (Power Platform / Bubble) | Fully custom |
|---|---|---|---|---|
| Fit to these flows | High — CRM, sales, fleet, maintenance, inventory, sign, portal native; 2 custom modules | Medium-high — strong CRM/finance; ops depth hits Creator limits | Medium — flexible but you build most domain logic | Exact — you build everything |
| Time to first go-live | 3–5 months | 2–4 months | 4–7 months | 9–15 months |
| Implementation cost | USD 40–90k | USD 20–45k | USD 50–120k | USD 150–350k+ |
| 3-year TCO | Low–medium | Lowest | Medium (per-user licensing scales) | Highest (permanent dev team) |
| VAT / accounting | Native, FTA-ready | Native (Zoho Books) | Integrate external ledger | Build or integrate |
| Operational / maintenance depth | High | Medium | Medium–high | High |
| Code & data ownership | Yes — self-hostable | Partial — platform-locked | Partial — platform-locked | Yes |
| Key risk | Partner quality; some UI compromise | Hitting Creator ceiling on ops | Licensing creep; governance | Cost, timeline, rebuilding commodity plumbing |
Recommendation — Odoo Enterprise + custom modules
Base platform: Odoo Enterprise — CRM (two pipelines), Sales, Accounting (UAE localisation), Inventory + Purchase, Fleet, Maintenance, Sign, Documents, Project, Portal, Studio for light customisation.
Custom module 1 — Charter Operations: enquiry & matching engine, cost/offer table, booking status board, availability locking, checklists, charter plan, crew, provisioning, charter-day log, security-deposit handling, per-charter financial log.
Custom module 2 — Brokerage Transactions: buyer/seller intake, valuation, listing & agreement lifecycle, marketing distribution, viewing with KYC/NDA gates, offer & counter-offer log, survey & sea trial, YPA & transaction, delivery & handover, stakeholder ledger.
Shared engine — Commission & Tax rules: configurable split logic and the VAT matrix (BR-7, BR-8).
Why: ~70% of the requirement is commodity ERP that Odoo ships as product; spend the budget on the 30% that is genuinely Walidia's; keep the source; run it cheaply; extend to yacht management later without re-platforming.
14Delivery roadmap
Discovery & design
3–4 weeks- Confirm entity model, VAT matrix, commission rules with Walidia's tax advisor
- Finalise document templates, role/permission matrix, automation catalogue
- Data-migration assessment; select implementation partner; sign SOW
Charter core
6–8 weeks- Lead → client → KYC → enquiry → matching → proposal → booking
- Cost/offer table, multi-invoice billing, payment schedule, VAT engine, receipts
- Yacht master + fleet register + availability calendar
- E-signature, client portal (view + approve), core automations
- Go-live 1 — charter sales & billing operational
Charter operations
6–8 weeks- Checklists, charter plan, crew management, vendor & purchase orders, provisioning, inventory
- Charter-day mobile log, extra charges, incidents, damage & security-deposit handling
- Per-charter financial log, commission engine, per-yacht P&L
- Maintenance & compliance register
- Go-live 2 — full charter lifecycle
Brokerage
8–10 weeks- Buyer/seller pipelines, intake, valuation, listing & agreement lifecycle, marketing distribution
- Buyer matching, viewing with KYC/NDA gates, offer & counter-offer log
- Survey & sea trial, YPA & transaction, ownership transfer, delivery & handover
- Stakeholder ledger, brokerage financial closure
- Go-live 3 — brokerage lifecycle
Automation, portal & analytics
4–6 weeks- WhatsApp Business API lead capture & notifications; portal payments & KYC upload
- Full automation library, follow-up cadences, loyalty & feedback
- Owner / management dashboards, broker performance, portal syndication
Yacht management line
later- Owner reporting, management contracts, budgets vs actuals, crew payroll integration
Indicative — roughly 7–9 months to Go-live 3 with one partner team plus a Walidia product owner, compliance reviewer and finance reviewer engaged throughout.
15Risks, assumptions & open questions
Key risks
| Risk | Impact | Likelihood | Mitigation |
|---|---|---|---|
| Multi-jurisdiction VAT treatment wrong or incomplete | High — compliance penalty, restated invoices | Medium | Tax-advisor-signed rule matrix in Phase 0; encode as editable rules; review each new market |
| Commission split disputes from ambiguous rules | Medium — payment delays, broker trust | Medium | First-class commission module with per-deal audit; sign off default plans per agreement type |
| Client-money handling not properly segregated | High — regulatory & reputational | Low–medium | Stakeholder ledger separate from revenue; bank-account mapping confirmed in Phase 0 |
| Scope creep across two lines in one programme | Medium — timeline & budget | High | Phased go-lives; MoSCoW discipline; change-control on "Should/Could" |
| Implementation-partner capability on yacht-specific modules | Medium | Medium | Reference-check Odoo partners with marine / rental experience; fixed-price custom modules against this spec |
| Data migration from spreadsheets messy / incomplete | Medium | High | Migration assessment in Phase 0; cleanse before cutover; parallel run for one billing cycle |
| Crew / ops adoption of mobile checklists | Medium — data gaps on charter day | Medium | Design with crew input; keep it one-handed; make "Ready for Charter" depend on it |
Working assumptions
- Walidia is willing to adopt a platform product (Odoo/Zoho) rather than insist on bespoke UI everywhere.
- Concurrent internal users are under ~50; charter volume is tens per month, listings tens at a time.
- A GCC implementation partner is engaged; Walidia provides a product owner plus finance and compliance reviewers.
- English + Arabic covers the language requirement for launch.
- The public website stays as-is and integrates via form webhooks.
Open questions for Walidia
- Team size and structure per role (sales, brokers, operations, finance, compliance)?
- Is there an existing accounting system to integrate with, or should the platform own the ledger?
- Which legal entity / entities issue invoices, and how many VAT registrations apply?
- For brokerage — do you hold buyer funds, and under what banking / stakeholder-account arrangement?
- Standard commission rates and default split percentages for exclusive / open / co-brokerage / referral?
- Charter model — do you operate APA, or all-inclusive pricing, or both?
- Who owns the fleet yachts — Walidia, or third-party owners under management (affects P&L split and owner reporting)?
- Existing tools and data volume to migrate (CRM, spreadsheets, document stores)?
- Preferred or contracted e-signature and payment-gateway providers?
- Is a WhatsApp Business API number already provisioned?
- Which yacht marketplaces do you syndicate brokerage listings to?
- Languages required in the client-facing portal and generated documents?
- How much client self-service in the portal — online payment, KYC upload, document approval only?
- Target budget range and desired first go-live date?
Prepared as a business-analysis and solution blueprint for Walidia Yachts, from the Charter Flow and Brokerage Flow process maps and a review of walidiayachts.com. Cost and timeline figures are planning-grade and must be confirmed against a scoped statement of work. Draft v1 — for stakeholder review and the open-questions workshop.