Example Homestay · fact sheet · every line confirmed by the owner
- F1Deluxe room, per night₹3,200
- F2Family room, per night₹4,500
- F3Check-in1 pm
- F4Check-out11 am
- F5Front desk phone+91 90000 00000
- F6Breakfasthome-cooked breakfast included
- F7Parkingspace for a few cars at the gate; the lane beyond it is narrow
- F8Wi-FiWi-Fi in the rooms; the signal is weak in the garden
- F9Distance from bus standabout 2 km from the bus stand
- F10Winter stay offer15% off stays of 3 nights or more
01 / 07
One sheet of facts
When an owner sets up Shiva, they fill in a fact sheet: room prices, check-in and check-out, the phone number, policies, offers. It starts from a pack for their kind of business, and the owner confirms every line.
This sheet, and the owner’s own notes, are the only places a fact in a reply may come from.
02 / 07
A wrong price
Here a draft says the deluxe room is ₹3,500 a night. The fact sheet says ₹3,200.
Plain code finds every price, phone number, time, date and percentage in the draft and looks each one up in the fact sheet. ₹3,500 isn’t there, so the line gets a wavy underline and the word [check], and Approve stays off, with the reason written above it.
The server checks again when Approve is pressed, so the rule holds even if someone gets past the screen.
03 / 07
Try it yourself
Type any price into the draft. The check is not fooled by how a number is written: “₹3,200”, “Rs 3200/-” and “₹३२००” in Devanagari digits are the same price.
The same check runs again on any edit the owner makes. A hand-typed wrong price is still a wrong price.
04 / 07
Not just prices
Times, distances, phone numbers, dates, e-mails and percentages are checked the same way. So is a sentence like “we have fixed the Wi-Fi”: a promise that something was repaired must come from the owner’s own note.
Add a line on the stage, then tick the owner’s note and watch the repair claim become allowed.
05 / 07
Claims without numbers
“Every room has a view of the snow peaks” has no number in it. Claims like this go to a separate claim check, a model that sees only the cited sources. A claim no source supports is marked in the letter, in words, for the owner to look at.
It is never quietly rewritten. The owner sees it and decides: edit, reject, or approve if they know it is true.
06 / 07
If a check can’t run, Approve stays off
A check that didn’t run is not a check that passed. If the claim checker can’t be reached, the card says Not checked and Approve stays off until it runs.
The old system this replaces passed drafts with made-up fallback scores when a check failed. Shiva never does.
07 / 07
Why code, not a model
A model asked “does this match?” can miss a single digit. Research on automatic checkers found they make errors on fine-grained facts, and that a citation next to a sentence often doesn’t support it. A wrong price is the most expensive mistake a small business can publish.
So the facts that must be exact are checked by exact rules. Models are used where judgement is needed, and their results are shown to the owner, who decides. Next: how the reply sounds like the owner.

