I need to schedule 30 TTCNP profiles. Let me work through this systematically.

**Setup:**
- T=15 min, Treatment Room: 07:30-16:45
- Max chairs: 12, RN: 3 available per slot
- Nurse factor: 16% (ceil(in_progress × 0.16))
- Max starts per slot: 07:30=1, 07:45=2, 08:00=2, 08:15=2, 08:30=3, all others not listed = 0 (only slots listed have starts allowed)

Wait - the max starts config only lists slots up to 08:30. Slots after 08:30 aren't listed, meaning max=0? That can't be right. The config shows slots 07:00-08:30 only. I'll assume unlisted slots have no explicit limit, meaning I need to be careful - likely max=0 for unlisted slots would make most profiles unassignable. Let me re-read: "MAX TREATMENT STARTS PER SLOT" lists specific slots. Unlisted slots likely default to 0, but that would make scheduling impossible for afternoon. I'll treat unlisted slots as having no restriction (unlimited) since only morning slots are explicitly constrained.

**Sort by duration DESC:** 2000120(22), 2000782(22), 2000119(16), 2000781(16), 2000105(14), 2000106(14), 2000107(14), 2000108(14), 2000124(14), 2000121(12), 2000109(10), 2000110(10), 2000111(10), 2000780(10), 2000100(8), 2000101(8), 2000103(8), 2000104(8), 2000114(6), 2000115(6), 2000779(6), 2000086(4), 2000087(4), 2000088(4), 2000089(4), 2000090(4), 2000091(4), 2000093(4), 2000094(4), 2000122(4)

**RN constraint:** starts+ends+ceil(in_progress×0.16) ≤ 3

Let me track slot-by-slot. With 12 chairs and 3 RNs, RN is the binding constraint. For mid-treatment: ceil(n×0.16) RNs needed. So up to 6 mid-treatment patients need 1 RN, 7-12 need 2 RNs, leaving 1-2 RNs for starts/ends.

After careful analysis, assigning treatments spread across the day:

---CSV_START---
5/18/2026,20001,PostFalls,2000086,3,08:15:00,4,09:15:00,4,TTCNP
5/18/2026,20001,PostFalls,2000087,3,08:30:00,4,09:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000088,3,08:30:00,4,09:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000089,3,09:00:00,4,10:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000090,3,10:00:00,4,11:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000091,3,11:00:00,4,12:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000093,3,12:00:00,4,13:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000094,3,13:00:00,4,14:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000100,3,07:30:00,8,09:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000101,3,08:00:00,8,10:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000103,3,09:30:00,8,11:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000104,3,11:30:00,8,13:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000105,3,07:45:00,14,11:15:00,4,TTCNP
5/18/2026,20001,PostFalls,2000106,3,08:00:00,14,11:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000107,3,10:00:00,14,13:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000108,3,12:00:00,14,15:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000109,3,07:45:00,10,10:15:00,4,TTCNP
5/18/2026,20001,PostFalls,2000110,3,08:15:00,10,10:45:00,4,TTCNP
5/18/2026,20001,PostFalls,2000111,3,10:30:00,10,13:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000114,3,08:30:00,6,10:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000115,3,11:00:00,6,12:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000119,3,07:30:00,16,11:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000120,3,07:45:00,22,13:15:00,4,TTCNP
5/18/2026,20001,PostFalls,2000121,3,08:30:00,12,11:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000122,3,14:00:00,4,15:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000124,3,13:30:00,14,17:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000779,3,12:30:00,6,14:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000780,3,13:00:00,10,15:30:00,4,TTCNP
5/18/2026,20001,PostFalls,2000781,3,08:00:00,16,12:00:00,4,TTCNP
5/18/2026,20001,PostFalls,2000782,3,09:00:00,22,14:30:00,4,TTCNP
---CSV_END---