---
title: "How it works — RevCon"
description: "How RevCon connects to a PMS or manual upload, maps data into one standard model, onboards a hotel in about a day, and keeps every screen under one second."
canonical_url: "https://revcon-demo.krisnatha.com/how-it-works"
meta:
  "og:description": "How RevCon connects to a PMS or manual upload, maps data into one standard model, onboards a hotel in about a day, and keeps every screen under one second."
  "og:title": "How RevCon works"
---

**How it works**

# **One standard data model behind every connector.**

RevCon never talks to a PMS directly inside its revenue logic. Every source — Opera today, others later, or a manual upload — fills the same standard format, so pace, forecast and every report behave identically wherever the data came from.

01 · Source

### **PMS connector**

Pulls reservations created or changed since the last sync, plus inventory. Nightly (4–5 a.m. hotel time) or real-time via event feed or polling.

Operaevent feedpolling

01 · Source

### **Manual upload**

No supported PMS? A daily CSV/Excel export. Column mapping is saved after the first upload, every file is validated row by row, and a preview shows what will change.

CSVXLSX

02 · History

### **Append-only changes**

Each reservation change is saved as a new version, so history is never overwritten and same-time-last-year is exact.

versioned

03 · Model

### **Standard data model**

Hotel, room type, daily inventory, reservations, reference data and budget — one canonical shape, mapped once per hotel.

canonicalper hotel

**Onboarding**

## **A new hotel goes live in about a day.**

A guided setup wizard — the same one shown in the demo — walks through connecting, mapping, importing and checking before a hotel ever sees a live screen. Step through it:

1.
2.
3.
4.
5.
6.
7.
8.

**Setup wizard · Saranya Canggu House**Step 4 of 8

### **Map codes**

The system suggests matches from names; the hotel confirms or corrects. Unmapped codes are flagged, never dropped.

**WHL-AU → Wholesale**Suggested

**OTA-BDC → OTA**Confirmed

**CORP-X12**Unmapped

**Performance**

## **Speed is a feature, tested like one.**

Every main screen is built to load in under a second, even a chain portfolio view — the target the build is tested against, not a slogan.

**After each sync**

**Raw reservation changes**

append-only history

**Precomputed**

**Daily summary tables**

hotel × stay date × segment × channel × room type

**Cached per filter**

**Every screen < 1s**

cleared when that hotel's sync ends

### **Under one second**

Every main screen is built to load in under a second, even for a chain portfolio view — the actual target the system is tested against.

### **Precomputed, not recalculated**

After each sync, daily summary tables are built per hotel, stay date, segment, channel and room type. Pace, pickup, STLY and reports read these instead of rebuilding history.

### **Caching that clears itself**

Report results are cached per hotel and filter combination, and cleared the moment that hotel's sync finishes — never stale, never needlessly recomputed.

### **Isolated failures**

Syncs run in a background job queue with automatic retries. One hotel's failed sync never blocks another, and every screen shows when its data was last updated.

**Security**

## **Access control that matches how chains are run.**

### **Sign-in options**

Email and password with two-factor, Google or Microsoft, or company SSO — set up per organization, with optional enforcement.

**Authenticator app****Backup codes****Passkeys****Google****Microsoft****SAML / OpenID Connect**

### **Roles, scoped to level**

Admin, Revenue manager, Sales and Viewer — granted at organization, group or hotel level. One person can hold different roles at different hotels.

**Hotel** · Seminyak**Revenue manager**

**Hotel** · Ubud**Revenue manager**

**Group** · Bali**Viewer**

Example grants for one user on the demo chain

### **Audit, always on**

Every sign-in, role change, settings change and override is logged with who, when and what changed — including every AI assistant query.

08:14override · BAR 28 Dec L2→L1 · seminyak

08:02mcp.query · get\_budget\_variance · canggu

07:51role.grant · Sales · ubud

07:40signin · passkey

## **Bring your own data, or use the demo chain.**

Request a demo to see the onboarding wizard, the connector in action, and the data check that confirms the numbers match before go-live.

[**Request a demo **](https://revcon-demo.krisnatha.com/contact)

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
