What inspired Limnim
Hotel cancellation policies are written as rules, but front-desk teams need to answer a practical question: what might a booking cost to cancel at a particular property-local time? Limnim focuses on turning that policy language into a traceable estimate and a reply staff can review.
How it works
Staff provide the policy text, booking amount and currency, the property's IANA time zone, and an optional check-in time. For live analysis, AI proposes explicit cancellation thresholds with source quotes. Limnim checks each quote and proposed date, time, boundary wording (such as “after” versus “on or after”), and percentage penalty against the submitted policy. Supported rules are resolved to property-local times, and potential penalties and refunds are calculated locally. An interactive timeline shows the deadlines and amounts. A deterministic reply includes the selected time, calculation, relevant policy quote, and estimate disclaimer for staff to review and copy through their existing channel.
Challenges and limits
Policies can omit a year or time, use ambiguous wording, include conflicting rules, or mention unsupported fee types. Limnim leaves unclear or unsupported cases unresolved instead of guessing. The fictional Tokyo sample runs without an API call; live extraction still needs a successful funded API request. Estimates are not confirmed hotel refunds or legal interpretations. Limnim does not connect to a PMS, message guests, book or cancel services, or guarantee refunds. A later PMS integration could pair a resolved answer with a hotel-approved option such as late checkout only after checking its rules, availability, and price.
What I learned
Building Limnim taught me to keep each cancellation rule tied to its source. The app checks that extracted quotes appear in the submitted policy, validates supported thresholds, and calculates potential refunds and penalties locally. Its timeline and staff reply use those checked results; unclear terms remain unresolved. I also learned to distinguish the sample from live AI: the sample runs without an API call, while the latest real provider check hit a credit limit, so live extraction still needs a successful funded check.
Built With
- decimal.js
- generative-ai
- javascript
- luxon
- next.js
- node.js
- playwright
- react
- typescript
- vitest
- web
- zod
Log in or sign up for Devpost to join the conversation.