12,000 Luge rides sold Tuesday. F&B outlet at Luge station: 1,800 transactions. Historical ratio: 18-22% of riders buy F&B. Today: 15%.
Flag: F&B POS downtime or visitor behaviour shift?
Klook reports 900 combo packages redeemed. Cable car turnstile: 820 scans. 80 people bought combos but didn't ride.
Flag: No-show pattern or scanner malfunction?
3 corporate events booked this month. One event shows zero F&B catering revenue. BYO arrangement (different pricing) or invoice not yet raised?
Flag: Missing revenue or different billing terms?
Partner channels report $680K gross. GL shows $520K net partner revenue. Commission rate implied: 23.5%. Contracted rate: 20%.
Flag: Promo commission tier or accounting error?
Daily revenue should equal SUM(ticket price x quantity) across all ticket types. Delta today: -$2,400. Unreconciled discounts or comps not categorised.
Max capacity: 8 pax x 67 cabins x 18 trips/hr x 12 hrs = ~115K/day. Ticketing shows 118K pax on Saturday. Physically impossible — double-scan or system error.
Weekday Luge ridership is normally 40% of weekend. Held for 11 months. December school holidays: ratio breaks to 75%. AI learns the seasonal exception — stops false-flagging every December.
Partner channel share of total ticketing creeping up 0.5% per month for 8 months. Not an error — but a trend affecting blended margin since commission rates differ by channel.
Which revenue? Ticket only? Ticket + F&B + retail? Which visitor count — ticketed or total footfall? Defined precisely.
Net revenue per Luge ride after partner commission and GST. Not ticket price — actual yield to the business.
% of visitors who buy F&B, retail, or add-on experiences. By entry channel: walk-in vs Klook vs corporate.
Revenue from Klook/GYG after commission vs direct sales. True margin comparison, not gross.
Passengers per cabin per trip vs capacity. By time slot. Drives pricing and scheduling optimisation.
Marketing spend / attributed visitors, per channel. Requires marketing + ticketing cross-domain join.
Not just booked vs available. Revenue per sqm per day, including F&B uplift from events.
Entry scan to last transaction timestamp. Correlates to spend per visitor. Longer dwell = higher yield.
Weighted average net revenue per ticket across direct, partner, corporate, and comp channels. Accounts for different commission and pricing tiers.
Visitor buys $60 combo (cable car + Luge + meal). How to split across business units?
Not 1/3 each. Management-defined split: $25 cable car, $20 Luge, $15 F&B. Without this rule, each unit either claims the full $60 or gets nothing.
Semantic layer encodes the allocation. AI uses it automatically.
Some items GST-inclusive (9%), some exempt. Rolling up "total revenue" means stripping GST from applicable items before summing.
Different treatment for tickets vs F&B vs event space rental. Get it wrong and total revenue is off by up to 9%.
Rules encoded per product type. Consistent across every query.
Report partner revenue gross (what customer paid) or net (what you received)?
Different stakeholders want different views. Marketing wants gross (market size). Finance wants net (actual revenue). Same data, different rules.
Both views defined. AI knows which to use based on who's asking.
Annual pass sold for $200. Ticketing records one transaction in January. Finance recognises $16.67/month across 12 months.
Both are "correct" for their domain. Without the semantic layer, January revenue is either overstated or understated depending on which source the AI picks.
Reconciliation rule: ticketing cash vs finance accrual, with stored variance.
Double-counted combos inflate base data
Forecast trains on $2.91M instead of $2.14M
36% overstated from day one
Gross vs net inconsistency
Partner revenue is gross some months, net others
Trend line is meaningless
Seasonal patterns wrong
School holidays not baselined — model misses every December
Forecast says dip when it's actually peak
No trust
CFO compares forecast to their GL report. Numbers don't match.
Credibility gone. Project fails.
Combos properly allocated
Each unit's revenue is clean and additive
Forecast trains on real $2.14M
Net revenue consistently defined
Every month uses the same netting rule
Trends are real trends
Seasonal baselines learned
School holidays, CNY, National Day — encoded as known patterns
Forecast accounts for seasonal lift
Numbers match GL
Forecast is anchored to the same authoritative source
CFO trusts it because it reconciles
Sentosa cable car revenue spikes 20% above GL transport line. Investigation: partner batch settlement crosses month boundary. Classified: timing — partner settlement lag.
Next month, GYG settlement batch shows same pattern. System recognises the classification. Auto-resolved. No human touch.
Ticketing F&B revenue ≠ POS F&B revenue. Reason: ticketing captures bundled meal packages at package price, POS captures individual item sales. Stored as permanent variance rule.
Decision maker asks "what was total visitor revenue?" AI responds with reconciled number AND notes: "Partner channel data for Klook is 5 days delayed this period. Current figure may increase by ~$15K based on historical settlement patterns."
Traditional vendor: every issue is a new ticket. Our system: every issue makes it smarter.
AI says: "Revenue as of last closed month is $2.14M. Current month estimate: $1.95M — but partner data is 5 days behind and GL hasn't closed."
We don't just build pipelines. We encode your business rules into the data — and validate them continuously.
We've built this for a hospitality group with similar data challenges. Bronze/silver/gold pipeline patterns transfer directly. What took months the first time takes weeks now.
Column mapping, schema inference, data cleaning, transformation code — AI writes 80% of it. Our engineers review and refine. 3x faster than traditional.
No project manager layer, no 5-person squad. Engineers who understand both data and business. Direct communication, fast iteration.
No weeks spent on dashboard formatting. Ask questions, get answers with provenance. If you want dashboards later, the gold data is ready for any BI tool.
Start with financial data. See results. Then expand to ticketing, F&B, events, partners.
Dedicated cloud environment. Your data never touches other clients. AWS or Azure — your preference.
API connectors if available. SFTP / file drops for legacy systems. Database replication if you allow it. We adapt to what you have.
Configurable per source. Real-time if the source supports it, daily batch otherwise. The system tracks freshness per source.
Schema drift detection. If ticketing adds a column or changes a field name, the system flags it before it breaks downstream.
You do. We process it in your dedicated environment. Export everything at any time. No lock-in.
Yes. Gold tables are standard SQL-queryable. Power BI, Tableau, Looker — whatever you use can connect directly.
ACID transactions, time travel, schema evolution. Roll back any table to any point in time. No data loss from bad writes.
Automated checks at every layer. Schema validation, null checks, range checks, cross-table reconciliation. Issues caught before they reach gold.
Only process what changed. Daily runs take minutes, not hours. Cost-efficient on cloud compute.
Every gold table traces back to its bronze source. Know exactly which raw file produced which metric.
Re-run any pipeline safely. Same input always produces same output. No duplicate records from retries.
Gold tables structured for AI query generation. Pre-joined, pre-aggregated at the right granularity. Fast, accurate answers.