Table Management

Your floors and tables, the live floor and Floor pulse, moving, merging, joining and splitting bills, Bill out, waiter sections, ordering from a table's QR code, and the Tables report.

21 min read · Updated 25 Oct 2026

On this page

Table management puts your dining room on screen. You draw each floor once, with the tables where they really stand, and every screen then shows a live floor: which tables are free, seated, waiting for the bill or being cleaned, how long each party has been there, and what needs someone right now. From the floor you seat parties, move them, merge and split bills, and push tables together for a big group. Guests can also order from a QR code on their table.

Needs the Kitchen Orders & Tables add-on (₱400 per branch each month), which also covers the Kitchen Display System. It is in the Kitchen Pack (₱1,399 a month) and the Everything Bundle (₱2,999 a month). See Plans & add-ons.

There is also a Table Management switch under Dining in Settings → Features, on by default for food-and-beverage stores.

What needs which add-on

Part What it needs
Floors, the floor plan designer, the live floor, moving, merging, joining and splitting bills, Bill out, waiter sections, opening the POS on the floor Kitchen Orders & Tables
Ordering from a table's QR code Kitchen Orders & Tables, plus your Online Store switched on. The Online Store has no add-on of its own — it comes with any paid add-on, so Kitchen Orders & Tables is enough
The Tables report Kitchen Orders & Tables shows today. Other dates also need the Business Reports add-on (₱400 per branch each month). The Kitchen Pack includes both
Bookings shown on tables A booking made in Appointments, which needs the Appointments & Bookings add-on (₱400 per branch each month)
Food ready on the floor, and the Kitchen view The Kitchen Display in use: the floor knows a dish is ready when the kitchen marks it ready

Where each part works

Web back office Kassly app (phone, tablet) Kassly Desktop
Draw floors and tables Yes — the floor plan designer No No
See the live floor Yes — Tables Yes Yes
Seat a party, take orders, add rounds No Yes Yes
Move, merge, join, take a table off a bill Yes Yes Yes
Print the bill (Bill out) No — it shows Bill out, but cannot print Yes Yes
Split a bill No Yes Yes
Take payment No Yes Yes
Accept or decline a table's QR order Yes Yes Yes
Put tables in waiter sections Yes No No
Choose what the POS opens on The store's default This device's choice This device's choice
The Tables report Yes No No

The floor needs Kassly 1.31.0 or later on Android and iOS, or Kassly Desktop 1.13.0 or later. Update the app if you do not see it.

The web back office has no POS — in a browser, the POS page asks you to install the app. On the web, the live floor is for watching the room and doing the moves above; seating guests and taking money happen in the app.

The screens

Screen Where Who
Tables Dining → Tables, /app/tables Everyone who can use the POS
Floor plan Settings → Floor Plan, /app/tables/designer Set Up Tables & Floor Plan permission
Table QR codes QR codes on Tables, /app/tables/qr Set Up Tables & Floor Plan permission
Manage Tables Manage on Tables, /app/tables/manage Everyone can read the list; adding, editing and deleting need Set Up Tables & Floor Plan
Tables report Reports → Tables, /app/reports/tables Owners and managers
Dining settings Settings → Store Settings, the Dining card Edit Store Settings permission

Owners and managers have Set Up Tables & Floor Plan; cashiers do not. The moves on the live floor — move, merge, join, mark ready — are open to everyone who can use the POS. See Custom roles.

Setting up your tables

Draw them in the floor plan designer. That is the quickest way: it has templates, duplicates tables with the next number, and puts each table where it really stands, which the live floor needs.

Manage Tables is the plain list, for a quick change to one table. Press Add Table:

Field Notes
Branch Only shown when you have more than one. It cannot be changed afterwards
Table Number Up to 20 characters, and it does not have to be a number — "T1", "Bar 1" and "Outdoor 3" are all fine. Unique within a branch
Capacity How many people it seats. Between 1 and 100, default 4
Display Order Where it sits in the list and in the Grid view
Section (optional) Up to 50 characters. Once you use the designer, a table's section is its floor's name, and the designer replaces whatever you type here
Active Turn a table off to take it off the floor without deleting it

A table added here is not drawn on any floor. It waits under Not on a floor yet in the designer, and the Tables page shows a reminder, "1 table not on a floor yet", that takes you there.

Manage Tables loads the first 100 tables only, with no page control. The list still shows the stored status, so a seated table reads Occupied there.

The live floor

Tables draws each floor as you drew it, with a tab per floor. Each tab shows free tables over total (3/12), and a red dot when something on another floor needs attention. The line under the title counts the whole branch: available, seated, bill out, reserved, cleaning.

Tables are coloured by status:

Status Colour Means
Available Green Free
Seated Blue A bill is open on it
Bill out Violet The bill has been printed and is waiting for payment. See Bill out
Reserved Amber Held. See Bookings and the Reserved status
Cleaning Grey Paid or moved, not yet wiped down

Chairs fill in as guests sit, from the party size on the bill. Small badges on a table flag a waiting QR order, food ready, Bill out, a party past your turn time and a booking that is due.

Map and Grid switch between the drawing and a grid of cards. Before you have drawn anything, only the grid shows.

The floor updates live: when an app seats a table, a dish is marked ready or a bill is paid, the table changes without a refresh, and saving the designer redraws the floor. It also reloads itself every 15 seconds as a safety net, so a table added on Manage Tables shows up within that time.

Views

The buttons above the floor change what the colours mean.

View Colours tables by
Status The statuses above
Time How long the party has sat against your turn time target: under three-quarters of it, nearly there, or past it
Kitchen Where the food is: waiting, being prepared, ready, served. Only meaningful if you use the Kitchen Display
Spend Spend per guest so far: under ₱250, ₱250–₱399, ₱400–₱599, or ₱600 and over. Without a party size it is per bill
Waiters Tables in someone's section, with the waiter's first name on the table. Your own tables are outlined

The web and Kassly Desktop have all five views. The phone and tablet app has the first four, and My tables instead of Waiters — see Waiter sections.

The Floor pulse

With no table selected, the panel beside the floor is the Floor pulse: what needs a person right now, most urgent first. When nothing does, it says "All calm".

Item Shows when Button
Table 8 · New QR order A guest's QR order is waiting to be accepted. Always first Review
Table 3 · Food ready The kitchen has marked a dish on the bill ready to run Open
Table 5 · Bill out 12m The bill was printed and is not paid yet. Moves up the list after 10 minutes Open
Table 2 · Seated 1h 10m, "Past the turn target" The party has sat longer than your turn time target Open
A guest's name and time, "Arriving in 20m" A booking on the table is due within 30 minutes, or up to 20 minutes late Open
Table 6 · Cleaning 7m The table has been on Cleaning for 5 minutes or more Mark ready

The phone app shows the same items as a strip above the floor.

The table panel

Click a table to open its panel. For a seated table you see the guests, how long they have sat, the bill so far, each item with its kitchen status, and the moves: Move, Merge, Join tables, and Take off bill when the bill covers more than one table. A Cleaning table has Mark ready; a Reserved one has Release table. A table with a waiting QR order shows the order first, with Accept and Decline.

On the web the panel and the Floor pulse need a window at least tablet-wide; on a narrow window they are hidden.

Seating guests and sending orders

Seating happens in the Kassly app or Kassly Desktop.

  • Seat a party on the floor asks how many people, then lights up the free tables that fit best — never one more than 4 seats too big — and can suggest two neighbouring tables to push together for a bigger party. Tables with a booking due within 45 minutes, or a QR order waiting, are skipped.
  • Seat this table on a free table's panel seats it directly.
  • With Ask for party size when seating on, the app asks "How many guests?" first. You can Skip it.

The menu then opens bound to that table. When you send the order, Kassly:

  • Sets the table to Seated and links the bill to it — or to every table, if you seated the party across two
  • Writes the table number onto the sale, so it shows on the receipt and in reports. Two tables read 10+11
  • Sends the order to the kitchen. See Kitchen Display System

One table holds one bill. If the table already has an open bill, sending a second order to it is refused with a message that the table already has an open order. Tap the seated table and use Add items instead: each round goes to the kitchen as it is added, and the table's total goes up.

The party size belongs to the bill, not the table. It is what the kitchen screen shows as Table T1 · 4 pax, and what fills the chairs on the floor.

Opening the POS on the floor

By default the POS opens on the menu. A restaurant can make it open on the live floor instead. Set the store's default in Settings → Store Settings, on the Dining card:

Setting Default What it does
POS start screen Products Products opens on the menu. Floor plan opens on your live floor: tap a table to seat guests and order
Ask for party size when seating On Fills the chairs on the floor and prints the guest count on the kitchen ticket
Go back to the floor after sending an order On Off keeps the menu open so the waiter can add another round right away
Show bookings on tables On Tables booked within 2 hours show the time, and the floor warns 30 minutes before guests arrive
Turn time target 60 min 45, 60, 75, 90 or 120 minutes. Drives the Time view and the "past the turn target" alert

The Dining card shows for food-and-beverage stores, or when the Table Management switch is on. Without the Kitchen Orders & Tables add-on it is locked, with "Add Table Management to open the POS on your floor plan."

Each device can choose for itself. In the Kassly app or Kassly Desktop, go to Settings → POS start screen: Follow the store setting, Products or Floor plan. The counter can stay on Products while the waiters' tablets open on the floor.

When a device opens on the floor:

  • Tapping a table opens the menu for that table. Takeout goes straight to the menu.
  • After Send, the POS goes back to the floor — or keeps the table open, if you turned Go back to the floor after sending an order off. After a sale is paid, it goes back to the floor.
  • A Floor button in the POS header takes you back. It refuses while there are items you have not sent: "Send or clear the order before going back to the floor."
  • On a phone or tablet, the separate Tables tab is hidden, so there is one place to work from.

A device set to the floor opens on Products anyway when your store does not have the add-on, or when no table is drawn on a floor yet. The setting says which: "No tables are on a floor yet, so this device opens Products. Draw the floor in the web back office."

Bill out

When guests ask for the bill, open the table's bill in the app and print it: Print Bill on a phone or tablet, Print bill on Desktop. Once it prints, the table turns violet and reads Bill out on every screen, and its panel says "Bill printed 4m ago, waiting for payment." The phone app needs a connected receipt printer for this.

Bill out clears by itself when a new round is added, when the bill is merged or split, and when it is paid.

Moving, merging and joining tables

All four moves start from a seated table's panel, in the app or on the web. On the web you can also drag: drop a seated table on a free one to move the party, or on another seated table to merge the bills.

Move What it does
Move Moves the party and its bill to a free table. The bill takes the new table's number, and the tables it left go to Cleaning. On the web, tapping a seated table instead merges the bills
Merge Puts this table's whole bill onto another table's bill. Tap the table whose bill should take the items. Party sizes add up, and this table goes to Cleaning
Join tables Puts free tables onto this table's bill, for a party spreading out. Pick the free tables and confirm — up to 10 at a time. The bill reads 10+11, and paying it frees every table
Take off bill Takes one table off a joined bill. The bill stays with the others, and this table goes to Cleaning

If you use the Kitchen Display, every move re-sends the kitchen ticket so it shows the new table.

A few rules:

  • Moves stay within one branch.
  • You cannot move a party onto a table that already has an open bill — merge instead.
  • Merge refuses a bill with a discount or a payment on it, on either side: manual, loyalty points or SC/PWD. Remove the discount first, or settle that bill on its own.
  • The emptied bill is voided with the note "Merged into Table 7's bill." and a total of ₱0. It never had a receipt number, so your receipt numbering is not affected.
  • Moves need a connection.

Splitting a bill

Split moves some items onto a new bill, so part of the table can pay on its own. It is in the Kassly app and Kassly Desktop, on the table's bill: Split on a phone or tablet, Split bill on Desktop.

  1. In Split the bill, pick the items and how many of each go on the new bill.
  2. Press Split and take payment. The new bill opens in the POS for payment, with the same table number. The rest stays on the table.

What to expect:

  • Split moves items; it does not divide a bill evenly. There is no "split three ways". To share one item, move part of its quantity.
  • A weighed item, or one with serial numbers, moves whole.
  • You cannot split off the whole bill — "That is the whole bill. Check it out as it is instead."
  • A bill with a discount or a payment on it cannot be split. Settle or remove it first.
  • A fixed service charge stays on the original bill.
  • The web cannot split, because it cannot take the payment.

Clearing a table

What happened Every table on the bill becomes
The bill was paid Cleaning
The sale was voided Available
The party was moved or merged away, or the table was taken off a joined bill Cleaning
You pressed Clear on the table's bill in the app (Clear table on Desktop) Cleaning
You pressed Mark ready (on the web or Desktop), or tapped the Cleaning table in the phone app Available
You pressed Release table on a Reserved table Available

Paying a bill does not free the table. It goes to Cleaning, and somebody has to mark it ready before it can be used again. That is the intended flow — the table is not ready until it has been wiped down. The Floor pulse lists any table left on Cleaning for 5 minutes, with a Mark ready button, so the floor stays honest on a busy night.

Waiter sections

A manager can put tables in a waiter's section at the start of a shift: on the web Tables page, open a table and pick a name under Waiter section, or set it in the floor plan designer. Nobody yet clears it. The waiter must work at that branch.

What each waiter sees:

  • Phone and tablet app: a My tables button above the floor, once you have at least one table. It narrows the floor and the Floor pulse to your tables.
  • Kassly Desktop and the web: the Waiters view, with each waiter's name on their tables and your own outlined.

A section is a label, not a lock. Anyone can still seat, move or bill a table in someone else's section. Section changes are not audit-logged.

Bookings and the Reserved status

If you take table bookings in Appointments and pick a table on the booking, the floor shows it. With Show bookings on tables on, a free table booked within the next 2 hours shows the booking time, and the Floor pulse warns 30 minutes before the guests are due. Whatever that setting, Seat a party stops offering the table 45 minutes before the booking.

A booking does not change the table's status. Reserved is still a status nothing in Kassly sets on its own: no booking, timer or screen puts a table on Reserved. If one is Reserved, Release table frees it.

Ordering from the table

Each table can have its own QR code. A guest scans it, orders from your menu on their phone, and the order lands on that table's bill once a staff member accepts it.

Setting up table QR codes

  1. Switch on your Online Store. Table orders run through it, and guests can only order what you have put on it. See Setting up your Online Store.
  2. On Tables, press QR codes (in the designer it is Table QR codes). There is one card per active table, with the floor name, the table number, the code, "Scan to order" and "Pay with your bill at the counter".
  3. Press Print sheet, cut the cards out and put each on its table.

If the Online Store is off, the page says "Turn on the Online Store first. Table codes open your store, so they only work while it is live.", and Print sheet is greyed out.

What the guest does

The code opens your store for that table. The guest picks items, then sees Order for Table 8: their Name, an optional Mobile number and an optional Note for the kitchen. They press Send order for Table 8.

There is no address, no email code, no minimum order and no payment on this page: "Nothing is paid on this page. Your order joins Table 8's bill, and you pay [your store] when you ask for the bill."

Accepting a QR order

The table gets an orange badge, and "Table 8 · New QR order" goes to the top of the Floor pulse. Open the table, check the items, and press:

  • Accept — the order becomes a round on the table's open bill and goes to the kitchen. If the table was free, it opens a new bill and the table is seated.
  • Decline — type a reason. The guest sees it.

You can also accept it from the Online Orders inbox, which shows the table instead of a phone number. See Online orders.

If you switched on Accept orders automatically in the Online Store settings, it still never accepts a free table's first QR order — otherwise anyone with a photo of the code could send food to your kitchen from home. Once the table is seated, later rounds from it go straight in.

Orders nobody accepts expire after the time in Expire unaccepted orders after (minutes), like any online order.

How a QR order closes

A QR order is a round on the table's bill, so it ends with the bill:

What happens to the bill The QR order becomes
Paid at the POS Completed
Voided Cancelled — "The table's bill was voided."
Merged into another table's bill It moves with its items

Once accepted, the inbox reads "On Table 5's bill. It closes when the bill is paid at the POS." and does not offer Complete or Cancel: completing it there would have charged the whole table as one payment.

Table orders only

To take orders at the table but not online, turn off both Offer delivery and Offer pickup in the Online Store settings. Your store page still shows the menu, but a visitor who did not scan a table is asked to: "Scan the QR code on your table to order."

When a code stops working

Press New code on a table's card if a guest walked off with it. The old printed code stops working at once; print the new card. A code also stops working when its table is switched off or deleted, or when the Kitchen Orders & Tables add-on lapses. The guest then sees "This table code is no longer valid. Ask a staff member for help."

The Tables report

Reports → Tables shows how hard each table works over a period. It is under Sales & Revenue on the Reports page, for owners and managers.

Across the top: ₱ per seat-hour, Average seated time, Bills · guests and Dine-in revenue. Below that, a plain-language note — which table earns the most per seat, and which tables usually seat fewer than 60% of their chairs — and a row per table, best ₱ per seat-hour first.

Column How it is worked out
Seats The table's seats. Joined tables (10+11) are one row, with their seats added
Bills Paid dine-in bills with that table number, by the date they were paid
Guests The party sizes entered on those bills
Fill rate Guests ÷ seats, averaged over the bills that have a party size
Avg seated From when the bill was opened to when it was paid. A bill left open longer than 8 hours counts as 8
Revenue The bills' totals
₱ per seat-hour Revenue ÷ (seats × hours the table was in use)

₱ per seat-hour is the number to act on: a two-seater that turns quickly often earns more per seat than the six-seater by the door that keeps seating couples.

CSV downloads the same rows, with the floor, branch and seat-hours added. Without the Business Reports add-on, the report shows today only.

The report matches bills to tables by the table number written on each bill. After you renumber tables, older bills stay under their old numbers — counted against whichever table has that number now, or with no seat count if none does.

Limits and things to be careful about

  • The web cannot seat, print or take payment. Use the Kassly app or Kassly Desktop for that.
  • There is no "split evenly". Split moves items; see Splitting a bill.
  • Discounts and payments block merging and splitting. Merge and split first, then apply the discount.
  • Kassly will not delete a table with an open bill, from Manage Tables or the designer. Manage Tables only says "Failed to delete table" — settle or move the bill first. Use Active off instead of deleting whenever you might want the table back.
  • What is audit-logged: moving a party, merging bills and splitting a bill are recorded in Audit logs. Joining tables, taking one off a bill, waiter sections, and creating, editing or deleting tables and floors are not.
  • The floor needs a connection for most things. Offline, the app keeps the last floor it saw, but sending a dine-in order, moving, merging, joining, splitting and accepting QR orders all need a connection. See What works offline.
  • Bookings come from Appointments only. There is no separate reservation book on the floor.