| Property | namkhan | NEXT_PUBLIC_PROPERTY_ID | env var |
| Default rate plan | Non Refundable (id 413802) | lib/compiler/roomPricing.ts | v1.1 |
| Default window | 2026-05-01 → 2026-09-30 | OfferConfigForm initial state | v1.1 |
| Default currency | USD (LAK base) | NEXT_PUBLIC_DEFAULT_CURRENCY | env var |
| FX lock days | 7 | FX_LOCK_DAYS env (fallback 7) | env var |
| Margin floor · rooms | 60% | MARGIN_FLOOR_ROOMS_PCT (fallback) | env var |
| Margin floor · F&B | 70% | MARGIN_FLOOR_FNB_PCT (fallback) | env var |
| Margin floor · activities | 35% | MARGIN_FLOOR_ACT_PCT (fallback) | env var |
| Variant intensity ladder | cheapest=light · mid=medium · dearest=full | lib/compiler/variants.ts | v1.1 |
| Recommended marker | middle variant by price (auto) | lib/compiler/variants.ts | v1.1 |
| Deposit % at booking | 30% | app/api/checkout/session/route.ts | v1.1 |
| Balance due | arrival − 30 days | spec | v1.1 |
| Active pricelist SKUs | 15 | pricing.pricelist | live |
| Rate seasons | 4 | pricing.seasons | live |
| Parser model | regex (MVP) | lib/compiler/parse.ts | v1.1 |
| Variant builder | real Cloudbeds NRF rate × selection | lib/compiler/variants.ts | live |
| PDF render | STUB · returns placeholder URL | app/api/compiler/runs/[id]/render | v1.1 |
| Stripe checkout | STUB · holds booking, no charge | STRIPE_SECRET_KEY missing | env var |
| Cloudbeds reserve on payment | STUB · not auto-created | CLOUDBEDS_REFRESH_TOKEN missing | env var |
| Klaviyo lead flow | STUB · capture writes to web.subscribers, no flow | KLAVIYO_PRIVATE_KEY missing | env var |