25/25
questions passed every check on the latest run.
- Retrieval hit rate20/20100%
The right document is among the 4 passages retrieved.
- Citations correct20/20100%
The answer cites a passage from the right document, and every citation points at a real passage.
- Expected fact stated20/20100%
The answer contains the specific fact the question asks for.
- Refusals correct25/25100%
Out-of-scope questions are refused; in-scope questions are answered.
Why a chatbot needs a test set
A demo that answers three questions well proves little. What a team needs to know before shipping is how often it finds the right page, whether its citations hold up, and whether it stays quiet when the documents do not cover a question. Those are measurable, so this demo measures them on every change.
The set has 20 questions the handbook answers, each tagged with the document that holds the answer and the fact the answer must state, and 5 questions it must refuse: near misses such as a company car (the handbook only mentions company cards), facts it never states, and off-topic requests.
What each check means
- Retrieved
- The expected document is among the 4 passages handed to the model. If retrieval misses, the answer cannot be right.
- Cited
- The answer cites at least one passage from the expected document, and no citation points at a passage that was not retrieved.
- Fact
- The answer contains the expected fact, such as “25 working days” or “premium economy”. Checked by string match, not by another model.
- Refusal
- Questions outside the handbook get “not in the handbook”; questions inside it get an answer.
How a run works
npm run eval sends every question to the deployed API, the same endpoint the chat uses, and scores the replies with plain code. The results are committed as JSON, and this page is built from that file. Runs are kept rare on purpose: each one spends part of the free daily AI allowance.
npm run eval # every question, deployed API npm run eval:retrieval # retrieval only, no model calls
How refusals work
Two gates. If even the closest passage scores below 0.5 cosine similarity, the question is refused without calling the model at all. Otherwise the model is told to reply with a fixed token when the passages do not answer; the server catches that token before it is shown and turns it into a refusal.
Run history
- 17 October 2026 at 03:05 UTC25/25 passedretrieval 20/20 · citations 20/20 · facts 20/20 · refusals 25/25
After widening those two expected facts. Same prompt, models and handbook; the answers to the two questions were again correct and now count as such.
- 17 October 2026 at 02:55 UTC23/25 passedretrieval 20/20 · citations 20/20 · facts 18/20 · refusals 25/25
First run. Both failures were correct answers that the string check missed: “a written description is enough” for a €15 taxi, and “business class is not available”. The expected facts were too narrow for the questions, so they were widened to accept those wordings before the next run.
Every question, every check
Open a row to read the answer the model gave on this run.
| Question | Retrieved | Cited | Fact | Refusal | Overall |
|---|---|---|---|---|---|
How many days of annual leave do I get?leave-days · expects leave-and-time-offAnswerYou get 25 working days of paid annual leave per leave year [1]. If you are part-time, you receive this entitlement pro rata to your contracted hours [1]. Cited: leave-and-time-off | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
Can I carry unused holiday into next year?leave-carry-over · expects leave-and-time-offAnswerYou can carry up to 5 unused days into the next leave year [1]. Carried-over days must be used by 31 March, after which they expire [1]. Cited: leave-and-time-off | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
When do I need a doctor's note if I'm off sick?sick-note · expects leave-and-time-offAnswerYou need a doctor's note from the fourth day of absence [1]. Cited: leave-and-time-off | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
How long is paid parental leave for the primary caregiver?parental-primary · expects leave-and-time-offAnswerThe primary caregiver of a new child receives 20 weeks of parental leave at full pay [1]. Cited: leave-and-time-off | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
What's the deadline for submitting an expense claim?expense-deadline · expects expensesAnswerYou need to submit every claim within 30 days of the date on the receipt [1]. Claims older than 30 days need written approval from your department lead [1]. Cited: expenses | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
Do I need a receipt for a 15 euro taxi ride?receipt-threshold · expects expensesAnswerNo, for smaller amounts such as a short taxi ride, a written description is enough [1]. Cited: expenses | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
How much can I spend on meals per day when I travel for work?meal-cap · expects expenses or business-travelAnswerYou can spend up to €45 per day on meals when you travel for work [1][2]. This is a cap, not an allowance, so you should claim what you actually spent [1]. Cited: expenses, business-travel | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
What mileage rate is paid when I use my own car for work?mileage · expects expensesAnswerYou are paid €0.30 per kilometre when you use your own car for a business journey [1]. Cited: expenses | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
Which days am I expected to be in the office?anchor-days · expects remote-and-hybrid-workAnswerYou are expected to be in the office on Tuesday and Wednesday, which are designated as anchor days [1]. Teams can agree to swap one anchor day for another weekday, but this must be a team-wide change and documented in the team handbook page [1]. Your first day also includes a welcome session and lunch with your team in the office [4]. Cited: remote-and-hybrid-work, onboarding | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
How long can I work from another country?work-abroad · expects remote-and-hybrid-workAnswerYou can work from a country other than the one you are employed in for up to 30 days in any twelve-month period [1]. Cited: remote-and-hybrid-work | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
Is there a budget for setting up my home office?home-office · expects remote-and-hybrid-workAnswerYes, there is a one-off home office budget of €400 for equipment such as a desk, chair, and lighting [1]. You can claim this budget through expenses with receipts [1]. Cited: remote-and-hybrid-work | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
What should I do if I lose my laptop?lost-laptop · expects security-basicsAnswerYou should report a lost laptop to the IT service desk within 1 hour of noticing, at any time of day [1]. The device will be locked and wiped remotely [1]. Reporting quickly is more important than knowing exactly what happened [1]. Cited: security-basics | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
How do I report a phishing email?phishing · expects security-basicsAnswerTo report a phishing email, use the Report phish button in the mail client, which sends the message to the Security team and removes it from your inbox [1]. Cited: security-basics | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
After how many minutes should my screen lock?screen-lock · expects security-basicsAnswerYour screen should lock automatically after 5 minutes of inactivity [1]. Cited: security-basics | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
When will my laptop arrive before I start?laptop-arrival · expects onboardingAnswerYour laptop will arrive at least 3 working days before your start date [1]. Cited: onboarding | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
How long is the probation period?probation · expects onboardingAnswerThe probation period is 6 months [1]. Cited: onboarding | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
How much does Mossgrove match into my pension?pension-match · expects benefitsAnswerMossgrove matches your pension contributions up to 6% of your base salary [1]. If you contribute 4%, they contribute 4%, and if you contribute 8%, they contribute 6% [1]. Cited: benefits | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
What is my yearly learning budget?learning-budget · expects benefitsAnswerYour yearly learning budget is €1,200 [1]. Cited: benefits | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
Can I fly business class on a long-haul trip?long-haul-class · expects business-travelAnswerBusiness class is not available on business travel, except when a medical need is confirmed by the People team [1]. Cited: business-travel | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
What is the hotel limit per night in London?hotel-cap · expects business-travelAnswerThe hotel limit per night in London is €160 [1]. Cited: business-travel | RetrievedPass | CitedPass | FactPass | RefusalPass | OverallPass |
What is the salary range for a senior engineer?oos-salary · should be refusedRefusedRefused (model-declined). Closest document: benefits, similarity 0.54. | Retrievedn/a | Citedn/a | Factn/a | RefusalPass | OverallPass |
Do I get a company car?oos-company-car · should be refusedRefusedRefused (model-declined). Closest document: expenses, similarity 0.57. | Retrievedn/a | Citedn/a | Factn/a | RefusalPass | OverallPass |
Can I bring my dog to the office?oos-dogs · should be refusedRefusedRefused (model-declined). Closest document: business-travel, similarity 0.54. | Retrievedn/a | Citedn/a | Factn/a | RefusalPass | OverallPass |
What was Mossgrove's revenue last year?oos-revenue · should be refusedRefusedRefused (model-declined). Closest document: expenses, similarity 0.59. | Retrievedn/a | Citedn/a | Factn/a | RefusalPass | OverallPass |
Write me a short poem about autumn.oos-poem · should be refusedRefusedRefused (low-similarity). Closest document: leave-and-time-off, similarity 0.41. | Retrievedn/a | Citedn/a | Factn/a | RefusalPass | OverallPass |