<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/elevators-20yf85gde" -->

---
title: Elevators | daily.dev
description: A deep dive into elevator scheduling algorithms, starting from the simple SCAN and LOOK algorithms for single-car systems, then moving to multi-car...
canonical: https://daily.dev/posts/elevators-20yf85gde
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Elevators | daily.dev
og:description: A deep dive into elevator scheduling algorithms, starting from the simple SCAN and LOOK algorithms for single-car systems, then moving to multi-car...
og:url: https://daily.dev/posts/elevators-20yf85gde
og:image: https://api.daily.dev/og/posts/20YF85gdE.png
og:image:alt: Elevators
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Elevators

**[Hacker News](https://daily.dev/sources/hn)** · 5 min read · 0 upvotes · 0 comments

## Summary

A deep dive into elevator scheduling algorithms, starting from the simple SCAN and LOOK algorithms for single-car systems, then moving to multi-car coordination. Covers how to measure elevator performance using wait-time distributions (p50, p90), explains Otis' RSR (Relative System Response) algorithm with anti-bunching and idle-car rewards, and benchmarks LOOK vs RSR across different traffic loads. Concludes with a counterintuitive finding: Destination Dispatch kiosks, despite providing more information to the optimizer, generally perform worse than traditional up/down buttons because they sacrifice the flexibility of real-time re-optimization.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://john.fun/elevators>

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 274 comments across hackernews (as of 2026-07-31).

**TL;DR:** The community is broadly engaged and positive about the article's interactive elevator algorithm simulation, with lively side discussions about real-world elevator frustrations, destination dispatch trade-offs, and related games like Elevator Saga and SimTower.

**Sentiment:** 65% positive · 25% mixed · 10% skeptical

**The case for**

- The interactive simulation is well-made and satisfying to explore.
- The article's insight that simple algorithms (LOOK/RSR) often outperform complex ones like Destination Dispatch resonated with many readers.
- Commenters appreciated the connection to disk-scheduling algorithms (SCAN), showing the topic's broader CS relevance.
- Real-world practitioners confirmed the article's claims, noting elevator scheduling gets enormous engineering thought and that idle-cab distribution strategies do exist.

**The pushback**

- Destination Dispatch was seen as potentially underrated in the article because the random-destination simulation doesn't reflect real office/hotel traffic patterns (clustered lunch groups, lobby-centric flows).
- Several commenters noted the simulation ignores human factors: people pressing both up/down buttons, ignoring direction arrows, or misusing destination dispatch kiosks.
- The article doesn't account for elevator load/capacity, which is a major real-world pain point.
- Wear-and-tear and maintenance costs as a scheduling objective are not discussed.

**By community**

- hackernews (positive): Enthusiastic discussion spanning algorithm trade-offs, real-world anecdotes from elevator software integrators, related games, and human-behavior quirks, with broadly constructive and curious tone.

**Hottest debate:** Whether Destination Dispatch is genuinely worse than simpler algorithms, or whether the article's random-destination simulation unfairly disadvantages it compared to real clustered office/hotel traffic patterns.

**Open questions**

- How do elevator algorithms perform against real-world traffic datasets (e.g., clustered lunch-hour patterns) rather than random destinations?
- What is the best scheduling algorithm for multi-deck cabs, transfer floors, and express shafts?
- How often is elevator control firmware actually updated, and do algorithm improvements get sold as separate purchases?
- What exactly is 'Korean lunch mode' referenced in a linked prior discussion?

**Highlights**

> This does happen.  I also once worked on a destination-dispatch elevator system installed in a high-end condo building (high-end, as in concierge and parking valet for residents).  Anyway... the resident's key card would of course automatically call a cab to take them to their unit's floor, but also the security system had entries for things like "dog owner" and "allergic to dogs" so that the DD system would never schedule them together for the same cab.
> — [dbcurtis on hackernews](https://news.ycombinator.com/item?id=49125853)

> In some places, I see people do that. It’s not stupidity. I learned the logical reason after observations. During busy hours in some busy buildings, there isn’t enough elevator capacity. Therefore, if you want to go down to the ground floor, taking a trip up and then down might be better (a less-bad worst case outcome, or even a better average outcome) than waiting for a non-full downward elevator. In such case, it’s logical to press both up and down.
> — [gene91 on hackernews](https://news.ycombinator.com/item?id=49126381)

> > Destination Dispatch [...] are in general worse I wonder if this is an artifact of how the author used random destinations.  I worked in a building that used Destination Dispatch, and the common travel pattern seemed to be: - Everyone who is not on the ground floor generally want to go to the ground floor. - People who are on the ground floor generally travel in large groups to the same destination. This happens because people who worked on the same floor often leave for lunch at the same time, and return at the same time to the same floor.  Destination Dispatch helps in this case because it's batching large groups of people with the same destination.
> — [omoikane on hackernews · 6 comments](https://news.ycombinator.com/item?id=49125484)

> Hah, I thought a lot about this problem while developing Sky Lobby, a mobile game (iOS / Android) about controlling and automating elevators. In the game, some of the elevators are automated, and I wanted to choose an algorithm that best aligned with what players would expect an elevator to do. I ended up going with something close to LOOK, which (as the article states) is mostly what people expect. Except in case of ambiguity, I had it prioritise floors that have been waiting longer, to improve the p90, which is important in the game. But now, add in these challenges: - double-deck cabs (where attached cabs cover two floors at once) - transfer floors between shafts - express shafts and the best (or at least, most expected) algorithm becomes much less obvious! I'll leave it as an exercise for the reader to figure out the best one. Luckily I was in charge of a game, not a real elevator system, so I just had to find a heuristic that was good-enough, and could tweak the rules to let players manually override the elevator's plan if they don't like where it's going. This seems to have satisfied most players.
> — [hermanschaaf on hackernews · 1 comments](https://news.ycombinator.com/item?id=49124903)

> In situations like this the answer usually comes by flipping it and assuming they do understand, and asking why it makes sense now. It's probably just the old 'fake loader' psychology, to be honest. Waiting without knowing when the elevator will arrive is boring/frustrating, where getting into an elevator that moves, even if the wrong direction, feels like progress. Things are happening, and even if it takes longer ultimately that's a less frustrating state to be in.
> — [davnicwil on hackernews](https://news.ycombinator.com/item?id=49126079)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49124218) · 297 points · 274 comments

## Similar posts on daily.dev

- [Forecasting Models to Improve Driver Availability at Airports](https://daily.dev/posts/forecasting-models-to-improve-driver-availability-at-airports-y5uoudppc) · Programming Digest · 1 upvotes · 0 comments
- [OSTEP Chapter 9: Proportional Share Scheduling](https://daily.dev/posts/ostep-chapter-9-proportional-share-scheduling-xwre2u3hn) · Metadata · 0 upvotes · 0 comments
- [Systems and Delays](https://daily.dev/posts/systems-and-delays-5cgsr0rup) · Hacker News · 0 upvotes · 0 comments
- [Solaris Turnstiles — RDMSR](https://daily.dev/posts/solaris-turnstiles-rdmsr-izapzkptm) · Lobsters · 0 upvotes · 0 comments
- [What QSR reports miss about the decisions matter the most](https://daily.dev/posts/what-qsr-reports-miss-about-the-decisions-matter-the-most-6iysmynny) · databricks · 0 upvotes · 0 comments

---

Tags: [#distributed-systems](https://daily.dev/tags/distributed-systems)

[View this post on daily.dev](https://daily.dev/posts/elevators-20yf85gde)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Elevators","url":"https://daily.dev/posts/elevators-20yf85gde","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/elevators-20yf85gde"},"datePublished":"2026-07-31T16:06:31.692Z","dateModified":"2026-07-31T20:40:58.910Z","description":"A deep dive into elevator scheduling algorithms, starting from the simple SCAN and LOOK algorithms for single-car systems, then moving to multi-car...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2621ed1a73818aa02f835aae50a38aa1?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2621ed1a73818aa02f835aae50a38aa1?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/elevators-20yf85gde","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"distributed-systems","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Elevators"}]}
```

