Write a polite but firm email to a landlord who has not fixed the heating for three weeks. I want the repair, not a fight.
ChatGPT 5.5
Subject: Urgent Request for Heating Repair
Dear [Landlord’s Name],
I hope you’re well. I’m writing to follow up on the heating issue in my unit, which has now been unresolved for three weeks. As previously discussed, the heat is not working properly, and this needs to be repaired as soon as possible.
I want to be clear that I’m not looking for a dispute—I simply need the heating fixed so the unit is safe and comfortable to live in. Please let me know by [date/time] when a repair technician will be scheduled, or what steps are being taken to resolve the issue.
I’m happy to provide access to the unit at a reasonable time and will do my best to accommodate the repair schedule.
Thank you for your prompt attention to this. I look forward to your response.
Sincerely, [Your Name]
Asked Nov 1, 2026. Unedited.
Write a React hook that debounces a value and cancels on unmount. Include the TypeScript types.
ChatGPT 5.5
import { useEffect, useState } from "react";
export function useDebouncedValue<T>(value: T, delayMs: number): T {
const [debouncedValue, setDebouncedValue] = useState<T>(value);
useEffect(() => {
const timeoutId: ReturnType<typeof setTimeout> = setTimeout(() => {
setDebouncedValue(value);
}, delayMs);
// Cancels the pending update when value/delay changes or component unmounts
return () => {
clearTimeout(timeoutId);
};
}, [value, delayMs]);
return debouncedValue;
}Usage:
function SearchInput() {
const [query, setQuery] = useState("");
const debouncedQuery = useDebouncedValue(query, 300);
useEffect(() => {
if (!debouncedQuery) return;
// Run search using debouncedQuery
}, [debouncedQuery]);
return (
<input
value={query}
onChange={(e) => setQuery(e.target.value)}
placeholder="Search..."
/>
);
}The cleanup function clears the timeout both when the value changes before the delay finishes and when the component unmounts.
Asked Nov 1, 2026. Unedited.
A drug test is 99% accurate, and 0.5% of people use the drug. Someone tests positive. What is the probability they use it, and why does the answer surprise people?
ChatGPT 5.5
Assuming “99% accurate” means:
99% sensitivity: users test positive
99% specificity: non-users test negative
and 0.5% of people use the drug:
[ P(\text{user} \mid +) = \frac{P(+ \mid \text{user})P(\text{user})} {P(+ \mid \text{user})P(\text{user}) + P(+ \mid \text{non-user})P(\text{non-user})} ]
[ = \frac{0.99 \times 0.005} {0.99 \times 0.005 + 0.01 \times 0.995} ]
[ = \frac{0.00495}{0.00495 + 0.00995} \approx 0.332 ]
So the probability they actually use the drug is about:
[ \boxed{33\%} ]
A concrete way to see it:
Out of 10,000 people, about 50 use the drug.
Of those 50, about 49.5 test positive.
About 9,950 do not use the drug.
With a 1% false-positive rate, about 99.5 non-users still test positive.
So among positive tests, there are about:
[ 49.5 + 99.5 = 149 ]
positive results, but only 49.5 are real users.
[ 49.5 / 149 \approx 33\% ]
The answer surprises people because they focus on the test being “99% accurate” and ignore the base rate: drug use is rare. Even a small false-positive rate can produce more false positives than true positives when the condition is uncommon. This is called the base rate fallacy.
Asked Nov 1, 2026. Unedited.
What it’s good at
Ranked against 42 models, from public leaderboards and our own blind tests where we have them. How we rank
- #14of 42 for everyday chat
- #15of 42 for writing
- #18of 42 for math
The facts
ChatGPT 5.5 is OpenAI’s GPT-5.5 model. It reads images and PDFs as well as text.
Scores from artificialanalysis.ai and lmarena.ai.
- Made by
- OpenAI
- API price, per 1M tokens
- $5 in, $30 out
- Speed
- 89 tokens a second
- Artificial Analysis Index
- 38.4
- LMArena text
- 1,467
- LMArena coding
- 1,483
- Updated
- Oct 26, 2026