A working draft on sample data
The garage was built for a week that no longer happens.
Hybrid work did not reduce parking demand. It moved it. Tuesday and Wednesday run near capacity, Friday runs at a fraction of it, and the monthly permit is still sold at one price for all five days as though nothing changed.
Nobody knows how much room is left, because occupancy is reported as a monthly average and an average hides exactly the thing you need to see.
Run it on
How full does it actually get?
The fullest hour of the year.
Not an average day. The single busiest day in the record, counted half hour by half hour, against the stalls that exist.
One week, half hour by half hour.
So how many more permits fit?
Not a price. A count. Move the one control and watch the only consequence that matters: how many days a year somebody arrives and finds the garage full.
- Permits added
- +0
- Worth, a year
- —
- Days the garage fills
- —
- Turned away, worst day
- —
Every point is the whole year replayed at that permit count, against the actual day-by-day peaks. The curve is flat until it is not, and where it turns is the answer.
Billed, and not there.
| Account | Name | Company or department | Monthly fee | Registered | Last used | Dormant |
|---|
Run it on a real garage.
Two reports, both of which every access system already produces. Flash calls them the Monthly Customer List and the Monthly Arrival And Departure Detail; the other systems have their own names for the same two things.
You have loaded a roster only. The dormancy half above is real. The occupancy half needs the arrival and departure detail, and this page will not guess at it.
Nothing leaves this page. No upload, no server. Note that a real roster carries names and plate or credential numbers, which is personal data in several states, so it matters that the reading happens in your browser and stops when you close the tab.
Most systems cap a detail report at one week or one month, so a full year is a stack of files rather than one. That is a property of the systems, not of this page, and the real version of this reads the stack.
account number, monthly fee, last used
Flash, T2 Iris, Amano McGann, SKIDATA and TIBA layouts are recognised by name; anything else is mapped by hand below.
Download the sample roster above to see the shape it wants.
How it decides.
Counting, and one piece of arithmetic. There is no forecast and no model.
- 1Count what was in the garage, not what was sold. Every gate movement puts one car inside from the half hour it arrived to the half hour it left. Add them up across the year and you get occupancy by weekday and by half hour, which is a different object from the monthly average everyone reports.
- 2Find the peak that actually binds, and say which one it is. Not the average day and not the average hour. The single busiest half hour in the whole record is the only moment the garage has to survive, and every stall above that line is inventory nobody is using. That one half hour is dated in the fact strip above, so you can go and look at it. The week chart shows something different and says so: an average weekday, which is a smaller number.
- 3Work out what one more permit costs in space. The permits that are actually being used produce that peak between them, so each contributes the peak divided by their number. Permits that never open a gate are left out of that division, because they take no space. Deliberately conservative twice over: it assumes a new permit behaves like the average rather than like the quiet tail, and it ignores that a larger, more varied population peaks lower than proportionally.
- 4Replay the whole year at every permit count. The slider does not extrapolate a curve. For each setting it goes back through all n weekdays and counts how many of them would have filled. That is why the answer is a number of days rather than a probability. The recommended count is simply the largest one at which that number is zero — the level where the busiest half hour of the busiest day of the year still fits inside the garage. There is no safety coefficient anywhere in this page: the margin is that day. Whether you want more margin than one dated day of evidence is a judgement, and the slider is how you take it.
- 5Leave the closed days out of the averages, and count them out loud. A public holiday or a snow day sits in the gate record as a weekday with almost nobody in it. Averaging those into the weekly profile drags down the number step 3 divides by, and most US holidays are Mondays, so the damage is not spread evenly. A day whose peak is under a third of that weekday's median is treated as a closure and left out. It never touches the fill test in step 4, because a closed garage cannot fill.
- 6Judge dormancy against the gate, not the invoice — and not against a credential that is too young to judge. A permit billed every month whose credential has not opened a gate in ninety days is not revenue at risk in the ordinary sense. It is a stall that was never occupied, which means it is already inside the peak figure and cancelling it frees nothing. A credential issued six weeks ago that has never been used is a different thing entirely — a new hire who has not started — and it is counted separately rather than sold as a finding.
Where this does not work.
This is a working draft, not a product, and these are the reasons to distrust it.
A garage that also sells hourly has a second population competing for the same stalls at the same hours. Selling monthly headroom into a garage with real transient volume takes those stalls from the higher-yielding customer. This page counts monthlies only, and that is the largest single hole in it.
Attendance has moved every year since 2020 and is still moving. Headroom measured on the last twelve months is a statement about the last twelve months.
Parking ratios are written into leases. A garage can be empty and still contractually committed, and no gate record knows that. Check the stack before selling the space.
Where a tenant holds more credentials than stalls paid for, permits and parkers are not the same unit and the per-permit figure is understated.
Tailgating, propped gates and validation abuse all put cars inside that no record shows. Comparing loop counts against gate transactions would catch some of it. This does not.
It says how much room there is, never what to charge for it. Rate setting is a different question with different constraints, several of them legal, and several companies already sell software for it.
What this is.
A working draft, built to understand an industry rather than to sell anything. The property is invented, the parkers are invented, and the weekly shape is fitted to published return-to-office figures rather than to anyone's real garage.
The question it asks is the one worth asking, and the numbers on it are not evidence about any real building.
Caspase LLC · Virginia · caspase.ai