15,000 rooms, one answer
I joined records people already kept into one search, and showed where they disagree.
Problem
Finding a room that fits a class took anything from half an hour to weeks, and each route depended on somebody else.
The institution’s own records disagreed about what its rooms held, and nobody could see the differences.
What I did
- Used only what already existed. Floor plans, layouts, teaching profiles and surveys, joined to one room record.
- Never picked a winner. Where two records disagree, both figures show and the difference goes to the record owners.
- Used AI to write the build, and kept it out of the product, so staff get the same answer every time.
Where it stands
15,000+
rooms in one search, across more than 40 buildings.
A working prototype. No pilot has run, so there is no measured saving. A six-week pilot is proposed, with its measures set in advance.
Working prototype; a six-week pilot is proposed, measured on time to answer.
28 rooms 12 learning spaces 546 seats 1,599 m²
| Room | Floor | Known as | Use | m² | Seats |
|---|---|---|---|---|---|
| GW G.03 | Ground | Lecture Theatre 1 | Lecture theatre | 180 | 120 |
| GW G.04 | Ground | Seminar Room | Teaching room | 55 | 30 |
| GW 1.01 | 1 | Seminar Room | Teaching room | 60 | 40 |
| GW 1.02 | 1 | Seminar Room | Teaching room | 61 | 40 |
| GW 1.04 | 1 | Computer Room | Computer lab | 95 | 40 |
| GW 2.01 | 2 | Design Studio | Studio | 120 | 30 |
1 conflict GW 1.04: layout shows 40 seats, timetable lists 36. Listed for correction.
Who
- Client
- A large UK university
- Scale
- More than 15,000 rooms in over 40 buildings
- My role
- I framed the problem, designed the interface, and decided how the sources join and what counts as a conflict. Claude Code wrote the build code under my direction.
- Status
- Working prototype; pilot proposed
The situation
To find a room that fits a class, staff have four routes today. Each one costs time, and each depends on somebody else.
Where it started
It started with colleagues who teach film. The timetable gives them a room that meets the request, and it can still fail the class: film needs good acoustics, a room that goes dark quickly and a high-contrast projector. No system records any of that. So they found the best rooms themselves and ask for them by number. When colleagues move on, the next person starts again.
What I found
The room data existed, in files nobody could search together, and the know-how lived in people. That makes it a service problem: how staff find out, who they depend on, and who owns the record when it is wrong.
The records also disagreed with each other. Most of it is nobody’s mistake: a layout drawing counts chairs, and the timetable counts bookable seats. Nobody could see the differences before.
What I decided
- Used only what already existed. Floor plans, furniture layouts, teaching profiles and occupancy surveys, joined to one room record. The sources stay where their owners keep them, with no migration first.
- Made one search answer the real question. Which room, where, how many seats, and set up for what kind of teaching.
- Never picked a winner. Where two records disagree, the finder shows both figures and puts the difference on a list for the people who own the records. Corrections then happen once, at source.
- Used AI to write the build, and kept it out of the product. Staff and record owners need the same answer every time, and a way to see where it came from. So AI wrote ordinary code that reads the files the same way each time, and the finder itself calls no AI model. One command rebuilds everything.
- Made access part of a room’s details. Lifts, hearing loops and Changing Places sit with the floor and the room. It works by keyboard, in print and on a phone.
The screens
Three screens from the working tool, with sample data in place of the institution’s records.
“30 seats or more”: every match, in one list
Filters
Teaching spacesTimetabled
Function
Teaching roomComputer labLecture theatreSeminar / meetingStudioLaboratory
Seats
Any5+10+20+30+50+100+
Buildings A–Z / Search results
Filtered rooms
9 rooms7 learning spaces430 seats863 m²
9 rooms 30+ seats ×
| Room | Building | Floor | Known as | Use | Area m² | Seats |
|---|---|---|---|---|---|---|
| GW G.02 | Glassworks | GF | Café | CaféCatering | 150.0 | 60 |
| GW G.03 | Glassworks | GF | Lecture Theatre 1 | Lecture TheatreTimetabled Teaching | 180.0 | 120 |
| GW G.04 | Glassworks | GF | Seminar Room | Teaching RoomTimetabled Teaching | 55.0 | 30 |
| GW G.05 | Glassworks | GF | Study Zone | Study ZoneLibrary Services | 90.0 | 40 |
| GW 1.01 | Glassworks | 1 | Seminar Room | Teaching RoomTimetabled Teaching | 60.0 | 40 |
- One filter, one answer. “30 seats or more” is a single choice, not a form to fill in.
- The totals come first. Nine rooms, seven of them learning spaces, 430 seats: enough to know whether the search is worth reading.
- What staff call it, and what it is for. “Known as” and “Use” sit beside the room number, because people ask for rooms by name.
When two records disagree, the room shows both
Glassworks / Floor 1 · CG-GW-012
GW 1.04
Learning spaceTimetabledTeaching - Not Offices
Other learning spaces on this floor
1.01 Seminar Room · 401.02 Seminar Room · 401.03 Teaching Room · 301.05 Computer Room · 24
- The space record says 40. The source is named under the figure.
- The timetable says 36. Neither figure is overwritten. The difference goes on the list for the people who own the records.
- What kind of room it is. Learning space, timetabled, teaching: the words the estate records already use.
One building, from the same records
Filters
Teaching spacesTimetabled
Function
Teaching roomComputer labLecture theatreSeminar / meetingStudioLaboratory
Seats
Any5+10+20+30+50+100+
Buildings A–Z / Glassworks
Glassworks GW
28 rooms12 learning spaces546 seats1,599 m²
Floors AllGF123
28 rooms in Glassworks
| Room | Floor | Known as | Use | Area m² | Seats |
|---|---|---|---|---|---|
| GW G.01 | GF | Reception | ReceptionFacilities | 38.0 | — |
| GW G.02 | GF | Café | CaféCatering | 150.0 | 60 |
| GW G.03 | GF | Lecture Theatre 1 | Lecture TheatreTimetabled Teaching | 180.0 | 120 |
| GW G.04 | GF | Seminar Room | Teaching RoomTimetabled Teaching | 55.0 | 30 |
- A building in one line. Rooms, learning spaces, seats and floor area, added up from the joined records.
- Floor by floor. The same list, narrowed to one floor.
- Filter by what a room is for. Teaching room, computer lab, studio: the question staff actually ask.
What every build lists for the record owners
Where it stands
This is a prototype. No pilot has run and it has not been adopted. Agreement is what the plan asks for, not something I have won yet.
- 1 · Data-owner sign-off on what may be shown, and to whom
- 2 · Intranet hosting
- 3 · A six-week pilot
- 4 · Corrections at source, by the teams that own each record
- Time to answer five real room questions
- “Where is room X” questions each month
- Rows cleared from the list of conflicts
- Searches that found nothing, and satisfaction
- One searchacross more than 15,000 rooms in over 40 buildings, built from records the institution already had
- Conflicts visibleevery build lists what does not join, for correction at source
- Next: a pilotsix weeks, with its measures set in advance
What this case cannot say
- No pilot has run, so there is no measured saving. The times above are estimates.
- The institution is not named, and every screen shows sample data.
- The finder holds what the files hold. Acoustics and blackout are in no file, so that knowledge still has to be captured.