A scope-by-scope review of the travel operations platform, including functional revisions and the gap to the original three-month plan.
22 October 2026 · Asia/Kolkata · Code snapshot 195ca87 · Original plan: 8 modules / 12 weeks
Executive assessment
A substantial operations platform—not yet the complete enterprise scope.
The deepest delivery is in travel execution: lead/customer management, multi-family costing, payment planning, independent lead versions, document review and itinerary sharing. The largest remaining gaps are shared WhatsApp conversations, compliant invoicing, the referral wallet and lifecycle automations.
Depth matters as much as breadth.
Nine costing service tables, 17 database-backed report endpoints, formula-aware editing, locked customer funding agreements and review-first document imports show meaningful operational depth. They should be credited without equating them to unrelated unfinished deliverables.
Delivered beyond the plan's basic wording
Independent versions of the entire lead—not only a saved quotation.
Bank/ETO/ETC/ET family funding, ROE 1/2, lock/unlock behavior and effective markup.
Quotation status labels ≠ enforced approval and automatic version-diff workflows.
A delivery queue ≠ birthday, anniversary, passport, follow-up and invoice-reminder automations.
Seventeen reports ≠ every planned financial metric or CSV export.
Original scope / current coverage
All eight modules, assessed separately
“Built” below means functionality is present in the inspected source. It is not a fresh production acceptance test. No module is declared fully signed off against every original bullet.
*Counts refer to the explicitly numbered themes below. They are not commits, deployments, hours, or a completion percentage.
How revisions are counted
Each numbered entry describes a meaningful change in what a user or the system can do, calculate, preserve, share or access. Related fixes are grouped into one theme. Purely decorative changes, asset uploads, publication checkpoints and documentation-only edits are not counted.
These are catalogued functional revision themes, reconstructed from the supplied conversation, current source and available Git history—not a claim to know the exact number of implementation rounds. One request can affect multiple modules, so the per-module counts must not be added up as a count of unique change requests. Initial module creation is described under “What is built,” not billed as a revision.
Superseded rules are labelled.
For example, per-cell rounding and rounding costing before markup were discussed earlier. Current code instead applies markup to original costing and rounds the final combined amount once. The report credits the evolution without claiming both rules are active.
01 / ORIGINAL SCOPE · Weeks 1–2
Foundation & Infrastructure
Core built · provider deliverable differs
A real multi-workspace application with authentication, API authorization and persistent business data—not just a collection of screens.
What is built & how deep it goes
Registration, sign-in, email verification/invitations and server-managed signed sessions.
Workspace-scoped customers, leads, vendors and financial records, with permission checks on protected API actions.
Owner/member access controls, section-level read/write permissions, lead leaders and delegated editing.
Typed API contracts, database-backed services, private document storage and regression-test infrastructure.
What remains against the plan
The original Week 2 WATI connection/test-send deliverable is not evidenced; the implemented provider is Wavebox for the separate capture service.
A code review is not a security certification. Tenant-isolation, access and recovery acceptance tests still belong in release sign-off.
Functional evolution 4 catalogued revision themes
01.01
Granular permissions
Access developed beyond broad roles into default-deny read/write permissions, enforced in both screens and API actions.
01.02
Lead-specific delegation
Workspace ownership and lead leadership can manage file-specific access; costing-service tabs can have delegated editors without exposing all leads to everyone.
01.03
Invitation/account handling
Invitation flows were revised to reject already-associated accounts rather than strand an invitee at signup; invited-user phone validation follows country rules.
01.04
Published-origin and API safeguards
Allowed production origins and explicit route policies were tightened so customer links and application requests use controlled access rather than unrestricted endpoints.
Evidence & history anchors
d1d6862 · 14 Oct: lead access delegation; 20ea94a and 50edf96 · 15 Oct: auth/team controller changes.
Repository-relative paths are evidence references, not links required to open this document.
An operational enquiry intake and sales-notification pipeline exists. It is not the shared WhatsApp conversation platform described in the plan.
What is built & how deep it goes
A server-to-server enquiry endpoint with API-key protection and isolated whatsapp_capture storage.
Original raw payload plus parsed enquiry fields; partial/repeated-phone enquiries are handled without treating every submission as a unique CRM customer.
Beautified sales notifications through Wavebox, with persistent delivery tracking and retry handling.
New-enquiry dispatch and pending-queue recovery, with the daily 11:00 IST behavior kept separate from CRM lead records.
What remains against the plan
No working CRM shared inbox: the routed Inbox page is explicitly Coming Soon.
Incoming WhatsApp conversation/message persistence, agent text/media replies, real-time threads and contact synchronization are not implemented end to end.
Capture does not automatically create CRM pipeline leads or customers. That bridge remains a separate requirement.
Five approved customer-lifecycle templates and their verified provider configuration are not evidenced. A digest/notification template is not those five workflows.
A daily in-process retry is not a guarantee that an autoscaled service wakes at 11:00 IST. Reliable scheduled execution needs operational verification.
Functional evolution 6 catalogued revision themes
02.01
Isolated enquiry storage
The intake design moved away from using the CRM lead table to separate chatbot-enquiry storage, keeping CRM records and daily delivery bookkeeping apart.
02.02
Capture-only startup
The capture service can start with its own API key and database connection; sending credentials are required only for delivery work.
02.03
Expanded payload contract
The intake expanded to the 14-field chatbot payload, preserving raw content alongside parsed values rather than losing free-text trip details.
02.04
Per-enquiry delivery queue
Delivery evolved from a daily summary concept into persisted row-level notification tracking; Wavebox acceptance is the agreed completion criterion, not proof of handset receipt.
02.05
Pending-only recovery
New-row triggers also recover queued work, with the requested daily 11:00 IST pending-queue pass rather than repeatedly sending completed rows.
02.06
Faithful message formatting
The notification formatter omits fields absent from raw_payload instead of inventing a Service type: Not provided line.
The CRM now handles complex group travel: customers, relationships, families, independent trip scenarios, documents and review-before-save imports.
What is built & how deep it goes
Lead/customer creation and editing, configurable pipeline stages, assignments, travel dates, destinations and shared service selection.
Named travellers organized into families, with planned trip headcounts kept independent of a partly completed roster.
Independent lead versions: choose a copy source, rename versions and designate a main version for reporting. Version-specific traveller profiles retain actual customer identities.
Customer relationships and phone-country validation; display formatting preserves the underlying phone identity.
Passport/PAN/other supported document extraction and review, private original-file access, and bulk image/PDF traveller import into Family 1.
Newly approved file-based imports retain originals in a separate Raw files section. Add Document can reuse a raw file or upload a new one.
Vendor records with configurable categories, country/city search behavior and optional full-width detail notes.
What remains against the plan
Automatic lead/contact creation from WhatsApp conversations and round-robin assignment remain absent.
A fully connected timeline covering every message, share, status and financial event is not complete. Existing activity logging should not be described as universal.
Customer identity/duplicate handling exists, but automatic deduplication during a future WhatsApp contact-sync flow still needs its own acceptance tests.
Customer entry moved to first/last names, with consistent human-label casing while preserving emails, URLs, abbreviations and free-form notes.
03.02
Country-aware phone handling
Storage stays normalized; optional child phone numbers, country validation and later country-specific visual grouping replaced the earlier no-spaces-everywhere presentation.
03.03
Customer relationships
Related customer plus relationship became editable across customer/traveller surfaces, including custom relationships and corrected selectable previews.
Multi-person image/PDF extraction now creates reviewable drafts rather than immediately creating customers; approved people can be new or linked customers.
03.10
Original-file retention
Approved import originals now persist under Raw files, with retry-safe saving and independent reviewed-document copies. Previously discarded originals are not retroactively recoverable.
The routed dashboard and pipeline use live application data. A polished screen does not imply that the missing shared inbox is delivered.
What is built & how deep it goes
Database-backed dashboard summaries scoped to the current workspace and permitted lead visibility.
Pipeline table and Kanban-style interaction, including persisted drag-to-change-status behavior.
Lead workspace navigation with tab persistence, rather than always returning to Travellers on refresh.
Settings dropdown categories presented as a left-side list with a right-side option editor; shared options feed operational forms.
What remains against the plan
The planned three-panel shared WhatsApp inbox and its messaging quick actions are absent.
Pipeline CSV export was not found in the audited implementation.
Push-real-time dashboard updates are not established by the current fetch-based pages.
Functional evolution 3 catalogued revision themes
04.01
Live, scoped dashboard totals
Dashboard behavior matured into permission-aware database metrics; main-version filtering and receipt-accounting rules matter to what is counted.
04.02
Refresh-safe lead navigation
The selected lead subtab is retained through the URL/navigation state rather than resetting every refresh to Travellers.
04.03
Central dropdown management
Settings moved from scattered options to a category sidebar/editor and became the shared source for vendor and costing dropdowns.
Evidence & history anchors
d44b624 · 17 Sep: live dashboard enhancement; 263099d and c397472 · 15 Oct: shared dropdown configuration. Tab persistence is also evidenced in current lead navigation code.
Repository-relative paths are evidence references, not links required to open this document.
Brief and timed itineraries support AI-assisted drafting, saved versions, customer-friendly output and immutable public-share snapshots.
What is built & how deep it goes
Brief and timed itinerary workflows with saved content, version history and editing.
AI drafting from trip facts and staff instructions; costing context supports generation rather than indiscriminately overriding the itinerary.
Day/activity editing and reordering; the timed editor supports activities within each day's structure.
Branded print/PDF output, revocable public snapshot links and editable copyable text.
Route presentation is derived from itinerary/costing context and reused in itinerary outputs. Missing destination evidence must not be replaced with invented stops.
What remains against the plan
Reusable cross-customer itinerary templates and the destination/prebuilt-activity library are not implemented.
Activity drag/drop within a day exists; moving an activity directly between days is not implemented in the audited nested drag/drop structure.
No WATI PDF/template sending from the itinerary workflow.
A shared link freezes a snapshot, but the editable source is not automatically locked/new-versioned on every post-share edit. That differs from the exact original plan.
Inferred routes still need content-level checks on ambiguous or underspecified itineraries; a correct example format alone is not proof every draft will infer correctly.
Functional evolution 7 catalogued revision themes
05.01
Brief-to-costing context
Generation gained structured trip/service and costing context, plus preview/apply behavior, instead of treating every AI draft as authoritative final costing.
05.02
Saved-version workflows
Saved history, restore/selection and export targeting developed so users share a selected saved version rather than accidentally exporting unsaved edits.
05.03
One share menu
Separate sharing actions were consolidated into Link, PDF and Text options for brief and timed itineraries.
05.04
Editable share text
The text popup became editable for one-off copying without changing the saved itinerary.
05.05
Customer-ready text structure
Brief text gained travel year, route, guest/pax context and emphasized day headings instead of a less structured generic text export.
05.06
Automatic route presentation
A proposed separate route-review step was removed; itinerary-led route inference and supporting costing context feed text, PDF and newly created links.
05.07
Stable public snapshots
Public sharing gained revocation and request/access compatibility handling; later source edits do not silently rewrite an already issued snapshot.
This is one of the most developed areas: nine service tables, spreadsheet-like formulas, family allocation, currency controls, refund handling and edit history.
What is built & how deep it goes
Accommodation, Activities, Intercity, Intracity, Flights, Visa, Cruise, Insurance and Forex service tables.
Multi-family allocation, arithmetic expressions in Rate and family cells, formula indicators and the t alias for total.
Currency conversion, live-rate retrieval, manual ROE overrides and refresh locking.
Row duplication, date-group reordering, booking details, notes and cancellation/refund calculations.
Committed-cell undo/redo across costing tables, including numeric/formula dependencies.
Saved quotation snapshots and statuses, plus independent lead-version scenarios.
What remains against the plan
Costing does not universally recalculate its structure automatically after every itinerary edit; generation/application is an explicit workflow.
Manual quotation snapshots are not automatic post-send version creation or a line-item version-diff viewer.
Status tags do not constitute the complete enforced Draft → Sent → Approved/Rejected → Invoiced transition workflow.
Admin-configurable minimum-margin/discount gates are not implemented.
The broader browser suite has previously timed out in Brief-to-Costing navigation; current release sign-off must resolve/retest that separately. This audit did not rerun it.
Rate cells evolved from numeric-only entry to arithmetic such as 4000/2, displaying 2000 while retaining the expression and formula indicator.
06.02
Short family formulas
Family formulas accept t in place of total while retaining the established total vocabulary for existing expressions.
06.03
Automatic last-family remainder
Initial weighted allocation stays; editing earlier families recalculates the last family's remainder. Over-allocation shows zero remainder and a mismatch highlight rather than a negative display.
06.04
Real balance comparison
Mismatch highlighting compares displayed/calculated allocations to the row total, not merely whether every family has a saved manual override.
06.05
Spreadsheet-style undo
Cmd/Ctrl+Z and redo were added for committed cell edits, then revised for numeric fields, focus movement, queued rapid changes and restoring dependent values.
06.06
Row order and duplication
Copies appear immediately below the source row; drag order is constrained to the row's date group rather than arbitrary cross-date placement.
06.07
Refund arithmetic
Cancellation/refund handling became event-based with shared editing behavior and rounding against the original row basis.
06.08
Configurable dropdown cells
Meals, Payment, Status, activity types and transfer modes/types/car types moved to workspace-defined option lists.
06.09
Dates and 24-hour times
Activity Start and transfer departure/arrival/in/out time entry gained time selection; date navigation and backdating restrictions were aligned.
06.10
Grid editing behavior
Headers remain visible only within their table, low-screen currency menus open upward, explicit zero is preserved and manual labels use the agreed capitalization.
06.11
Floating notes editor
Per-row notes were added, moved before action controls, then changed from row-expanding textareas to a focused floating editor with bounded previews.
Payment planning is considerably richer than a basic receipt tracker. The remaining tax-invoice and referral-wallet work is still material.
What is built & how deep it goes
Family funding in Bank, ETO, ETC and ET; markup, exchange rates, totals, balance validation and read-only INR equivalents.
One final upward rounding step after costing plus markup, rather than rounding every family/source cell.
Locked payment summaries preserve the selling agreement while current costing changes the displayed effective markup/profit.
Payment/refund records, approvals and outstanding calculations with handling for historical data.
Per-family invoice-entry fields with activity logging. These are not complete statutory invoice documents.
Copied payment/invoice history in lead versions, with explicit accounting safeguards against counting a copied receipt as new money.
What remains against the plan
No complete tax invoice entity with sequential numbering and one-click generation from an approved costing.
GST/TCS calculation, tax breakdowns and compliance acceptance remain to be implemented. Rates/thresholds in the plan need current professional validation, not blind hardcoding.
No branded .xlsx invoice export or WATI invoice attachment send.
No referral-wallet ledger, credits/debits, redemption, expiry, approval thresholds, invoice application or customer notification.
Payment-source/accounting choices differ from the plan's generic UPI/card/cash list; reconcile that scope before claiming the exact planned payment-mode deliverable.
Functional evolution 8 catalogued revision themes
07.01
Funding-category markup
The pricing rules were revised so markup follows the underlying source allocation rather than accumulating incorrectly in Bank.
07.02
ET offsets Bank
Typing a change into ET transfers that difference from Bank; a later manual Bank edit does not rewrite ET or other sources.
07.03
ETO extras move to ETC
ETO keeps its base costing share, while markup/rounding attributable to ETO is assigned to ETC.
07.04
Rounding rule evolution
Cell-level and double/base-rounding proposals were superseded. Current logic applies markup to original costing, then rounds the combined selling total up to the next 100 once.
07.05
Locked selling agreement
Locking freezes markup input, ROEs, family funding and final selling total; subsequent costing edits change effective profit, not the customer's locked amount.
07.06
Clear locked-state figures
The locked view was simplified to current costing, locked final, effective markup amount/percent and original-at-lock context; the unlocked layout stays unchanged.
07.07
Receipt approval/history rules
Pending/rejected receipts do not settle balances; older valid receipts remain readable without silently converting historical currencies or payment sources.
07.08
Version-aware financial copies
Payments and invoice entries can be copied into scenarios without treating copies as additional actual cash; main-version reporting is distinct from simply viewing a scenario.
Evidence & history anchors
adc45bb and 814ff1f · 24 Sep: receipt/history changes; a9b884a · 12 Oct: funding independence; 71853f5 and 0f920e5 · 16–18 Oct: pricing/versioning; ad6e5ea and 5d926c8 · 19 Oct: locking/validation.
Repository-relative paths are evidence references, not links required to open this document.
Reporting breadth is real, but several financial meanings differ from the plan. The five customer/agent reminder automations are not delivered by the enquiry queue.
What is built & how deep it goes
Seventeen database-backed report endpoints across pipeline, finance, team, customers, destinations and operations, with date-filtered report screens.
Pipeline summary, conversion funnel and lead-source analysis.
Revenue receipts, payment modes and outstanding estimates; staff performance and team workload.
Customer demographics/acquisition/source-by-tier; top destinations and seasonal patterns.
Cost-category mix, booking status, vendor usage and group composition.
What remains against the plan
Birthday, anniversary, passport-expiry at 6/3/1 months, 3-day inactive-lead and overdue-invoice reminders are not implemented as the five scheduled workflows.
BullMQ/Redis orchestration specified by the plan is not evidenced; the enquiry delivery worker does not substitute for these automations.
Revenue overview reports receipts, not a complete revenue-and-profit series.
Destination reporting uses lead counts/estimated costs, not realized destination revenue.
Outstanding figures are not a full tax-invoice ledger/aging report; agent response time cannot be calculated without message events.
Report CSV export was not found. Exact business definitions and export parity remain required.
Functional evolution 2 catalogued revision themes
08.01
Receipt-aware business metrics
Financial dashboard/reporting evolved with receipt approval and historical-currency handling, avoiding treating all recorded entries as settled cash.
08.02
Main-version reporting
Scenario versioning introduced designated-main filtering so alternate trip plans do not inflate pipeline/reporting totals.
Illustrative example, not customer data: Costing 3,761 + 22% markup (827.42) = 4,588.42. One upward rounding step produces 4,600, adding 11.58.
If 4,600 is then locked and current costing rises to 4,000, the locked final stays 4,600. Effective markup becomes 600 / 15%. Funding and ROEs do not silently change with that costing edit.
Review-first file intake
An uploaded family PDF produces reviewable traveller drafts. Approving a person saves or links the customer, preserves that source under Raw files and adds the traveller to Family 1.
Using that raw file for a reviewed passport document creates an independent attachment. The raw original is not automatically treated as a verified identity document.
Remaining delivery / suggested order
Six workstreams to close the original scope
This is a gap list and sequencing recommendation, not a new schedule, quote or authorization to build. Several tasks can run in parallel after shared data contracts are agreed.
1 · Provider and conversation foundation
Complete shared WhatsApp messaging and CRM capture
Confirm whether Wavebox replaces WATI contractually or WATI is still required. Implement message/contact storage, inbound webhooks, CRM lead/contact creation, deduplication, assignment, shared inbox, replies/media and the approved template catalog. Acceptance: a real incoming conversation reaches the CRM and can be answered by authorized staff without losing history.
2 · Financial system of record
Finish tax invoices, exports and approval gates
Define validated tax rules; add numbered invoice entities, approved-costing generation, GST/TCS breakdown, payment allocation, branded Excel export and customer sending. Complete costing approval transitions, minimum-margin controls, automatic post-send snapshots and item-level comparisons. Acceptance: trace a quote through approval, invoice, partial payment, refund and outstanding balance.
3 · Reuse and travel content
Complete itinerary libraries and exact version semantics
Add reusable itinerary templates, prebuilt destination/activity content and cross-day activity movement. Agree whether edits should explicitly regenerate costing or follow the plan's automatic recalculation promise. Reconcile source-version locking with today's immutable share snapshots. Acceptance: clone a template for another customer, modify it and prove older customer links remain unchanged.
4 · Depends on invoice accounting
Build referral-wallet accounting
Add a durable credit/debit ledger, actor/reason audit, partial redemption, expiry policy, approval thresholds and invoice application. Notify customers when credit is issued. Acceptance: a credit can be partially redeemed, reversed and audited without duplicating real money or crossing workspaces.
5 · Depends on events and message templates
Deliver the five scheduled automations
Birthday, anniversary, passport-expiry, inactivity and overdue-payment workflows need scheduling, timezones, consent/template handling, duplicate-send protection and retry tracking. Acceptance: each runs on the intended date even when there is no user traffic, and does not resend completed work.
6 · Reconcile and prove the full scope
Align reports, exports and release acceptance
Finish pipeline/report CSV exports, true profit and destination-revenue definitions, invoice-ledger outstanding values and message response-time metrics. Verify production OCR/storage, permissions, share links, queue execution and cross-module flows. Resolve the known Brief-to-Costing browser-test gap and capture production acceptance evidence.
Evidence & limitations
What this report establishes
Baseline: the supplied “Explorus Enterprise Suite — 3-Month Plan” (3monthplan_1792671894706.md). All eight module sections and their stated deliverables are considered.
Implementation evidence: routed frontend screens, controllers, schemas, API policies and related utilities; representative source paths are included per module.
Revision evidence: the conversation supplied in this workspace and Git history through 195ca87 on 22 October 2026. Checkpoints anchor themes but are not one-to-one revision counts.
No private customer records, credentials, financial amounts or live provider configuration were read for this report. The numerical pricing example is illustrative.
This is a source/history audit, not a new end-to-end production test or legal/tax/security certification. Existing tests indicate intended coverage; this report did not rerun the application test suite.
The latest raw-file feature had targeted browser/API/retry/permission checks and type checks reported as passing in the preceding work. Browser fixtures are not proof of a live production upload.
No percentage complete, billable effort, delivery date or remaining-week estimate is asserted. The scope items vary greatly in size and several planned behaviors differ from agreed later revisions.
The plan's infrastructure/cost assumptions and quoted tax rates are not validated here. Actual running costs, provider approvals and current statutory rules require separate confirmation.
Recommended use:
Use this as a stakeholder scope review: acknowledge delivered depth, agree the accepted substitutions and changed rules, then turn the remaining workstreams into explicit acceptance criteria. Do not use raw commit counts as a proxy for functional delivery.