Allocation Run

Upload the exported survey result Excel file or run the bundled dummy data.

Extra-long beds
Students -
Rooms -
Pair Penalties -
Allocation Score -

Step Progress

Progress updates as each allocation step reports its result.

Waiting

Final Room Allocation

Each row summarizes one room and lists its four student places.

Run an allocation to render room rows.
Select a room to inspect the students' raw survey result rows.

Room Scores

Lower room score means lower average pair penalty.

How allocation works

  1. Survey answers are converted into comparable scores for chronotype, environment, hygiene, social behavior, and conflict handling.
  2. Students are only compared with same-sex students, then pair penalties are calculated. Lower penalties mean the pair is more compatible.
  3. The allocator forms four-person rooms by starting with chronotype-sensitive students and choosing the lowest-penalty same-sex candidates.
  4. Room score is the average pair penalty inside that room. Lower is better; a partial leftover room is still shown if the count is not divisible by four.
  5. If room swap is enabled, the dashboard tries same-sex one-for-one swaps to make room scores more even across the final allocation.

User Score Preview

Scores calculated from each SurveyResponse method.

Pair Penalty Preview

Highest same-sex pair penalties, capped for readability.

How scores become room allocations

Compatibility is calculated from survey answers, then applied in a controlled same-sex allocation process.

Input Survey answers Q1-Q27, participation, sex and height
Compatibility score modules
Chronotype Wake and sleep timing, regularity, early and late tolerance
Environment Temperature, light, noise and smoking tolerance
Hygiene Shower, laundry and cleaning habits plus tolerance
Social Sociability, visitors and conflict handling

Repeated Q27 priorities increase the weight of their selected module.

Compare Same-sex pair penalty Weighted average of the four module penalties. Lower is more compatible.
Allocation process
  1. Separate male and female cohorts Only students in the same cohort are compared and placed together.
  2. Reserve extra-long-bed rooms Eligible students are ordered by height. One priority bed per room.
  3. Allocate participation A and B Survey participants use compatibility scores. Opt-outs are randomly placed within cohort.
  4. Form rooms, then optionally swap Greedy four-person rooms can be refined with same-sex one-for-one swaps.
  5. Final room allocation Room score, bed status and any missing extra-long-bed need are reported.

Score and allocation formula reference

These formulas match the calculation used by the allocator. Lower penalties and room scores are better.

avg(x) is the arithmetic mean. N(x; low, high) = (x - low) / (high - low). |x| is absolute difference.

Derived student scores

Wake score
max(class-day wake, free-day wake)
Sleep score
max(class-day sleep, free-day sleep)
Wake / sleep consistency
6 - |class-day score - free-day score|
Early / late tolerance
avg(acceptable class-day, acceptable free-day)
Temperature deviation
avg(summer deviation, winter deviation)
Noise tolerance
avg(sleep noise, study noise, noise-rule tolerance)
Hygiene / hygiene tolerance
avg(shower, laundry, cleaning) for own habits and acceptable roommate levels.
Conflict score
WAvg(N(earlyTol;1,6)wC, N(lateTol;1,6)wC, N(light;1,5)wE, N(noise;1,5)wE, N(smoke;1,5)wE, N(hygTol;1,5)wH, N(visitor;1,5)wS, N(resolution;0,3))

Compatibility-module penalties

Chronotype PC
avg(|wakea-wakeb|/5, |sleepa-sleepb|/5, |wakeConsa-wakeConsb|/5, |sleepConsa-sleepConsb|/5, earlyGap, lateGap)
Environment PE
avg(|tempa-tempb|/5, |lighta-lightb|/4, |noisea-noiseb|/4, |smokea-smokeb|/4)
Hygiene PH
avg(|hygienea-hygieneb|/4, max(0, hygTolb-hygienea)/4, max(0, hygTola-hygieneb)/4)
Social PS
avg(|sociala-socialb|/4, max(0, sociala-socialTolb)/4, max(0, socialb-socialTola)/4, 1-avg(conflicta, conflictb))
Activity gap
gap = N(activity difference + 1; 1, 6) × (1 - N(roommate tolerance; 1, 6)). This is used for early and late activity.

Priority, pair penalty and room score

Student module weight wm
For v2: max(1, 4[first=m] + 3[second=m] + 2[third=m]). Repeated Q27 choices accumulate. Legacy rank data uses 5-rank.
Pair module weight Wm
(wa,m + wb,m) / 2
Pair penalty
(PCWC + PEWE + PHWH + PSWS) / (WC + WE + WH + WS)
Room score for n students
sum(all within-room pair penalties) / C(n, 2). A room with fewer than two students has score 0.
Overall allocation score
avg(all room scores)

Room Swap for Fairness

After the initial room allocation, the dashboard can try same-sex one-for-one student swaps to make room scores more even across rooms. This can reduce the chance that later rooms have much higher scores, though it may slightly change some otherwise strong individual room matches.