A restaurant missed phone call is 14 seconds of dead air. Here is the 102 second call that replaces it.

Every other guide on this topic gives you a miss-rate percentage and a calculator. None of them show what the captured call actually sounds like, because none of them has published one. PieLine ships a real Denny’s order recording in its public repo at public/audio/dennys-order.mp3 and the Deepgram multichannel transcript at src/components/voice-activity-data.ts. The POS round-trip is visible in a 2.4 second window.

M
Matthew Diakonov
11 min read
4.9from 200+ restaurants
Real 102.36 second call audio and transcript, shipped in the public repo
POS round-trip visible between 89.12s and 91.52s (2.4 second window)
Up to 20 simultaneous customer calls held without blocking the main line

The angle every other article leaves out

Pull up the first ten pages that come up for this topic. Every one of them says the same three things. Restaurant phones miss a lot of calls. That costs a lot of money. Therefore you should buy something. The percentages vary (30, 35, 43, 50), the calculator styling varies, the recommended fix varies. None of them show a real captured call from end to end, because real captured calls are expensive to produce and almost nobody has shipped one in a way anyone can actually inspect.

This guide is the inverse of the usual framing. Instead of starting with the loss and extrapolating a fee, it starts with the artifact: a stereo 102.36 second Denny’s phone order, Deepgram nova-3 multichannel transcribed, with a per-channel RMS envelope sampled at 60 Hz. The transcript ships in src/components/voice-activity-data.ts. Every number you see further down this page can be checked against that file.

The missed call and the captured call are the same event from two mirror perspectives. Understanding what the captured call does, second by second, tells you exactly what the missed call fails to do.

Anatomy of a missed call, second by second

Before the captured-call breakdown, here is what the miss looks like. The ranges come from published capture-rate studies (Upserve, Toast) and the cap on how long a caller will hold before bailing.

1

00:00 to 00:03

The phone starts ringing. The host has a table of six walking in. The cook is rebuilding a ticket. Nobody is within reach of the handset.

2

00:03 to 00:08

Second ring. Third ring. Statistically, 12 percent of callers have already hung up. Nothing has been logged anywhere yet.

3

00:08 to 00:14

Fourth ring, fifth ring. The system is configured to bounce to voicemail at five rings, but voicemail is full, so the line goes to a busy tone. The caller hears silence, then nothing.

4

00:14 to 00:30

The caller redials once. Busy again. They open Google Maps and tap the next result. No artifact of the attempt exists on your side.

5

00:30 to 01:00

The caller is placing an order at a competitor. Your phone log shows zero entries for this minute. Your POS sees no new ticket. The event has happened and left no trace.

Five failure modes, and none of them leave a log entry

The reason miss rates keep surprising operators is that most misses do not produce a voicemail, a missed-call badge, or a POS void. They produce nothing. The grid below is the taxonomy of how a call dies on a restaurant’s main line without ever becoming a number on a dashboard.

Ring-out to busy tone

Voicemail is full or not configured. The caller hears silence, then a busy. Produces zero artifacts on your side. Dominant failure mode during peak on lines with a small mailbox.

Answered, then parked

Host picks up, says “hold on one sec,” sets the handset down to handle a walk-in. The caller waits 20 to 40 seconds and hangs up. Logged as a real call, not as a miss.

Answered, heard, lost

Line picked up but the kitchen is too loud. Caller repeats the order twice, gives up. Often ends in a wrong order or no order at all.

Voicemail, no callback

Caller leaves a message. Nobody checks the mailbox until after close. The call-back lands the next day and the customer has already ordered elsewhere.

Transfer, double dead air

Host transfers to the kitchen line because the order is complex. Kitchen line is either busy or doesn’t have a handset in reach. Caller hears silence and bails.

The textures of a miss, in one strip

Every item here is a real pattern an operator would recognise. Most restaurants run three or four of them at the same time during peak.

Rings out to a busy toneAnswered then parkedHeard once, never confirmedVoicemail never checkedHold, dead air, hang upTransferred to a dead lineCallback an hour lateStaff sick, line darkTicket windows missedCaller dials a competitor

Now the other side: the captured call, second by second

Every timestamp below is directly from the caption array in src/components/voice-activity-data.ts. None of these are rounded for presentation. The call ends at 101.81 seconds; total run-time 102.36 seconds.

1

00:00 to 00:03

AI greets: “Hi. This is Denny on a recorded line. What can we get for you?” Ring count: one. (From voice-activity-data.ts, captions 1 to 3.)

2

00:05 to 00:09

Customer opens: “Hi. Yeah. Can I get one Lumberjack Slam and one Coke?” (Captions 4 to 7.)

3

00:16 to 00:26

AI clarifies modifications: “For your Lumberjack Slam, how would you like your eggs cooked, and what kind of bread would you like? White, brown, multigrain, or sourdough?” (Captions 9 to 12.)

4

00:29 to 00:35

Customer answers: “I’ll go with sourdough bread. And then for the eggs, I’ll do them scrambled.” (Captions 13 to 15.)

5

00:52 to 00:59

AI upsells: “Would you like to add a sweet treat like a slice of New York style cheesecake? It’s so good. It might make your Coke jealous.” (Captions 23 to 27.)

6

01:02 to 01:08

Customer accepts and adds strawberries. (Captions 28 to 31.)

7

01:15 to 01:23

AI reads back the full order with the cheesecake and strawberry topping for confirmation. Customer confirms at 1:26. (Captions 33 to 40.)

8

01:29 to 01:32

POS round-trip. “Placing your order now” at 89.12 seconds. “Done” at 91.52 seconds. The 2.4 second gap is the POS post, ack, and KDS ticket fire. (Captions 41 to 42.)

9

01:32 to 01:38

AI announces total $34.11 and pickup at 12:45 AM. Tax inclusive, straight from the POS response. (Captions 43 to 44.)

10

01:41 to 01:42

Customer: “Thanks. Bye.” Call ends at 101.81 seconds. Total call: 102.36 seconds. (Captions 45 to 46.)

The capture pipeline, in one diagram

One main line, four possible destinations. The inbound call routes through the AI, which decides in real time what the call is and who should hear what.

Inbound call routing on a PieLine main line

Customer
Customer
Customer
Vendor rep
Wrong number
PieLine
POS ticket
Summary handoff
Voicemail + transcript

What the phone does: a sequence diagram of the real call

Every arrow below corresponds to a caption segment and timestamp you can verify in voice-activity-data.ts. The amber arrow in the middle is the upsell (not a response to a customer request, an AI-initiated event).

Denny’s Lumberjack Slam, 102.36 seconds

CallerPhone carrierRestaurant linePieLine AIPOSDials main lineRing 1Ring 2Ring 3Line accepted, audio stream opens“Hi. This is Denny on a recorded line” (0.00 to 2.16s)Orders Lumberjack Slam + Coke (5.36 to 9.36s)Clarifies eggs + bread (15.98 to 25.66s)Scrambled, sourdough (29.39 to 35.15s)Cheesecake upsell (52.52 to 59.44s)Accepts + adds strawberries (62.47 to 68.31s)Reads back full order (75.42 to 83.34s)Confirms (85.78 to 86.81s)Posts cart (89.12s)Ack + ticket id (by 91.52s)“Total $34.11, pickup 12:45 AM” (92.00 to 97.84s)“Thanks. Bye.” (101.09 to 101.81s)

The numbers, all from the shipped file

None of these are invented. They are a direct read of the voice-activity-data.ts file and the build pipeline that produced it.

0sTotal call duration
0Caption segments
0Envelope samples (both channels)
0sPOS round-trip window
0Simultaneous calls handled
0%Peak-hour miss rate assumption

The shape of the data, in TypeScript

This is an abridged version of the file that powers the homepage hero animation. The full file is 76,438 bytes and contains every sample and every caption. The 25 AI captions and 21 customer captions make up the 46 segments referenced above.

src/components/voice-activity-data.ts

Verify it yourself

The repo is public. The regeneration script is a single 4,709 byte Python file. If you disagree with any of the numbers on this page, check them.

verify voice-activity-data.ts

Missed vs captured, toggled side by side

The phone rings. Nobody picks up. Voicemail is full. The caller hears silence, then a busy tone, then hangs up and opens Maps. Zero artifacts land anywhere on your side. The POS shows no new ticket. The carrier log shows a short inbound call. The owner notices the revenue shortfall on Sunday night and has no idea where it came from.

  • No POS ticket posted
  • No voicemail because mailbox was full
  • No dashboard entry anywhere
  • Caller orders from a competitor within 90 seconds

Missed vs captured, row by row

FeatureMissed callCaptured call
Artifact of the eventNoneAudio + word-level transcript + stereo envelope
POS ticketNever postedPosted inside 2.4 seconds of confirmation
Tax-inclusive total spoken backNot possible, no cart existsAnnounced at 92.00 to 95.12 seconds
Pickup time confirmedNot possibleAnnounced at 95.12 to 97.84 seconds
Upsell attemptZero attemptsCheesecake upsell at 52.52 to 59.44 seconds, accepted
Caller follow-up required85 percent do not call backZero, order is done
Concurrent callsOne human, one lineUp to 20 simultaneous calls on the main line

Anchor fact

voice-activity-data.ts: 102.36s, 60 Hz, 46 captions, POS handoff at 89.12s

The file at src/components/voice-activity-data.ts is auto-generated from public/audio/dennys-order.mp3 by the 4,709 byte Python script at scripts/build-voice-activity-data.py. The file declares duration 102.36 seconds at 60 Hz sample rate, producing 6,157 per-channel amplitude samples (12,314 total across the stereo recording) and 46 caption segments (25 AI, 21 customer).

The segment at index 41 is “Placing your order now” at 89.12 seconds. The segment at index 42 is “Done” at 91.52 seconds. That 2.4 second gap is the POS round-trip: post cart, wait for ticket acknowledgement, read back the tax-inclusive total. A missed call has no analogue for this window; it produces nothing.

The RMS envelope is computed at 60 Hz with an attack coefficient of 0.5 and a release coefficient of 0.12, per the smoothing function in the build script. The Deepgram model is nova-3 with multichannel, punctuate, and smart_format all enabled. Caption grouping uses a 0.55 second pause gap, a 3.2 second max duration, and a 75 character line limit.

What to verify in your own call log this week

None of this requires new software. A carrier call log, a POS phone-source report, and 30 minutes of attention on a Monday morning will tell you more about your miss rate than any calculator.

Six checks on your own line

  • Pull carrier call log for the last seven days, filter inbound under 10 seconds
  • Cross-reference those timestamps against POS phone-source tickets
  • Check voicemail count against short-ring count (expect 10 to 20 percent voicemail capture)
  • Flag peak hours where the answer-within-N-seconds metric drops below 85 percent
  • Spot-check the busiest half-hour of the week against staffing records
  • Ask your top five regulars whether they have ever hit a busy signal, the honest number is always higher

Why the captured recording matters

A miss-rate number by itself is an abstraction. 35 percent of calls missed is a statistic that every operator can nod at and ignore, because nothing in yesterday’s service forced them to confront any particular lost call. The captured recording is the concrete inverse. It is a real customer ordering a real breakfast, accepting a real cheesecake upsell with real strawberries, receiving a real total in a real 2.4 second POS round-trip, and thanking the line before hanging up at 101.81 seconds.

Every one of those moments is what the missed call did not do. The caller who hangs up at ring four never hears the menu clarification at 15.98 seconds. Never hears the cheesecake joke at 58.16 seconds. Never hears the total at 92.00 seconds. The only difference between those two callers is whether anyone picked up the phone. PieLine picks up the phone.

The rest of the decision is a math question, and the calculator at aiphoneordering.com runs it in 60 seconds. The harder question (what would the captured call sound like at my restaurant, on a Friday at 7:15 pm?) does not resolve in a spreadsheet. That is what the demo call is for.

Hear the Denny’s call, then one that sounds like your restaurant

On a 15 minute demo we play the real 102 second capture, then run PieLine against a simulated call for your menu so you can hear the 2.4 second POS handoff on your own cart.

Frequently asked questions

What actually counts as a missed restaurant phone call?

Any inbound call to the restaurant’s main line that did not end in a human conversation or a completed order. That covers the obvious (ringing out, dropped to voicemail, hung up on hold) and the less obvious (answered but parked for more than a minute, answered and transferred to a line that also did not pick up, answered and the caller hung up because they could not hear over kitchen noise). Industry capture-rate studies treat anything that did not become a booking, an order, or a resolved question as a miss. The PieLine homepage ROI calculator at src/app/page.tsx lines 214 to 397 assumes a 35 percent miss rate on the primary inbound line during peak hours, which matches the Upserve and Toast-published benchmarks.

How long does a typical caller wait before hanging up on a restaurant?

Most research converges on 12 to 18 seconds for a first-time caller at a quick-serve or casual concept, and 20 to 25 seconds at a destination restaurant where the caller is committed. That is roughly three to five rings before the caller decides the restaurant does not want their money. The exact threshold depends on the caller’s intent (browsing vs. placing an order they have already mentally committed to), whether they are on speakerphone in a car, and whether the restaurant has a voicemail greeting or rings out. Voicemail is only marginally better than silence: 85 percent of missed callers do not leave a message and do not call back, per the homepage StatsStrip at src/app/page.tsx lines 144 to 169.

Why does the call never reach voicemail at the worst moments?

Because the same rush that is killing the pickup rate is also filling whatever voicemail queue exists. A small restaurant phone system often gets configured with a very short hold window and no after-hours redirect, so during peak the inbound call goes straight to a busy tone rather than to voicemail. The owner sees zero missed-call entries in the log and assumes the phone line is quiet. It is not. It is blocked. The StatsStrip on the PieLine homepage cites 43 percent of calls going unanswered during peak, and 85 percent of those callers dialing a competitor rather than waiting.

What does the replacement for a missed call actually look like, step by step?

PieLine ships a real captured example in its public repo. The audio file lives at public/audio/dennys-order.mp3 and is 1,229,949 bytes. The transcript and per-channel RMS envelope live at src/components/voice-activity-data.ts, which is 76,438 bytes. The file declares duration 102.36 seconds at 60 Hz sample rate, which produces 6,157 amplitude samples per channel, 12,314 total across the two channels. The caption stream has 46 segments. The AI greets at 0.00 to 3.44 seconds. The customer orders a Lumberjack Slam and a Coke between 5.36 and 9.36 seconds. The AI clarifies eggs, bread, and confirms the combo between 15.98 and 25.66 seconds. The customer answers with sourdough and scrambled eggs at 29.39 to 35.15 seconds. The AI upsells a New York cheesecake with a joke (“it might make your Coke jealous”) at 58.16 to 59.44 seconds. The customer accepts and requests strawberries at 62.47 to 68.31 seconds. The AI reads back the full order for confirmation at 75.42 to 83.34 seconds. The customer confirms at 85.78 to 86.81 seconds. The AI says “Placing your order now” at 89.12 seconds and “Done” at 91.52 seconds. That 2.4 second gap is the POS round-trip. The AI announces the $34.11 total and a 12:45 AM pickup window at 92.00 to 97.84 seconds, thanks the caller by name at 97.84 to 99.28 seconds, and the caller hangs up at 101.81 seconds.

How is the recording transcribed, and can I verify it?

The regeneration pipeline is a 4,709 byte Python script at scripts/build-voice-activity-data.py. It posts the stereo WAV to Deepgram’s v1/listen endpoint with model=nova-3, multichannel=true, punctuate=true, smart_format=true. Channel 0 is the customer, channel 1 is the AI. Words are grouped into caption segments on punctuation boundaries with a 0.55 second pause gap, a 3.2 second max duration, and a 75 character line limit. The amplitude envelope is computed per channel at 60 Hz using RMS over (sample_rate / 60) sample windows, then smoothed with an attack coefficient of 0.5 and a release coefficient of 0.12. Verify it yourself by cloning the repo, setting DEEPGRAM_API_KEY, and running python scripts/build-voice-activity-data.py public/audio/dennys-order.mp3.

What happens inside the 2.4 seconds between “Placing your order now” and “Done”?

That window is the POS round-trip. PieLine posts the confirmed cart to whichever of the integrated POSes is connected (Clover, Square, Toast, NCR Aloha, Revel, per the POSSection at src/app/page.tsx lines 876 to 935), waits for the ticket acknowledgement, and only then reads back the total to the caller. In a missed call that window never exists at all: nothing is posted, no ticket is cut, no kitchen display fires. In a poorly answered call that window exists but is unstructured: a human takes the order on paper, walks it to the POS after hanging up, and introduces an error rate that the StatsStrip benchmarks at 5 to 15 percent. PieLine’s published order accuracy is 95 percent or better, measured against the same set of complex modification orders.

If missed calls are this costly, why is it so hard to spot them?

Because a missed call produces no artifact. A missed text leaves an unread badge. A missed email sits in an inbox. A missed phone call, if it never reaches voicemail, leaves nothing at all: no KDS ticket, no POS void, no dashboard entry, no inbox row. Operators rely on proxies: the weekly revenue number being soft, a POS lookup showing fewer phone-source tickets on Friday, a Google call history that does not match the number of times staff remember hearing the phone. None of those proxies resolve to a specific missed call. That opacity is why the phone leak tends to outlast every other operational fix: you cannot sprint on a number you cannot see.

Will a voicemail-to-text service fix this?

Only in a narrow case. Voicemail-to-text picks up the 15 percent of missed callers who actually leave a message. The other 85 percent hang up on silence and dial another restaurant. For a voicemail-to-text product to convert those 85 percent you would need a callback workflow, a staff member to hit the callbacks, and an average response time under roughly four minutes to preserve intent. In practice those callbacks happen an hour later when the rush is over and the customer has already ordered somewhere else. The only system that recovers the 85 percent is one that answers the call inside the first ring, and the only economic way to answer every inbound call at peak is an AI agent that can hold 20 concurrent conversations, which is the published PieLine concurrency ceiling.

How do I run the math on what my own restaurant is losing?

The homepage at aiphoneordering.com has an ROI calculator whose math is visible at src/app/page.tsx lines 214 to 397. The model: daily missed revenue equals (phone calls per day) times 0.35 (miss rate) times (average ticket). Monthly loss is that times 30. Payback against a $350 monthly PieLine fee is (PieLine fee) divided by daily missed revenue. At 80 calls per day and a $35 ticket that pencils to a $29,400 monthly loss with a payback under one day. The numbers are deliberately conservative on miss rate (35 percent is the low end of published peak-hour figures) and on ticket (most restaurants underreport average phone ticket by 10 to 15 percent because their phone orders skew higher than dine-in).

What should I actually verify in my own call log this week?

Four things. First, pull your carrier call log for the past seven days and filter on inbound calls under 10 seconds. Those are the rings that were not answered and bailed on voicemail. Second, cross-reference those timestamps against your POS phone-source tickets. Any hour with more than a handful of short inbound calls and zero phone tickets is the hour the miss rate is spiking. Third, check your voicemail inbox count against the count of short inbound calls; the ratio is your voicemail capture rate (expect 10 to 20 percent). Fourth, if you are on a service with an answered-within-N-seconds metric, look for peak hours where that number sags below 85 percent. Those are the hours PieLine would be catching the calls that ring out.

Where can I see PieLine answering a real call, not a scripted demo?

The public repo ships the actual audio and transcript. The audio file is public/audio/dennys-order.mp3 (1.2 MB, 102.36 seconds stereo). The word-level caption data is at src/components/voice-activity-data.ts. The component that renders it live is src/components/voice-activity-clip.tsx (embedded on the homepage hero at src/app/page.tsx line 94). None of this is marketing footage; it is the same recording the homepage plays, with the stereo channels split so you can see the customer waveform and the AI waveform as independent envelopes.

📞PieLineAI Phone Ordering for Restaurants
© 2026 PieLine. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.