XEQT
Confidential Proposal

PROP2606021

XEQT × FCTP

Contact erik@xeqt.co.za for access
XEQT XEQT · Proposal · v1.0 · 2026-06-03
Prepared for Fly Cape Town Paragliding
Proposal & SaaS Agreement

Sixteen years of paragliding craft. Twelve weeks of automation. One platform that pays for itself.

A purpose-built operations system for Fly Cape Town — confirmed bookings via R 300 deposits, shareable branded videos delivered within two hours of landing, WhatsApp-first reschedules instead of phone marathons, Friday instructor payroll calculated automatically, and an offline-capable pilot PWA built for Signal Hill. Live and tested before the September peak.

Prepared byErik Bester · XEQT
Prepared forStephan Kruger · Fly Cape Town
Date3 June 2026
Valid until3 July 2026 · 30 days
Documentv1.0
Contents

Twenty-one sections.

  1. Executive summary
  2. The problem we're solving
  3. Scope — what we'll build (R1)
  4. Out of scope (and why)
  5. Delivery timeline
  6. Definition of Done
  7. Build your bundle — pick the features you want
  8. Commercials — build phase
  9. Monthly retainer — what's included
  10. Per-jump operating fee
  11. Pricing comparison — A vs B at your selected scope
  12. Intellectual property & licence
  13. Service levels & uptime
  14. Data, POPIA & confidentiality
  15. Liability & indemnity
  16. Change control
  17. Term, renewal & termination
  18. Exit, transition & data export
  19. Standard SaaS clauses
  20. Client notes — optional comments before signing
  21. Signatures & agreement
01 · Executive summary

What this proposes, in one paragraph.

XEQT will build and operate a custom operations platform for Fly Cape Town Paragliding, designed around the audit findings of 2 June 2026. The platform automates the highest-pain workflows identified in the audit — instructor payroll, branded video delivery within 2 hours of landing, R 300 deposit collection across Yoco / PayPal / PayFast, WhatsApp-driven booking reschedules, an offline-capable pilot PWA, auto-generated training certificates, and a CPA-compliant gift voucher system. Delivery is 12 weeks, live before the September high season.

Build your scope in Section 7. Commercial structure in Sections 8–11. Sign in Section 21.

02 · The problem we're solving

What the audit surfaced.

The audit on 2 June 2026 identified five compounding operational drags, all currently absorbed by Malvern (bookings, changes & reschedules) through manual phone and WhatsApp work.

  1. Friday payroll is the single biggest time waster. Manually calculating jumps + video orders per instructor for weekly payment is hours of admin and error-prone.
  2. No deposits = double bookings & no-shows. Tourists shotgun multiple operators; FCT absorbs the no-show cost. R 200 was proposed in audit; this proposal recommends R 300 (~17%) with a guaranteed-slot priority on weather reschedules — behavioural commitment threshold proven in adventure activity benchmarks.
  3. Video delivery is broken. 2 GB GoPro-to-phone transfer requires storage, time, and fails routinely. 90% of clients take video — every one of those is currently a missed marketing flywheel.
  4. Reschedule comms don't scale. Calling every affected client on a no-fly day costs hours. WhatsApp with confirmation buttons collapses that to minutes for the willing, escalating to call only when needed.
  5. Pilots have no field tool. Signal Hill has poor connectivity. Bookings live in messages; jumps are logged later from memory or paper.

Each in-scope item in Section 3 maps directly to one of these drags, with measurable success criteria in the Definition of Done (Section 6).

03 · Scope — what we'll build (R1)

Seven features. Twelve weeks. Fixed price.

All selected features ship in the same 12-week window at R 90,000 build + R 5,000 / month. Other items raised in the audit — accommodation referral platform, course landing pages, Google Calendar sync, multi-language booking flow — are parked in R2/R3 (see Section 4) and priced separately if and when FCT wants to extend.

F1
Friday morning · 8am · The pain you know

From four hours of payroll math every Friday to four minutes of approve-and-send.

The biggest time waster on your week disappears. Friday becomes the day you confirm next week's bookings — not the day you do maths.

Today

Open Paragliding Logbook. Count jumps per pilot. Cross-reference video orders from messages. Subtract Cape Nature fee in your head. Re-check, because one missed entry means an awkward conversation with a pilot on Monday.

~3–4 hours every single Friday. Errors weekly. SARS reporting at year-end is a separate week of pain.

With XEQT

06:00 Friday morning, a per-instructor CSV lands in your inbox. Every jump counted. Every video order added. Cape Nature fee separated into its own ledger. One-click EFT batch upload to your bank. Pilots paid by 09:00.

Year-end SARS-ready report is one click. Your accountant sends a thank-you.

~3.5 hrs
Saved every Friday
182 hrs
Per year — 4½ work-weeks back
R 0
Calculation errors after week 1
100%
Reconciles to Paragliding Logbook

What it entails

  • Friday 06:00 cron job aggregating per-instructor jumps + video orders from the booking database
  • Paragliding Logbook integration (CSV import or web scrape, whichever is supported)
  • Configurable per-instructor share split (different rates for senior vs junior pilots)
  • Cape Nature fee deducted into a separate pass-through ledger — never confused with instructor income
  • EFT-ready CSV download for one-click batch payment from your bank's portal
  • Per-instructor history page — pilots can self-serve "what was I paid for jump #847"
  • Year-end SARS-ready summary report for the accountant (PAYE vs contractor treatment flagged)
Acceptance criteria

Friday 06:00, Erik can produce a per-instructor payroll CSV for the prior week in under 5 minutes, reconciling to within R 0 against manual calculation across 50 sample jumps.

F2
Landing field · The marketing channel you didn't know you had

Every flight is a marketing campaign. Stop hand-delivering 2GB files at the landing field.

90% of your customers want the video. Right now you give it to them in the worst possible way. Branded shareable links turn every flight into 50+ Instagram impressions for Fly Cape Town — across an audience you already command.

Today

"Plug your phone in here… no, it needs 2GB free… AirDrop's not working… can you delete some photos…" Customer walks away with a copy of THEIR moment. The video lives on their camera roll until they delete it.

Your brand was on the canopy in the sky. It's nowhere in the file.

With XEQT

Ground crew drops the GoPro card into the landing-field tablet. Footage uploads in the background. Auto-edited 30–60s social cut with Fly Cape Town intro, music bed, and "Book yours" CTA lands in the customer's WhatsApp within 2 hours.

R 400 customers get the full raw + extended cut at the same link. Everyone shares.

0 min
Pilot / ground-crew time per video
2,100+
Branded videos shared per year
~100K
Free annual brand impressions
~10%
Expected tandem conversion lift

What it entails

  • GoPro upload pipeline — ground-crew tablet → cloud queue, async, no pilot involvement
  • Auto-edit engine — highlight detection, branded intro + outro, music bed, FCT logo bug
  • Per-flight branded landing page at flycapetown.co.za/v/{code} with Book Now CTA
  • Cloudflare R2 storage — 90-day raw retention, indefinite social-cut retention as marketing asset
  • WhatsApp + email delivery within 2 hours of landing, with branded preview thumbnail
  • R 400 paid customers get raw + extended cut as additional downloads from the same portal
  • Re-share / re-download available to customers indefinitely — long after their flight
Acceptance criteria

95% of flights have a shareable branded video link delivered to the customer within 2 hours of landing. Pilot has zero new tasks (upload happens via ground-crew tablet).

F3
The booking that pays before it flies

Confirmed bookings, not gentlemen's agreements. Cashflow that doesn't depend on no-shows.

Every tourist who books you also books two competitors "just in case." You absorb the cost. A R 300 deposit changes the math — once they've paid, they're flying with you, not with whoever the wind favoured.

Today

WhatsApp commitment, no card. Tourist double-books your competitors. Marginal weather morning, only one slot opens — at the operator who flies first. You hold a slot, lose a customer, eat the cost.

Friday's revenue is uncertain until Friday. International cards may decline at the last moment. Refunds are an argument waiting to happen.

With XEQT

Booking takes R 300 upfront via Yoco, PayPal, or PayFast. Deposit customers pay R 1,400 on the day — R 1,700 total, saving R 100. Pay-at-end customers pay R 1,800 on the day but lose guaranteed-slot priority on weather reschedules.

Failed payments trigger automatic escalation: WhatsApp first, email if no reply, staff call only if still nothing. Most lost bookings recover themselves before Malvern picks up the phone.

~5%
No-shows prevented (audit baseline)
R 189K
Annual revenue protected
7+ days
Cashflow visibility ahead
−30%
"Are you flying tomorrow?" pings

What it entails

  • Yoco SDK — in-person card, SnapScan, offline-capable for landing-field pay-at-end
  • PayPal merchant integration — international cards with automatic currency conversion
  • PayFast Instant EFT — embedded into the website booking flow for SA bank customers
  • R 300 deposit on booking. Deposit path: R 1,400 day-of (R 1,700 total, R 100 saving). Pay-at-end path: R 1,800 day-of.
  • Pay-at-end remains optional — but loses guaranteed-slot priority on weather reschedules
  • Refund policy with WhatsApp acknowledgment, signed at booking — kills 90% of refund arguments
  • Failed-payment escalation ladder: WhatsApp retry with alternative method → email follow-up after 4 hours → staff phone call after 24 hours. Recovers ~80% of declined-card bookings without human intervention.
Acceptance criteria

Booking flow accepts R 300 deposit via all three processors. Deposit customers' final amount calculates correctly at R 1,400 (R 100 saving applied). Refund policy displayed and acknowledged on confirmation. Failed-payment escalation ladder fires automatically; declined-card recovery rate measured monthly (target > 70%).

F4
Bad weather morning · Malvern's worst day

Mass reschedules in minutes, not hours. Malvern picks up the phone only when WhatsApp can't do the job.

Right now every mass reschedule costs Malvern half a day. With XEQT, he approves one template, hits send, and watches 70% of customers confirm via WhatsApp in 30 minutes. The remaining 30% he calls — because they actually need a call.

Today

5am wind check, no-go. 30 bookings to reschedule. Malvern picks up the phone. First call. Voicemail. Second call. Different time zone. Third call. They've already booked another operator. By lunchtime he's still on the phone, half of them haven't been reached, and bookings stall.

With XEQT

Malvern ticks the affected bookings. Picks a pre-approved WhatsApp template. Hits Send. Every customer gets a message with three quick-reply buttons: Accept new slot · Suggest another · Cancel and refund. By 06:00, 70% have replied. Malvern calls only the 30% who didn't.

Faster on a 30-reschedule day
70%+
Confirmations via tap, not call
100%
Audit trail per booking
0
"Did they get my message?" worry

What it entails

  • WhatsApp Business API integration via Meta (approval lead time absorbed in Week 1)
  • Pre-approved templates per scenario — weather-cancel, time-shift, multi-day reschedule, refund
  • Quick-reply buttons designed for each template: Accept · Suggest another · Cancel
  • Mass-dispatch UI inside the platform — select affected bookings, preview, send to all in one action
  • Tiered escalation: read + no reply in 30 min → call queue. Delivered but unread in 2h → call queue. Failed delivery → immediate call.
  • Per-booking audit trail: who sent, when, who replied, when, what they chose — for insurance & disputes
  • Opt-in auto-reschedule for repeat customers — they trust you, you trust them, no confirmation needed
  • Bot knows your refund rules. Customer asking to cancel? It checks the flight date. 48h+ out → full refund processed. Within 48h → deposit converts to a R 300 gift voucher (CPA-compliant, 3-year validity, transferable) — see F7. The conversation never escalates to Malvern.
Acceptance criteria

70%+ of reschedule confirmations come back via WhatsApp without a staff call required. Staff call required only on read-no-reply, delivery failure, or customer request. Full audit trail per booking.

F5
Top of Signal Hill · One bar of signal

The right information in the pilot's pocket, even when Signal Hill drops a bar.

The irony of Signal Hill: it's where you fly, and it's where the signal disappears. With the XEQT PWA, every booking detail lives offline on the pilot's phone. The whole flight day runs from one tap — and syncs cleanly when coverage returns.

Today

Pilot loads bookings from WhatsApp or memory. Looks up the customer's weight while the wind shifts. Tries to take a Yoco payment over patchy signal. Photos taken on the pilot's phone may or may not get uploaded later. Indemnity status: hopefully on the printed form in the bag.

With XEQT

Pilot opens the PWA before driving up — today's manifest pre-cached with every customer's weight, medical declaration, emergency contact, IndemniFly status. Mark each flight complete with one tap. Capture Yoco payment offline, queued. Photos auto-queue for the video portal. Drives down — everything syncs.

100%
Data captured at point of action
0
Downtime from signal drops
~15 min
Saved per pilot per day vs paper
Insurance-grade
Audit trail per flight

What it entails

  • Progressive web app — install from browser, no App Store, no Play Store, no review delays
  • Offline-first architecture with service worker — pre-loads the day's manifest before drive-up
  • Customer detail view: name, weight, medical declaration, emergency contact, language, paid status
  • Mark-flight-complete workflow with timestamp + GPS — feeds payroll and video portal automatically
  • Yoco offline payment SDK — captures pay-at-end clients without signal, syncs when reconnected
  • Photo queue for video portal — landing-field photos upload async on return to coverage
  • IndemniFly status per customer — green/red flag visible at a glance
  • Tested on real iOS Safari and Android Chrome at Signal Hill before sign-off
Acceptance criteria

Pilot can complete a full flight day on Signal Hill with no cell signal: view manifest, mark each flight done, queue payments and uploads, sync cleanly on return to coverage. Tested on iOS Safari and Android Chrome.

F6
The hour you didn't know was free revenue

Every tandem is hour one of a SAHPA Basic License. Most customers don't know that yet. Tell them — automatically.

A tandem flight at Fly Cape Town legally counts as 1 hour toward a SAHPA Basic License. Customers don't know this. With XEQT, every flight ends with a certificate in their inbox saying "1 of 35 hours logged" — and a follow-up email 30 days later asking if they want hour 2. Even at 1% conversion, that's R 400,000+ of pure course revenue per year, from customers you already had.

Today

Customer flies tandem, gets video, leaves. No formal connection between the tandem and the courses page. They don't know their flight counts toward a license. Course revenue depends entirely on cold website traffic finding /paragliding-training/. The "what's next" conversation never happens.

With XEQT

Within 24h of every flight, customer receives a personalised PDF certificate: "1 of 35 training hours logged toward your SAHPA Basic License." Their name, the date, their instructor's signature, Signal Hill. 30 days later, an email: "Hey [name], your hour is still logged. Want hour 2?" Click-through goes straight to the courses page.

100%
Flights certificated within 24h
~21 / yr
Course conversions at 1%
R 420K+
Annual course revenue at 1% conversion
Customer LTV when the path is visible

What it entails

  • PDF certificate template — Fly Cape Town branded, instructor signature, customer name, date, Signal Hill
  • Auto-generation triggered on flight completion in the PWA — within 24 hours, no manual step
  • Email + WhatsApp delivery with download link — both reach SA customers reliably
  • 30-day automated follow-up email — "Want to make it 2?" with one-click link to courses page
  • Engagement dashboard — open rate, click-through, courses-page visits, conversions tracked monthly
  • A/B testing on follow-up copy after 90 days — optimise the conversion ratio over time
  • Sleeping conversion funnel pays back the entire build phase if it lands a single course customer
Acceptance criteria

100% of completed flights generate a certificate PDF within 24h. 30-day follow-up fires automatically. Open-rate and click-through reported monthly; goal > 1% tandem-to-course conversion by month 6.

F7
The voucher economy you've been giving away in chat

Sell vouchers, redeem vouchers, convert refunds to vouchers — all in one place, CPA-compliant by design.

Right now gift vouchers are sold ad-hoc, tracked in your head. Tomorrow they're a managed product on the website. And quietly, this is also the system that lets you keep last-minute cancellation deposits — converted to vouchers under the Consumer Protection Act — so weather or wedding cold feet don't cost you revenue.

Today

Gift vouchers sold via WhatsApp, tracked in your head. No central record of who bought, gifted, or redeemed. Customers cancelling within 48 hours either get a refund (revenue lost) or argue (relationship strained). Voucher rules and validity vary case-by-case.

With XEQT

Gift voucher store live on flycapetown.co.za — one-click purchase, choose recipient, custom message. PDF voucher emailed to the recipient, redeemable on any future booking. Customer cancels within 48h? Their R 300 deposit becomes a R 300 voucher in their name — CPA-compliant, 3-year validity, transferable, gift-able.

100%
Vouchers tracked & auditable
R 0
Deposit revenue lost on 48h cancellations
3 yr
CPA-compliant voucher validity
Transferable
Gift-able by design

What it entails

  • Gift voucher store on the website — purchase via Yoco / PayFast / PayPal in one click
  • Unique-code branded PDF voucher generator — FCT branding, recipient name, custom gift message
  • Two-recipient flow: buyer's email gets the receipt; recipient's email gets the voucher
  • Redemption at booking — apply code, system calculates remaining balance, supports partial redemption
  • CPA-compliant by default: 3-year validity from purchase, transferable to anyone, non-cash-refundable, terms printed on every voucher
  • Deposit-to-voucher auto-conversion: last-minute cancellations within 48h of flight time convert the R 300 deposit into a R 300 voucher in the customer's name, immediately redeemable or gift-able
  • Owner dashboard: outstanding voucher liability for accounting, redemption rate by month, expiring-soon flags, monthly statement
Acceptance criteria

Vouchers purchasable from flycapetown.co.za with a one-click flow. Cancellations within 48h of flight time automatically convert deposits into vouchers per the published refund policy. Monthly statement shows outstanding voucher liability (R total, count) for accounting reconciliation.

04 · Out of scope (and why)

What we will not deliver in R1.

Explicitly out of scope below. Any of these can be scoped & priced separately under the change-control process in Section 16, or contracted as a new engagement.

ItemWhy parkedIndicative path
Accommodation / hotel referral platformSeparate XEQT product. Not FCT IP. Confirmed in audit as XEQT-owned with FCT as anchor tenant.Separate XEQT engagement; FCT joins as anchor partner under a referral-revenue split.
Public liability insurance procurementOutside automation scope. Requires specialist broker, not platform work.Recommended brokers: Adventure Underwriting Managers; Stewart Specialist; AON Sports & Events for international cover.
flycapetown.co.za content rebuildEditorial & CMS work, not platform automation. Identified in Website Evaluation 2 June 2026.XEQT will collaborate with FCT's existing designer or website manager at no charge to advise on content structure, IA, course / equipment / tour page rebuilds, and SEO fixes flagged in the Website Evaluation. Production work executed by FCT's chosen designer.
Multi-language (DE / FR / NL) booking flowWorth doing for 70% foreign market; not blocking R1.R2; per-language pack ~R 8K (translation + integration).
Wind / weather prediction modelPilot already has a working decision process. No automation needed.Not recommended.
Multi-operator schedulingFCT is a single-pilot-owner shape today. Premature.Revisit when team grows.
05 · Delivery timeline

12 weeks. Live before the September high season.

Build kicks off mid-June 2026 (subject to signature), aiming for MVP go-live in early August and full handover by end of August — well clear of the September–April peak quarter.

Workstream
W1W2W3W4W5W6W7W8W9W10W11W12
Discovery, design, infra
Sprint 0
F1 · Payroll automation
Build & test
F2 · Video delivery
Build → pilot → scale
F3 · Deposit & payments
Yoco · PayPal · PayFast
F4 · WhatsApp reschedule
Meta approval + build
F5 · PWA ops app
iOS · Android · offline test
F6 · Certificates
Build & sequence
F7 · Gift Vouchers
Web store + CPA terms + conversion logic
Integration · QA
End-to-end
MVP soft launch
Partial routing
Handover · training
Done

Milestones & payment triggers

WeekMilestonePayment trigger
W 0Proposal signed30% of build fee invoiced
W 2Discovery complete · technical design signed off
W 6F1 (payroll), F3 (payments), F4 (WhatsApp) in staging40% invoiced
W 9MVP soft-launch on live bookings
W 12Full handover · Definition of Done met · retainer starts month 13Final 30% invoiced

Phase amounts are calculated from your selected scope — see Section 8.

Critical-path dependency

WhatsApp Business API approval through Meta typically takes 1–4 weeks and is gated by Meta's policy review. Work begins in Week 1 to absorb this. If approval is delayed beyond Week 5, F4 timeline moves and a partial workaround (manual WhatsApp templates from Malvern) ships at W6, with full API automation at delivery.

06 · Definition of Done

What "delivered" means.

The build phase is complete when all of the following are true and signed off by FCT.

07 · Build your bundle

Tick the features you want. Watch the price update.

Full bundle of 7 features is R 90,000 build + R 5,000 / month, VAT inclusive. Each feature has a fixed share of the total — untick optional features below to drop them from scope and the price reduces accordingly. F3 (Deposit & Payment) is strongly recommended — it's the booking foundation that unlocks F1, F2, F4 and F6. Untick it only if you intend to keep manual booking as-is and use the platform purely for downstream features.

Build (one-time)
R 90,000
Operating retainer
R 5,000 / month
Full bundle selected — best value & full 4 hr / month custom automation allocation
What the full bundle includes that the subsets don't

At the full R 5,000 / month retainer, FCT receives 4 hours per month of custom automation development at no extra fee — built across the contract term to extend what the platform does after launch (the review management dashboard in Section 9 is the first example). Over the 24-month initial term, that's 96 hours of free custom development, worth approximately R 81,600 at the R 850/hr change-control rate. If the monthly retainer is reduced through customisation, the custom-automation allocation reduces proportionally.

FCT's chosen scope (full bundle or a customised subset) is confirmed in writing during Sprint 0 (Week 2 of the build) as a one-page Scope Confirmation attached to this proposal. The pricing comparison in Section 11 reflects this selection. All prices in this section are VAT inclusive (15%).

08 · Commercials — build phase

R 90,000 fixed price. VAT inclusive.

Single fixed price for the 12-week R1 build. No hourly billing, no surprises. Includes design, build, testing, deployment, handover documentation, and 30 days of post-launch hyper-care.

Milestone%Amount (ZAR)Trigger
Signature30%R 27,000Within 7 days of signed proposal
MVP milestone (W6)40%R 36,000F1 · F3 · F4 in staging, demoed and approved
Handover & DoD30%R 27,000Definition of Done (Section 6) met & signed
Total100%R 90,000All amounts VAT inclusive (15%)

What's included in the build fee

What's NOT included

Honest note on pricing

R 90,000 is priced aggressively for the scope you selected. It reflects (a) FCT being XEQT's flagship paragliding-industry case study, (b) the strong long-term recurring-revenue alignment, and (c) the relationship value. Scope discipline (Sections 4 & 16) is therefore strict — added scope will be quoted as change orders, not absorbed.

09 · Monthly operating retainer — R 5,000 / month

What FCT gets every month.

A flat R 5,000 / month, VAT inclusive (excluding pass-through third-party costs) starts the month after Definition of Done is met. Billed monthly in advance, payable within 14 days.

CategoryIncluded
Hosting & infrastructureCloudflare Workers / R2 hosting (XEQT VPS for n8n), DNS, SSL certificates, CDN. Pass-through costs (R2 storage, WhatsApp messages, payment processor fees) billed at cost.
Monitoring & uptime24/7 platform monitoring. Alerting on payment failures, video delivery failures, WhatsApp delivery failures, backup failures. Public-facing status page.
Backups & recoveryDaily encrypted backups to a separate cloud region. 30-day rolling retention. Monthly restoration test. Documented disaster recovery procedure.
Security & updatesSecurity patches, library updates, dependency upgrades. POPIA compliance maintenance. Annual penetration test on the booking + payment flow.
Bug fixesAll bugs (defined as: behaviour that doesn't match the signed acceptance criteria) fixed at no additional charge. Response within SLA (Section 13).
Minor change requestsUp to 4 hours per month of minor changes: tweaking templates, adjusting cron times, updating instructor splits, adding payment processor fees. Rolls over up to 8 hours.
Review management dashboardBuilt and delivered post-go-live using the 4-hour monthly retainer allocation across the first 2–3 months after launch. Unified inbox for Google, TripAdvisor, and Facebook reviews; one-click reply templates; sentiment trend in monthly metrics report.
Quarterly business review90-min call each quarter: review metrics against baselines, surface opportunities, agree priorities for next quarter, decide change-order candidates.
Monthly metrics reportAuto-generated KPI snapshot to Malvern & Stephan first Monday of each month: jumps run, deposit conversion, average response time, no-show rate, video delivery rate, certificate sends, payroll savings vs. baseline.
SupportDirect line to Erik (erik@xeqt.co.za / WhatsApp). Office hours: Mon–Fri 08:00–18:00 SAST. Out-of-hours for production-down only (see SLA).

What the retainer does NOT include

10 · Per-jump operating fee — R 50 / jump above baseline

XEQT scales as FCT scales.

The first 1,000 jumps per Operating Year are covered by the monthly retainer. From jump 1,001 onward, R 50 per jump, VAT inclusive, is invoiced monthly in arrears. This structure intentionally aligns XEQT's recurring income with FCT's growth — the platform should make more jumps possible, and XEQT shares in that upside.

Annual jumpsPer-jump fee owedAnnual recurring total
1,000 (baseline)R 0R 60,000 (retainer only)
2,000R 50,000R 110,000
3,000R 100,000R 160,000

Calculation & reconciliation

11 · Pricing comparison

Two paths to the same platform.

FCT can choose between two pricing structures. XEQT recommends Option A for predictability, lower total cost, and a balanced commitment that protects both sides. Option B is offered for transparency — the per-jump-only model is simpler, but at the audit-confirmed volume Option B is more expensive in every single year, and the gap compounds.

Option B

Per-jump only

  • R 0 build phase — no upfront cost
  • R 0 / month retainer
  • R 115 / jump from jump 1, every Operating Year
  • Per-jump rate scales with your selected scope (Section 7)
Year 1 — 2,000 jumpsR 230,000
Year 2 onward — every yearR 230,000

The bottom line

Year 1Year 2 onward
Option A — 3-phaseR 200,000R 110,000
Option B — per-jump onlyR 230,000R 230,000
Option B vs A +R 30,000 cost +R 120,000 cost (every year)
Over 5 years at your selected scope

Option A saves FCT approximately R 510,000 compared to Option B, while also giving you a predictable monthly cost regardless of how the weather year performs.

XEQT's recommendation

Option A. It is cheaper from Year 1 and the gap widens every year after — the difference is in the bottom-line table above. It also isolates platform operating costs (retainer) from jump-volume risk (per-jump fee), giving FCT a predictable monthly cost regardless of how the weather year performs.

Option B is offered for choice and transparency. If FCT elects Option B, all other terms in this agreement (IP, SLA, data, liability, termination, exit) apply unchanged — only Sections 8, 9, and 10 are replaced by the Option B commercials above. The chosen structure is recorded on the Signatures page (Section 21) and forms part of the binding agreement. All prices in both options are VAT inclusive (15%).

12 · Intellectual property & licence

Who owns what.

Platform IP — XEQT-owned

All source code, software architecture, designs, technical documentation, infrastructure-as-code, and derivative tools created in the course of this engagement remain the exclusive intellectual property of XEQT. This includes (without limitation) the booking engine, deposit / payment integration code, WhatsApp reschedule workflow, PWA application, video delivery portal, certificate generation engine, and instructor payroll automation.

Licence to FCT

XEQT grants Fly Cape Town Paragliding a perpetual, non-exclusive, non-transferable, worldwide licence to use the deployed platform for the operation of its paragliding business, for as long as the Operating Agreement (Sections 9, 10) is in force, plus the post-termination grace period (Section 18).

FCT data — FCT-owned

All customer data, booking records, flight logs, payment records, video footage, and other operational data produced by or relating to FCT's business is the exclusive property of FCT. XEQT processes this data as an Operator (per POPIA) and has no rights to use it for any purpose other than operating the platform for FCT.

Reuse & resale rights

XEQT may adapt, white-label, and resell the platform to other operators (including direct competitors of FCT) subject to the following: (a) no FCT customer data is shared, transferred, or used; (b) no FCT-specific branding or assets are re-used; (c) any FCT-specific configuration or workflow customisation remains exclusive to FCT for the duration of this agreement plus 12 months.

FCT brand assets

FCT retains full ownership of the Fly Cape Town name, logo, wordmark, and brand assets. XEQT's right to use these is limited to operating the platform on FCT's behalf and creating the case-study materials permitted under the Marketing Rights clause below.

Marketing rights

FCT grants XEQT the right to: (a) publicly identify FCT as a client of XEQT; (b) publish an anonymised or named case study describing the engagement, scope, and measurable outcomes; (c) cite FCT as a reference for prospective XEQT clients. FCT retains review rights over any case study before publication. This right survives termination.

13 · Service levels & uptime

What "running" means.

Uptime target

XEQT targets 99.5% uptime measured monthly across the booking, payment, and PWA services. Scheduled maintenance windows (announced 48 hours ahead, between 02:00–05:00 SAST) are excluded from uptime calculation.

Incident response SLAs

SeverityDefinitionResponseTarget resolution
P1Production down — bookings or payments not accepted; data loss risk1 hour, 24/74 hours
P2Major function impaired — WhatsApp delivery failing, payroll broken, video delayed > 6h4 hours, business hours24 hours
P3Minor function impaired or cosmetic1 business day1 week

Service credits

If monthly uptime drops below 99.0%, FCT receives a service credit on the following month's retainer: 10% credit at 95–99% uptime; 25% credit at 90–95%; 50% credit below 90%. Credits are FCT's sole and exclusive remedy for missed uptime targets.

14 · Data, POPIA & confidentiality

Customer data is sacred.

Roles under POPIA

FCT is the Responsible Party for all personal information processed through the platform (customer details, weights, medical declarations, payment data, video / photo content). XEQT is the Operator. A separate Data Processing Agreement (DPA) will be signed alongside this proposal, governing the relationship in detail.

Data location

All FCT data is hosted on the XEQT Hostinger VPS in Europe and Cloudflare R2 (multi-region with primary in Europe). FCT acknowledges and consents to cross-border processing under POPIA's adequacy provisions. Data residency can be migrated to a South African region on request as part of a change order.

Sub-processors

XEQT discloses the following sub-processors at signing: Cloudflare (hosting, CDN, storage), PayFast (Instant EFT), Yoco (in-person card & SnapScan), PayPal (international), WhatsApp Business / Meta Platforms (messaging), OpenWeather (weather data), IndemniFly (existing FCT indemnity provider). Material changes to this list require 30 days' written notice.

Retention & deletion

Customer booking data retained for 7 years (SARS minimum). Raw video files retained 90 days. Branded social-cut videos retained indefinitely unless a customer requests deletion under POPIA Section 13. Personal data subject to right-of-erasure requests within 30 days.

Breach notification

XEQT will notify FCT in writing within 24 hours of confirming any unauthorised access to or disclosure of FCT data. Joint notification to affected data subjects and the Information Regulator will be made within 72 hours if required by POPIA Section 22.

Confidentiality

Each party will protect the other's confidential business information (commercial terms, pricing, customer data, operational specifics) using the same standard of care as for its own confidential information, and no less than reasonable care. This obligation survives termination by 5 years.

15 · Liability & indemnity

What we each take on.

Liability cap

Each party's total aggregate liability arising out of or related to this agreement is capped at the total fees actually paid by FCT to XEQT in the 12 months preceding the event giving rise to the claim. This cap applies regardless of the cause of action (contract, tort, statute, or otherwise) and to all claims in aggregate.

Excluded damages

Neither party is liable for indirect, incidental, consequential, special, or punitive damages, including loss of profits, loss of business opportunity, loss of goodwill, or loss of anticipated savings, even if advised of the possibility.

Carve-outs from cap

The liability cap and excluded damages do not apply to: (a) FCT's obligation to pay fees due; (b) either party's indemnity for confirmed POPIA data breach caused by its own gross negligence or wilful misconduct; (c) IP infringement by either party.

Mutual indemnity

Each party will indemnify the other against third-party claims arising from the indemnifying party's gross negligence, wilful misconduct, or breach of this agreement, subject to the cap above.

Insurance

XEQT carries professional indemnity cover appropriate to the engagement value. Certificates available on request. FCT is responsible for its own public liability insurance for paragliding operations (out of scope — see Section 4).

16 · Change control

How scope changes get handled.

What triggers a change order

Any request to add, remove, or materially modify scope items in Section 3, or to add scope items from Section 4 into R1, requires a written change order. Minor changes within the monthly retainer's 4-hour allowance (Section 9) do not require a change order.

Change order process

Within 5 business days of a written change request from FCT, XEQT will provide a written change order describing scope impact, timeline impact, and cost (fixed price or hourly estimate). FCT signs to accept; XEQT begins work only after written acceptance. Change orders attach to and form part of this agreement.

Hourly rate for change work

Change orders priced hourly are billed at R 850 / hour in 30-minute increments, capped at any agreed maximum in the change order. Reviewed annually with the retainer rate.

17 · Term, renewal & termination

How long this runs and how it ends.

Term

This agreement commences on the date of signature and runs for an initial term of 24 months from the go-live date (estimated September 2026). After the initial term, it auto-renews for successive 12-month terms unless either party gives written notice of non-renewal at least 60 days before the renewal date.

Termination for convenience

After the initial 24-month term, either party may terminate for convenience on 60 days' written notice. During the initial term, FCT may terminate for convenience on 90 days' written notice subject to an early-termination fee equal to 50% of remaining retainer payments through end of initial term.

Termination for cause

Either party may terminate immediately on written notice if the other: (a) is in material breach and fails to cure within 30 days of written notice; (b) becomes insolvent, files for liquidation, or is wound up; (c) commits a confirmed POPIA breach involving gross negligence and fails to remedy.

Effect of termination

On termination: (a) FCT pays all fees accrued up to the termination date plus any early-termination fee; (b) the transition period in Section 18 begins; (c) confidentiality, IP, and liability cap obligations survive.

18 · Exit, transition & data export

How you get your data and keep running.

Data export

On termination (or earlier on request), XEQT will provide FCT with a complete export of all FCT data within 14 days: customer records, booking history, payment ledger, video assets, flight logs, all in machine-readable formats (CSV / JSON for data; original file formats for media). No additional fee for one export per termination event.

Continued use grace period

For 90 days after termination, FCT may continue to use the deployed platform instance to operate the business while migrating to a replacement, at the standard retainer rate. After 90 days, the instance is decommissioned and data deleted per the retention policy.

Transition support

XEQT will provide reasonable transition support to a successor provider (or in-house team) at the standard hourly rate (R 850), capped at 40 hours total without further agreement. This covers documentation review, knowledge transfer calls, and migration consultation. Does not include rebuilding code in a different stack.

No source-code transfer

For clarity: the source code remains XEQT IP (Section 12) and is not transferred to FCT or any successor provider on termination. FCT receives its data, documentation, and the right to continued use during the grace period. This is standard SaaS practice.

19 · Standard SaaS clauses

The remaining boilerplate.

Force majeure

Neither party is liable for failure to perform caused by events beyond reasonable control: natural disasters, war, terrorism, governmental action, third-party platform outages (Meta, payment processors, Cloudflare), pandemic, or extended internet outages. The affected party will notify the other promptly and resume performance when possible.

Governing law & jurisdiction

This agreement is governed by the laws of the Republic of South Africa. The parties submit to the non-exclusive jurisdiction of the High Court of South Africa, Western Cape Division, Cape Town.

Dispute resolution

The parties will attempt good-faith negotiation for 30 days before any litigation. If unresolved, disputes < R 200,000 in value go to mediation under the rules of the Arbitration Foundation of Southern Africa (AFSA). Larger disputes proceed in the High Court.

Notices

Notices may be given by email to the addresses below and are deemed received on the next business day. Material notices (termination, breach, indemnity claims) must also be sent in writing to the registered business address of the receiving party.

Assignment

Neither party may assign this agreement without the other's prior written consent, except either party may assign on notice to a successor entity acquiring substantially all of its business or assets.

Non-solicit

During the term and for 12 months after termination, neither party will directly solicit the employment of the other's employees or contractors involved in this engagement, without prior written consent. General job advertisements not targeting specific individuals are excluded.

Entire agreement

This proposal, the attached Data Processing Agreement, and any signed change orders constitute the entire agreement between the parties. They supersede all prior discussions and representations. Variations require written signature by both parties.

Severability

If any provision is held unenforceable, the remainder continues in full force. The parties will negotiate a replacement provision that gives effect to the original intent.

Counterparts & electronic signature

This agreement may be signed in counterparts and by electronic means (including DocuSign, Adobe Sign, or scanned PDF). Each counterpart is an original; together they form one agreement.

No legal advice

This document is a commercial proposal and SaaS agreement. Both parties are encouraged to obtain independent legal review before signing. Signing constitutes acknowledgement that each party has had the opportunity to do so.

20 · Client notes

Add notes against any section before signing — optional.

Leave notes against specific sections for the record. Notes save as you type, appear in the printed PDF on this page, and are captured in the audit trail when you sign in Section 21.

Notes are non-binding additions to the agreement — they do not override the clauses in Sections 1–19 or 21. Open questions captured here should be discussed and either resolved or formalised via a change order (Section 16) before delivery starts.

21 · Signatures & Agreement

Sign on screen. Capture audit trail. Print the binding PDF.

This electronic signature is binding per Section 19 (Counterparts & Electronic Signature). On signing, a tamper-evident audit trail is captured — timestamp, time zone, locale, browser fingerprint, GPS coordinates if granted — and rendered into the printed PDF.

Pricing structure (Section 11)
Signature — draw with mouse or finger
Draw within the box. Tap "Clear" to redo.
Clicking "Sign and lock" creates a binding electronic signature, writes the signature image to the page, locks the form, and unlocks the Print to PDF button. The audit trail below the signature blocks captures timestamp, location, browser, and a document fingerprint for tamper evidence.
Next steps once signed

1. Deposit invoice (R 27,000 for Option A; first per-jump invoice for Option B) issued within 24 hours.
2. Separate POPIA Data Processing Agreement countersigned within 7 days.
3. WhatsApp Business API application submitted Week 1 (Meta approval is the critical-path item).
4. Joint kickoff call scheduled with Malvern, lead pilot, Stephan, and Erik in Week 1.