Stay: Rooms & Flats (Raj Sharan)¶
Part of the Aashray Business Logic. Related: Booking Lifecycle & Engine, Payments, Credits & Reconciliation, Adhyayan & Utsav, Status Vocabulary & Automatic Checks.
Raj Sharan is on-site accommodation at the Research Centre. It uses finite room inventory and member-owned flats. The member app treats shared rooms and flats as separate products. The backend also allows a flat booking that includes the owner, and that owner's stay is free.
Room inventory: availability, assignment, and block-out dates¶
A room booking is per person, for a date range. The member does not pick a room. The system assigns a free room that matches room type, gender, and the selected floor category. A booking gets a room number only when the system finds a room. A waitlisted booking uses a placeholder until staff or the system moves it forward.
How the system picks a room (backend):
- Every room has a type (AC or Non-AC) and a category: Male, Female, Senior Citizen Male, or Senior Citizen Female. The "Only Ground Floor" preference books from the senior citizen rooms of the person's gender. "Any floor" books from the plain Male or Female rooms.
- The room must not be blocked by staff, and no booking other than a cancelled one may hold it for any night of the stay.
- From the rooms that qualify, the system takes the lowest room number.
- When one booking covers several people, each person gets a different room.
On top of day-to-day availability, staff can also close off the inventory entirely for a stretch of time: they can mark date ranges during which the Research Centre is closed to new arrivals, for maintenance, Utsavs, or other operational reasons. A member cannot book a room whose stay would fall inside a blocked range. (This block-out control only covers rooms, not flats, see "Known limitations today," below.) When staff create an Utsav at the Research Centre, the backend adds a block for the Utsav dates automatically, with the Utsav name as its comment. A member who attends that Utsav can still book a room around it: the system books only the nights before and after the Utsav, because the Utsav package covers its nights. A stay that falls wholly inside the Utsav they attend is refused.
What a member can request¶
When booking a room, a member chooses: - Room type, Non-AC (the default) or AC. - Floor preference, Any floor (the default) or Only Ground Floor. As described above, this determines which pool of rooms the system assigns from.
A member can book a room for themselves, for a guest, or for one or more Mumukshus they're acting on behalf of. When booking for a group, the group can be split into smaller sub-groups, each with its own room type and floor preference, for example, some people wanting AC and others Non-AC on the same trip.
One-Day Visit¶
Alongside a normal date-range stay, a member can book a same-day visit, arriving and leaving the same day, with no night spent. This is booked instantly with no payment step: it's always Non-AC-equivalent, has no floor preference, and costs nothing.
A member's stay list¶
The member app shows one list of room and flat bookings, newest arrival first, 10 at a time (backend). The list holds every booking where the member is the person staying or the booker. Each entry shows the dates, nights, status, room or flat number, the amount and the payment status. A waitlisted booking also shows the reason it is waiting, in wording that the backend supplies.
Flats¶
Flats sit outside the room-inventory model above. A flat is owned by one or more members, not by the centre, so there is no shared room pool to assign from. The member app lets an owner reserve the flat for guests or Mumukshus. The backend can also include the owner in the occupant list. A flat has no room type or floor choice.
If the owner themselves is one of the people staying in their own flat during that reservation, their own stay is free; everyone else pays the standard charge (see below).
A flat cannot be an extra. A flat as the main booking cannot include a room or Utsav booking as an extra. The current booking flow can include food, travel, or Adhyayan extras with a flat.
More flat rules (backend):
- Only a member who owns a flat can book it from the member app. The booking always uses that owner's flat.
- The system refuses the booking when a person in it already has a flat booking for any of the same nights, unless that booking is cancelled or checked out.
- The system checks people, not flats. It does not limit how many bookings one flat holds on the same nights.
- A person who is not a Permanent Resident and would go over 9 nights within 30 days is waitlisted with no charge. A flat owner's own stay is confirmed at once. Every other person's stay waits for payment.
- A member in India pays online when the total is more than zero.
- The backend still accepts flat bookings from an older version of the member app. They follow the same rules.
Charges¶
- An overnight Non-AC room costs ₹700 per night.
- An overnight AC room costs ₹1,100 per night.
- A one-day visit is free.
- Staying in someone else's flat costs a nightly rate equivalent to the Non-AC room rate, regardless of the flat's own amenities, flats don't have a separate AC/Non-AC pricing tier. The flat owner's own stay in their own flat is free.
- Any credit balance a member holds can be applied toward a room or flat charge, the two draw from the same pool of credit.
- A late room check-out adds a fee (see the next section). A flat has no late check-out fee.
- Payment and credit mechanics generally follow the rules described in Payments, Credits & Reconciliation.
How a stay actually happens: room reveal, check-in, and check-out¶
The member app shows a room number only after payment is complete and the check-in date is within 24 hours or has passed. It shows a placeholder before then. A waitlisted room booking keeps its placeholder. A flat number shows without this room-number delay.
Checking a guest in and out is likewise a staff action, not something the member does themselves.
- Normal staff check-in requires a confirmed booking that waits for check-in, which means it is paid or has nothing to pay. It cannot happen before the scheduled arrival date. For a room, the backend also refuses check-in while a payment is still due online or at the office. If a room guest arrives early, staff are told to make a new booking with the real arrival date, or to ask the guest to make one. An early flat check-in is simply refused. The person staying gets a WhatsApp message with the room number.
- Gate check-in. When the gate scans a card at entry, the backend checks in that person's confirmed room or flat booking whose arrival date is today. It does not send a message. See Services: WiFi, Maintenance, Support & Gate.
- Check-out on the scheduled date, by 11:00 AM IST, is the normal, no-extra-charge case.
- Checking out a room later on the scheduled date incurs an extra charge for stays of one night or more. Until 3:00 PM IST the fee is half the nightly rate: ₹350 for Non-AC and ₹550 for AC. After 3:00 PM it is the full nightly rate: ₹700 for Non-AC and ₹1,100 for AC. The fee is a separate payment due at the office, recorded under the person who stayed, even when someone else paid for the stay. That person gets a push notification with the amount and a WhatsApp message with the check-out time and the fee.
- Leaving early (before the originally booked departure date) recalculates the stay for the nights actually used and credits back the difference, the member is never charged more than they would have been for the shorter stay. For a room, the original booking becomes admin cancelled, its payment turns into credit for the payer, and a new checked-out booking records the nights used and a charge for them that the credit pays. For a flat, the booking itself is shortened. The payer gets a push notification about the credit. If the new amount would be more than the amount paid, the backend refuses the check-out.
- Staying longer than booked is meant to be handled by extending the stay and charging for the extra nights, but this currently isn't charged at all. For a room or a flat checked out after the departure date, staff simply close out the booking as checked out. No late fee applies either, because the fee applies only on the scheduled departure date.
Cancellation¶
A member can cancel their own room or flat booking. Cancelling a paid booking turns the full price into stay credit; cancelling an unpaid one returns any credit already applied to it. There is no cash refund (see Payments, Credits & Reconciliation).
Member cancellation rules (backend):
- The person staying or the booker can cancel.
- The booking must be waitlisted, waiting for payment, or confirmed and waiting for check-in. A checked-in booking cannot be cancelled.
- The member who cancels gets a cancellation email with the booking ID and the original dates. The email names Raj Sharan for a flat booking too.
- When someone else booked the stay, the other person gets a push notification.
- WhatsApp messages follow the table in Stay messages.
Staff room and flat operations¶
The room pages in the staff panel are open to the office, room, and super admin roles (staff panel and backend).
Staff room booking¶
Staff enter a mobile number or card number, the dates, the room type, and the floor preference (staff panel). The dates start as today to one week later. The backend then:
- Refuses the booking when the departure date is before the arrival date, when no card matches, or when the person already has a waiting, pending, confirmed, or checked-in room booking on any of the same nights.
- Books a free one-day visit when the dates are the same.
- Waitlists a single night on an Utsav boundary date.
- Otherwise assigns a room as described above. When no room is free, it refuses the booking. A staff booking is never waitlisted for lack of a room.
- Records the charge as a payment due at the office and applies the person's stay credit at once. When credit covers the full charge, the booking is confirmed.
- Does not check block-out dates.
- Allows a stay over 9 nights within 30 days, but returns a warning (see "Known limitations today").
The person gets a booking email, a WhatsApp message that matches the booking status, and a push notification that staff booked the stay.
Staff flat booking¶
Staff enter the guest's mobile number, the dates, and a flat from the list of all flats (staff panel). The backend refuses the booking when the dates are reversed, when no card matches, or when the person already has a flat booking on any of the same nights. The owner of the chosen flat stays free and is confirmed. Anyone else is charged ₹700 a night as a payment due at the office, with stay credit applied first. The 9-night rule gives a warning only.
The person staying gets a booking email, a WhatsApp message, and a push notification that says the flat booking is confirmed. When the flat's owner is a different person, the owner also gets a WhatsApp message about the booking.
Staff status changes¶
In the Room Booking Reports page, the Update Status action is open for waitlisted bookings and for bookings that wait for payment (staff panel). The window shows the person's stay credit, the base amount, the credit to be used, and the amount after credit. Staff can add a description.
| From | To | What the backend does | Messages |
|---|---|---|---|
| Waitlisted | Pending payment | Charges the nights at ₹1,100 (AC room) or ₹700 (Non-AC room or flat). Uses the payer's stay credit first. The payer is the booker, or the person staying when they booked for themselves. If credit covers the charge, the booking is confirmed. Otherwise the rest is due at the office. | Push to the person staying and the booker asks for payment within 24 hours, or says the booking is confirmed when credit covers it. WhatsApp per the table below. |
| Pending payment | Confirmed, waiting for check-in | Marks the latest payment as completed. Staff use this when the payment arrives at the office. | Push says the booking is confirmed and ready for check-in. WhatsApp. |
| Waitlisted or pending payment | Admin cancelled | Marks the latest payment admin cancelled, unless it is already settled or cancelled. | Push to the person staying and the booker. WhatsApp. |
The backend refuses a change to the same status, a change back to waitlisted, and any change to an admin-cancelled booking. Promotion re-checks the 9-night rule and returns a warning, but it does not block.
Changing a booking's room¶
Staff can change the room of a room booking of one night or more, unless it is checked out or cancelled (staff panel). The page lists every room of the same type and category that is not blocked. It does not check whether those rooms are booked on the booking's dates. The person staying gets a push notification and a WhatsApp message with the new room number and dates.
Staff check-in, check-out, and cancellation¶
From the reports page, staff check in confirmed bookings and check out checked-in bookings, one at a time or in bulk. The rules are in How a stay actually happens.
Staff can cancel any room or flat booking that is not checked in, checked out, or already cancelled:
- Room. The booking becomes admin cancelled. A paid booking's full price becomes credit for the payer. An unpaid booking returns the credit applied to it. The person staying and the booker get a push notification and WhatsApp messages.
- Flat. The booking becomes admin cancelled. The payment record does not change (see "Known limitations today"). The person staying and the booker get a push notification and WhatsApp messages.
Room Booking Reports¶
Staff choose the room or flat report, one or more statuses, and a date range (staff panel). The statuses are checked in, checked out, waiting for check-in, waitlisted, pending, cancelled by the member, and cancelled by staff. The report lists bookings whose arrival or departure date falls inside the range. Each row shows the booking ID, guest name, mobile number, centre, room or flat, room type, dates, nights, booking status, latest payment status, payment description, and booker. Staff can download the list to Excel.
Bulk actions work on the selected rows. Each action asks for confirmation and skips rows in the wrong status:
- Bulk check-in, for bookings that wait for check-in.
- Bulk check-out, for checked-in bookings.
- Bulk cancel, for bookings that can be cancelled.
- Bulk status update, which sends each row to the matching check-in, check-out, cancel, or status-change action.
Late Checkout Fees report¶
The report has three views: fees due at the office, fees paid, and fees revoked (staff panel). Each row shows the amount, booking ID, guest name, mobile number, room, room type, dates, and nights. Staff can revoke a due fee. The guest then gets a WhatsApp message that the fee was waived, with the amount and booking ID. Staff can restore a revoked fee to due. Restoring sends no message.
Occupancy and daily guest count reports¶
- Occupancy report. Lists room bookings that are checked in, where the arrival date is today or earlier and the departure date is after today. It shows the booking, guest, mobile number, centre, room, type, dates, nights, and booker. Staff can download it to Excel. It does not include flats.
- Daily guest count and availability report. For each date in a range, it counts AC and Non-AC room bookings that hold that night, if they are pending payment, waiting for check-in, or checked in. It also counts the AC and Non-AC rooms still free that night, not blocked and not booked. A count opens the list of guests (card, name, mobile number, room, dates) or the list of free rooms (room, type, category). Both lists and the summary download to Excel.
Managing rooms and blocking the Research Centre¶
- Manage Rooms. Lists every room with its type, category, and status (staff panel). Staff can block or unblock a room, and change its type and category. A blocked room is skipped for new assignments and for room changes. Blocking does not change bookings that already hold the room.
- Block or unblock the Research Centre. Staff add a date range with a comment. The backend refuses a range that overlaps an active block. The list shows blocks that end today or later, with their status. Unblocking makes a block inactive. Blocks made for an Utsav appear in the same list.
Booking lookup by card¶
Two staff pages list all room bookings or all flat bookings for one card number, with the dates, nights, and status (staff panel). The room menu does not link to them today.
Stay messages: WhatsApp, email, and push¶
Messages go to the person staying. When someone else made the booking, the booker gets a separate message that names the person staying. A message is sent only to a card with a mobile number (backend).
New booking
| Booking result | Person staying | Booker, when different |
|---|---|---|
| Room confirmed | Dates and room type, naming the booker | Dates, room type, and payment reference |
| Room waits for payment | Dates and room type, payment pending | Dates and room type, payment pending. A member outside India gets a separate version. |
| Room waitlisted | Dates and room type, waiting | Dates and room type, waiting |
| One-day visit | Visit date | Visit date |
| Flat confirmed | Dates and flat number | Dates, flat number, and payment reference |
| Flat waits for payment | Dates and flat number, payment pending | Dates and flat number, payment pending. A member outside India gets a separate version. |
| Flat waitlisted | No message | No message |
A member who books for themselves gets the booker version.
Room status changes
| Status change | Person staying | Booker, when different |
|---|---|---|
| Waitlisted to pending payment | Payment pending, only when they booked for themselves | Payment pending |
| Waitlisted or pending payment to confirmed | Confirmed, waiting for check-in | Confirmed |
| Waitlisted or pending payment to cancelled by the member | Cancelled | Cancelled |
| Waitlisted to cancelled by staff | Cancelled by staff | Cancelled by staff |
| Pending payment to cancelled by staff | Cancelled. The wording differs for the automatic 24-hour check and for staff. | Same two versions |
| Confirmed to cancelled, by the member or staff | Credit amount, when they booked for themselves and are not a guest. Otherwise the booker's name. | Credit amount and the name of the person staying |
| Confirmed to checked in | Room number | No message |
| Checked in to checked out | Check-out time, and the late fee when one applies | No message |
| Late fee revoked | Amount and booking ID | No message |
| Room changed by staff | New room number and dates | No message |
Flat status changes. Both the booker and the person staying get a message with the dates and flat number. When the person staying booked for themselves, they get both versions.
| Status change | Content |
|---|---|
| Pending payment to confirmed | Confirmed. The booker's version adds the payment reference. |
| Pending payment to cancelled | Cancelled by the member, by staff, or by the automatic 24-hour check, each with its own wording |
| Confirmed to cancelled | Cancelled by the member or by staff. The booker's version adds the credit amount. |
| Confirmed to checked in | Checked in |
| Checked in to checked out | Checked out |
Email and push
- Email: a booking email for staff-made room and flat bookings, and a cancellation email to the member who cancels. The automatic 24-hour check sends its own cancellation email (see Status Vocabulary & Automatic Checks).
- Push: staff booking, status changes made by staff, room change, late fee, early check-out credit, and cancellation by staff or by the other party.
Known limitations today¶
- Two people can end up in the same room. When staff change a booking's room, the backend saves the new room without checking whether it is already taken for those dates. Separately, two member bookings made at the same moment can receive the same room, because the check for existing bookings can miss one that is being saved at that moment (backend). The room-change work fixes both; it is not merged yet.
- Room waitlisting has three current causes. A stay can exceed the 9-night limit within a 30-day window (Permanent Residents are exempt), have no matching room, or be a single night on an Utsav boundary date. The rolling-limit and no-room cases carry a reason. Boundary waitlist promotion is manual.
- Flat waitlisting can also result from the 9-night limit within a 30-day window. Permanent Residents are exempt from this limit.
- Block-out dates are only enforced for rooms, not for flats. A flat can currently be booked over a date range the Research Centre has otherwise closed. Staff room bookings do not check block-out dates either.
- Overstaying a room booking isn't charged extra today, even though the intended design is to charge for the extra nights.
- Promoting a waitlisted room does not assign a room. The status window shows a room number box, but the staff panel does not send it. The booking keeps its placeholder until staff use the room change, which does not check dates.
- The "pay within 24 hours" push after promotion is not enforced. The promoted charge is due at the office, and the automatic 24-hour check covers only online payments.
- Staff cancellation results differ by path (the shared staff cancel action is described in Booking Lifecycle & Engine). The room Cancel action returns credit by the normal rule. Cancelling through the status window does not return credit applied to a waitlisted or pending booking.
- Staff flat cancellation does not touch the payment. A paid flat booking earns no credit, and a pending payment stays open. The WhatsApp message to the booker still states a credit amount.
- Staff never see the 9-night warning. The backend returns it for staff room bookings, staff flat bookings, and promotions, but the staff panel shows only the success message.
- One flat can hold overlapping bookings. The backend checks each person, not the flat, and staff can book any flat for anyone.
- Self-booked flats get two WhatsApp messages per status change. Every staff-made flat booking counts as self-booked. The flat owner gets no status-change message.
- A waitlisted flat booking sends no WhatsApp message, when it is made or when staff promote or cancel it.
- The reservation report misses long stays. A stay that starts before the chosen range and ends after it does not appear.
- The occupancy report misses guests on their departure day, and it does not include flats.