Saturday, October 10, was the biggest day Serve513 has recorded. Nearly twice as many neighbors came through as at the September 12 soft launch, and for the first time some of them were people we had already met. Here is what the database recorded, read back at 3:31 PM the same afternoon, plus how the app itself held up under the load.
Every figure below comes straight from the app’s records and its server logs. Times are Eastern. Nothing is estimated.
At a glance
Nearly twice the soft launch
108 neighbors came through on 110 orders (two neighbors placed a second order), against 57 on 59 orders at the soft launch. Showers grew with the crowd. Haircuts did not, and the barber section below explains why.
The number we are proudest of is 27. Every returning neighbor today had first come on September 12, so 27 of the 57 people from the soft launch came back. The other 81 were new to the app.
The morning, half hour by half hour
The first neighbor’s order went in at 8:48 AM and the last at 10:50 AM. Between 9:00 and 10:00, 78 of the 110 orders came through, so that hour is the one the desks have to be staffed for. One more order, entered at 6:25 AM, is not on the chart; see About these numbers.
Five volunteers checked in to the event between 8:47 and 9:21 AM, and four accounts took orders.
What neighbors asked for
Clothing was on 109 of the 110 orders, and for 72 of them it was the only thing asked for. Orders were simpler than at the soft launch: 73 asked for one service, 31 for two, 4 for three, and 2 for four. No order asked for a hygiene kit (50 did on September 12).
Haircut requests stopped early. All 12 haircut orders from neighbors were placed between 8:48 and 9:11 AM, the first 23 minutes of the morning. The thirteenth is the 6:25 AM order.
How the stations did
| Station | Check-ins | Done | Missed | Still open |
|---|---|---|---|---|
| Clothing | 109 | 101 | 0 | 8 |
| Barber | 13 | 8 | 2 | 3 |
| Showers | 31 | 27 | 4 | 0 |
Clothing took 109 check-ins, and 101 items were ticked as pulled, one per order. Every one of them was the same catalog entry, so today’s clothing count is one item per order, not a garment-by-garment pick. Only 38 pickups were closed out as they happened, the last at 9:36 AM. The other 63 were closed out together at 3:30 PM. Eight are still open in the app: seven still marked waiting and one left mid-pull since 10:22 AM.
Barber ran one barber in one chair, against two chairs at the soft launch. Twelve neighbors joined the line between 8:48 and 9:11 AM. Eight got haircuts, back to back from 9:03 AM until the eighth finished at 11:36 AM. Two were marked missed (called up, and no longer there). A ninth neighbor sat down at 11:36 AM, the minute the eighth haircut finished, but that haircut was never closed out, and one more is still listed as waiting from 9:11 AM. The thirteenth check-in is the 6:25 AM order.
Showers ran three stalls, the same as at the soft launch, and took 31 check-ins: 27 showered and 4 were marked missed. Neighbors’ showers were finished between 9:16 and 11:20 AM.
Waiting versus serving
The barber line is still where the morning slows down, and it got slower: half of the neighbors seated waited 72 minutes or more for a chair (56 on September 12, with two chairs), and the longest wait was 147 minutes, for a haircut that takes about 18 minutes once they sit down. The arithmetic explains it. Twelve haircuts at 18 minutes each is 216 minutes of cutting, and with one barber that is more than three and a half hours before the line clears, for a line that formed in 23 minutes. The wait is a staffing number, not a volunteer problem.
Showers were busier too. A typical wait was 31 minutes (18 on September 12) for a 10-minute shower, and nobody waited more than 78 minutes. The same three stalls handled six more showers than last time, so the line grew with the crowd.
How the app held up
The app did not return a single server error. These figures are from the database service’s own request logs, from 6:00 AM to 3:31 PM.
Response time that 19 of 20 database requests beat, per half hour, in milliseconds (Eastern time)
| Half hour | Requests | Median | 19 of 20 within | Errors |
|---|---|---|---|---|
| 8:30 | 408 | 89 ms | 250 ms | 3 |
| 9:00 | 2,004 | 83 ms | 186 ms | 17 |
| 9:30 | 1,214 | 90 ms | 168 ms | 0 |
| 10:00 | 2,428 | 98 ms | 930 ms | 0 |
| 10:30 | 1,373 | 96 ms | 253 ms | 0 |
| 11:00 | 127 | 120 ms | 323 ms | 0 |
While the doors were open, 8:30 to 11:30 AM, the app handled 7,554 requests. 932 of them were writes, such as new neighbors, new orders, check-ins, and station updates, with a median of 102 ms and 19 of 20 done within 203 ms. The busiest minute while the doors were open was 10:04 AM, at 606 requests.
One slow stretch. Every request that took longer than 0.6 seconds all day happened between 10:05 and 10:10 AM: 158 lookups of a single neighbor’s record, each taking between 0.7 and 1.4 seconds. That is where the 930 ms column comes from. It traces to how the service-day desk pages and the dashboard load: they fetch each order’s neighbor record with its own request. On the desk pages, with 110 orders on the board, one page load is 110 lookups sent at once. These single-record lookups were 6,665 of the day’s 12,473 requests.
No server errors. The 20 errors in the table were all the same thing: a volunteer-account lookup that expected exactly one record, answered with a 406, between 8:45 and 9:20 AM. That is the stretch when volunteers were checking in. The database itself logged no errors in the same window.
What to change before next Saturday
- Get a second barber, or spread the haircut sign-ups. Twelve neighbors lined up for one barber in 23 minutes, and the eighth completed haircut finished at 11:36 AM. A second barber doubles how many haircuts the station can do an hour. If there is only one, offering haircuts in time slots would keep neighbors from waiting over two hours.
- Close the clothing pickup as it happens. 63 pickups were closed together at 3:30 PM and 8 are still open. One tap per bag keeps the live count honest during the day, when someone is actually watching it.
- Load neighbor records in one request on the desk pages. Fetching every order’s neighbor separately was more than half of the day’s database traffic and the cause of the 10:05 AM slowdown. It gets worse with every neighbor we add.
- The missed calls are down. Six of 44 barber and shower check-ins were marked missed, against 11 of 51 on September 12. Whatever changed in the call-outs, keep doing it.
About these numbers
- Read from the app’s production database at 3:31 PM on Saturday, October 10, using the service day’s own date.
- Neighbors counts each person once, by profile, if they had an order that day. New and returning go by visit history: a returning neighbor had an earlier order. Services requested counts every service ticked on an order. A check-in is one neighbor joining one station’s line. No orders were cancelled.
- One order was entered at 6:25 AM, more than two hours before the next one, and moved through barber, showers, and clothing within minutes. It looks like a setup check. It was never cancelled, so it is in every count above, but it is left out of the timing medians and the half-hour chart.
- Wait is check-in to seated; in the chair or stall is seated to done; both are medians in whole minutes. Clothing items are the items ticked as pulled at the clothing station.
- Volunteers are the accounts checked in to the event; order-takers are the accounts that created orders.
- App figures come from the database service’s request logs, 6:00 AM to 3:31 PM. Response time is how long the database took to answer a request. It does not include the network between a tablet and the server or the time a page takes to draw, so what a volunteer saw on screen took longer than these numbers. “19 of 20 within” is the 95th percentile. An error is any answer in the 400 or 500 range; server errors are the 500 range.