Every restaurant automation system has a throughput number. The phone subsystem needs one too, and it is seconds per call close.

Kitchen display systems are graded on ticket-to-plate time. Inventory is graded on variance percent. Scheduling is graded on sales per labor hour. The phone channel has been outside this frame for as long as the phrase "restaurant automation" has existed. This guide gives the phone channel its own metric and grounds it in a 102.36 second reference call that is checked into the PieLine source tree.

M
Matthew Diakonov
11 min read
4.9from 200+ restaurants
102.36 second reference call-to-POS close, transcript public
20 simultaneous calls, 95 percent plus order accuracy
Direct POS adapters for Clover, Square, Toast, NCR Aloha, Revel

Why the phone channel has no throughput number in every other playbook

Most articles about restaurant automation systems list the same five modules, always with a throughput metric attached. Kitchen display systems get a ticket-to-plate time. Inventory software gets a variance percent. Labor and scheduling software gets sales per labor hour. Online ordering gets a conversion rate. Point of sale gets transactions per hour. The phone channel does not appear, or it appears as a single line that says "AI answers calls" with no number next to it.

The reason is historical. For decades the phone was a human subsystem. A cashier answered it between in-store customers. There was no clock on a separate time budget; the clock was the cashier's whole shift. When 30 to 40 percent of calls went unanswered at rush, the ops team treated it as a staffing problem, not a throughput problem. When staff did answer, they wrote on a pad and re-keyed into the POS later, so the order-to-POS latency was mixed in with prep time and nobody measured it.

The moment the phone becomes a machine subsystem, the same rules apply as every other subsystem: it needs a throughput axis, a quality axis, a handoff axis, and a revenue axis. The throughput axis is seconds per call close. That is the number this guide defines and the one the PieLine source tree gives a concrete anchor for.

Where every other subsystem gets its number

The table below is not original to this page. These are the metrics ops teams already read on their dashboards. Adding "seconds per call close" to the phone column is the only new row.

Kitchen display system

Ticket-to-plate time. Full service target is 10 to 14 minutes. Quick service target is 3 to 6 minutes. Measured from KDS ticket creation to the bump bar.

Inventory software

Variance percent against theoretical usage from a recipe costing. Under 2 percent is clean. Over 5 percent is actively leaking product.

Scheduling and labor

Sales per labor hour. Benchmarks vary by concept; $80 to $120 at full service, $120 to $200 at fast casual, $200 plus at efficient QSR.

Online ordering

Session-to-order conversion rate and abandoned-cart percent. Direct-to-brand sites target 8 to 15 percent conversion. Marketplace cart abandonment runs 50 to 70 percent.

Point of sale

Transactions per hour and tender-complete latency. Counter-service targets 40-plus TPH at rush. Tender-complete under 10 seconds is the bar.

Phone subsystem

Seconds per call close. PieLine reference: 102.36 seconds for a full QSR order with successful upsell and POS ticket commit. Public transcript.

The 102.36 second call, turn by turn

01 / 12

0.4 seconds: AI answers

The agent picks up with "This is Denny on a recorded line. What can we get for you?" No hold, no IVR menu, no routing tree. The stopwatch starts here.

The anchor file: where you can verify the number

The duration is not a marketing figure. It is the top-line field of an auto-generated data file checked into the PieLine repository. Here is the shape of the file, with the fields that matter for the throughput metric highlighted.

src/components/voice-activity-data.ts, head of file

The four axes a restaurant automation system needs on the phone channel

Throughput is one axis. A real subsystem is graded on four, the same four every other module gets. Here is what each axis measures and where PieLine's published documentation puts the number.

Throughput, quality, handoff, revenue

Recorded call
Cart contents
Non-order call
Upsell pitch
Phone subsystem
Throughput
Quality
Handoff
Revenue

The numbers, in one row

These come from the recorded call file, the published PieLine product pages, and the standard industry peak-hour unanswered figure cited on the landing page.

0sSeconds to ticket-in-POS (reference)
0sFull call duration (reference)
0Parallel call capacity
0%+Order accuracy

Theoretical call-closes per hour

0

At 102.36 seconds per call across 20 parallel slots, the ceiling is roughly 703 closes per hour. Real volume never approaches the ceiling; the gap matters only at rush, which is when the phone channel actually leaks.

Unanswered calls at peak on a human-staffed line

0%

Industry figure quoted on the PieLine landing page, with a 30 to 40 percent range. Every unanswered call is implicitly infinity seconds to close, which is why the throughput metric breaks on a one-at-a-time channel at rush.

How to measure seconds per call close on your own line

Five steps. The first three let you measure the metric with any phone-automation vendor. The last two are specific to PieLine and only apply if the phone subsystem posts tickets directly to the POS.

From stopwatch to dashboard row

1

Define the stopwatch-start event

The first AI utterance on the call. In PieLine's reference recording this is at 0.4 seconds with 'This is Denny on a recorded line.' If your current line uses an IVR before the AI, include the IVR seconds in the metric; the caller does not care where the delay comes from.

2

Define the stopwatch-stop event

The moment the ticket arrives in the POS. This is not call-hangup. In the PieLine reference it is at 89 seconds when the AI says 'placing your order now,' and the direct adapter posts to the POS on the next frame. If your automation drops orders as email or text, measure to the re-key completion instead and flag the integration as a throughput risk.

3

Collect the events across a full week

Weekly rolling averages hide peak-hour patterns. Split the dataset by daypart (open, lunch, afternoon, dinner, close) and by day of week. You want the p50 and the p95 of seconds-per-call-close in each cell. Friday 7pm to 9pm is usually the worst cell and the one that matters most.

4

Set a target number for your format

Quick service breakfast or coffee should target 60 to 90 seconds. QSR lunch and dinner should target 90 to 120 seconds, which brackets the PieLine reference. Full service with heavy modifications can target 120 to 180 seconds. Catering inquiries should not hit this dashboard at all; they belong on the handoff-rate dashboard.

5

Add the metric to the dashboard your operator already reads

The phone-channel row goes next to the KDS ticket-to-plate row and the POS transactions-per-hour row. Same dashboard, same refresh cadence, same alerting thresholds. This is the line that takes the phone from 'a thing we forward to the AI' to 'a subsystem we read like any other.'

How each subsystem in a restaurant automation stack is graded

Same operator, same dashboard. The phone row has been blank because the phone channel was a human subsystem. That is the only reason. Adding seconds per call close is the fix.

FeatureHas no throughput numberHas a throughput number
Kitchen display systemn/aTicket-to-plate time
Inventory softwaren/aVariance percent
Scheduling / laborn/aSales per labor hour
Online orderingn/aConversion and abandon rate
Point of salen/aTransactions per hour
Phone channel (human-staffed)Unanswered percent onlyn/a
Phone channel (PieLine-staffed)n/aSeconds per call close

The human-staffed phone row traditionally shows unanswered percent as its only metric. That tracks absence, not presence. Once the phone is a machine subsystem, the metric shifts to the same kind of throughput number the other five subsystems already use. The point of this guide is that the number exists and has a concrete reference value.

What 102.36 seconds buys you on the revenue axis

Throughput is not the whole story. The reference call also closed a priced upsell. Between 55.5 seconds (pitch) and 75 seconds (read-back that includes the modifier), the ticket moved from a lumberjack slam plus Coke to a full breakfast with cheesecake and strawberries. That lift happened without adding staff.

What happened inside the 102.36 seconds, by axis

  • Throughput: ticket in POS at 89 seconds, well inside a QSR-appropriate 90 to 120 second target band.
  • Quality: four line items, all with modifiers, read back once before commit and once after. Zero re-interrogation.
  • Handoff: none needed. Caller was an order, not a complaint or catering inquiry, so the call stayed on the AI rail.
  • Revenue: one priced upsell offered (cheesecake), accepted, with a caller-initiated custom modifier (strawberries) captured on the same line.
  • Identity: caller gave name at 47.5 seconds and the AI used it in closing at 99 seconds. Small, but it is what takes the interaction from IVR to conversation.
  • Total: $34.11 with pickup time 12:45AM, both read back to the caller, both committed to the POS on the same transaction.

Why PieLine can publish the 102.36 second number at all

Two product facts, combined, make the metric legible. Without both, the number would not survive inspection.

From aiphoneordering.com/llms.txt

Direct POS integration. Orders flow directly into Clover, Square, Toast, NCR Aloha, and Revel. 50+ POS integrations available. No manual re-entry.

Restaurant-trained AI. Understands menus, modifications, dietary restrictions, specials, combo deals, allergen questions, hours, and location info. Not a generic voice bot.

The first fact means "ticket in POS" is a real event the stopwatch can stop on, not a staff action that happens later. The second fact means the call does not waste seconds on menu re-interrogation: the agent knows the lumberjack slam needs egg and bread sub-choices without asking the caller to spell them out. A generic voice bot would either take twice as long on clarifications or post a broken ticket. Neither option keeps the call under 110 seconds.

11 locations

Mylapore, an 11-location South Indian chain in the Bay Area, is rolling out PieLine across every restaurant. On the phone channel, 90 percent plus of calls are handled end-to-end by AI with tickets posted directly into the POS, which is the configuration that makes seconds per call close a measurable metric at all.

aiphoneordering.com/llms.txt, April 2026

Kitchen display systems
Inventory software
Scheduling and labor
Online ordering
Point of sale
Phone subsystem
Clover
Square
Toast
NCR Aloha
Revel
Deepgram multichannel
Direct POS adapter

See the 102.36 second call run on your own menu

Bring a phone number you can forward and a POS you want the ticket posted to. PieLine will run a test call end-to-end, stopwatch the ticket-in-POS event, and show you where the row lands on your existing operations dashboard.

Book a 15 minute demo

Put seconds per call close on your operations dashboard

Fifteen minutes, a live test call against your menu, a stopwatched ticket-in-POS event, and a row on your dashboard that treats the phone channel like every other subsystem in the stack.

Frequently asked questions

Why define a new throughput metric for restaurant automation systems?

Every other subsystem in a restaurant automation stack already has one. A kitchen display system is graded on ticket-to-plate time (typically 10 to 14 minutes in full service, 3 to 6 in quick service). Inventory is graded on variance percent (under 2 percent is clean, 5 percent plus is leaking). Scheduling is graded on sales per labor hour. Online ordering is graded on conversion rate and abandoned-cart percent. If the phone channel is going to be part of the stack, it needs its own time-budget number, and the natural one is 'seconds from first AI hello to a ready POS ticket.' Without that number, you cannot tell whether your phone subsystem is a peer of the kitchen display system or a pretty voicemail. With it, the phone channel becomes legible to the same operator who reads the other dashboards.

What does 102.36 seconds actually cover in the PieLine reference recording?

The entire arc of a phone order to a POS-ready ticket. At 0.4 seconds the AI answers with 'This is Denny on a recorded line.' By 9.4 seconds the caller has asked for a lumberjack slam and a Coke. From 15.9 to 25.7 seconds the AI collects the two clarifications every QSR order needs, egg preparation and bread choice, plus a Coke subclass. At 55.5 seconds the AI offers a priced upsell ('a slice of New York style cheesecake'). At 66 seconds the customer accepts with a custom modification ('add strawberries'). At 75.3 seconds the AI read-back includes the modifier. At 89 seconds the AI says 'placing your order now,' at 95 seconds it says the total is $34.11 and the pickup time is 12:45AM, and at 101.8 seconds the customer says bye. The full transcript with timestamps is checked into the repository.

Where in the codebase can I verify the 102.36 second number?

Open src/components/voice-activity-data.ts in the pieline-phones repository. The file exports voiceData with duration: 102.36 at the top, a sampleRate of 60, envelopes for customer and AI audio channels, and a captions array with start and end timestamps for every turn in the call. It was auto-generated from a Deepgram multichannel transcription of public/audio/dennys-order.mp3, which the landing page embeds via the VoiceActivityClip component on the hero. This is not a marketing number. It is the literal length of a recorded call that the product actually took.

Isn't 102.36 seconds just one call? Why build a metric on it?

It's a reference, not a claim that every call is that fast. The point of referencing a single publicly available call is to give operators a concrete time budget to test against. When you benchmark a kitchen display system you also start from one ticket and generalize: 'the average burger leaves the rail in 4 minutes 12 seconds, with a p95 of 6 minutes 40 seconds.' The 102.36 second PieLine call is the anchor a restaurant can stopwatch against its own calls, the same way it stopwatches its own kitchen. If your current human-staffed calls average 4 to 7 minutes at rush (industry norm for full-service order-taking), the gap is where the automation pays for itself.

What counts as 'call close' for this metric?

The moment the order is written to the POS as a real ticket, not the moment the caller hangs up. Those are different events. PieLine's direct adapter posts the order to Clover, Square, Toast, NCR Aloha, or Revel at the confirmation step, which in the reference recording is 89 seconds in. Everything after that is wrap-up: reading back the total, pickup time, thanking the caller by name, goodbye. If you measure to ticket-in-POS instead of to call-hangup, you get a cleaner number that compares directly to kitchen display system 'ticket received' timestamps, which is the handoff between the phone subsystem and the kitchen subsystem.

How does this compare to what counter staff actually do at rush?

A human cashier taking a phone order during peak hits three failure modes the stopwatch captures. First, wait time: the phone rings while the cashier finishes an in-store transaction. Industry data puts 30 to 40 percent of restaurant calls at unanswered during peak, which is implicit time to a zero-ticket close. Second, re-key time: even when answered, the cashier often writes the order on a pad first, then re-enters it into the POS after the call, adding 60 to 120 seconds of non-call labor. Third, upsell skip: a rushed cashier does not pitch the dessert, so the order closes at a lower ticket size. Against that, an automated phone subsystem that hits a 102.36 second close with an upsell attached is measurably a different class of system, not a faster human.

Does this metric apply to every restaurant format?

The metric applies anywhere phones ring. The target number changes by format. A pizza order with heavy customization (crust, half-and-half toppings, dipping sauces) will run longer than a QSR breakfast combo. A catering inquiry will not fit inside a second-per-call-close frame at all; those are the calls the handoff spec sends to a human (see the smart-call-transfer feature). Full-service restaurants with small phone volume can still measure the metric; they just care more about variance than about the average. The point is that there is a number to look at, not that the number is the same at every concept.

How does seconds-per-call-close interact with concurrency (20 simultaneous calls)?

Multiplicatively. A human phone employee runs one call at a time, so throughput is constrained both by per-call duration and by sequential blocking. An automated subsystem that closes a call in 102 seconds and runs 20 of them in parallel has a theoretical ceiling of roughly 700 call-closes per hour. Real volume never approaches that ceiling, but the gap matters at rush: if Friday 7pm drops 80 calls in 20 minutes, a one-at-a-time channel takes 80 call-closes worth of clock time (plus wait) while a 20-wide channel takes 4 rounds of 102 seconds, which is the difference between calls answered and calls lost. The full picture is (duration per call) divided by (parallel slots), and both numbers have to be on the dashboard.

What does this metric not measure?

Order accuracy, handoff quality, upsell acceptance rate, conversation empathy. Those are separate numbers with their own targets. PieLine publishes a 95 percent plus accuracy figure on complex modifications. Smart call transfer handles non-order calls with context forwarding. Upsell attach rate is emitted to the analytics dashboard. Seconds per call close is the throughput axis; accuracy is the quality axis; handoff rate is the exception axis; upsell attach is the revenue axis. A restaurant automation system needs a number on each of the four, not one composite number that hides tradeoffs.

If our current POS does not support direct ticket posting, does this metric still work?

Not cleanly. The metric depends on a machine-readable 'ticket arrived in POS' event to stop the stopwatch. If orders arrive in the POS via text message or email that a cashier re-keys, the relevant close time is the re-key completion, not the call completion, and the re-key latency drifts with staff workload. PieLine's direct adapter covers Clover, Square, Toast, NCR Aloha, and Revel at the API level. For POS platforms on the longer tail of 50-plus supported integrations, verify with the onboarding team whether the adapter path closes the ticket programmatically or whether the time budget has to include a human step.

How do we add this metric to our existing operations dashboard?

Three columns. First, a rolling average and p95 of 'seconds from AI hello to POS ticket posted' broken down by daypart and by day of week. Second, a counter of calls that closed above a chosen threshold (for example, 180 seconds) with reason codes populated from the conversation transcript, so you can see whether the slow calls were heavy customization, multiple upsells, or handoff candidates that should have routed to staff. Third, a per-location breakdown once you are multi-unit, because the target time differs by menu complexity. All three should read from the same event stream the POS reads for its ticket counts.

A phone subsystem you can read on the same dashboard as the kitchen

Kitchen display times, inventory variance, sales per labor hour, and transactions per hour already live on one dashboard. The phone channel gets a row next to them, with seconds per call close as the column that matters. The reference value is 102.36.

Book a demo
📞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.