Sales integration via POS systems in tspoonlab
tspoonlab does not include a POS (Point of Sale) module, but it can integrate the sales from these systems for two purposes:
Stock control. Based on the sales received from your POS, tspoonlab deducts the theoretical consumption of each ingredient or recipe using your recipe costings. This gives you a theoretical stock that you later reconcile against your inventory counts. Stock variances are the difference between theoretical and actual stock, and they are key to improving your operation.
Menu engineering. The quantities sold of each product and their sales amounts, combined with the recipe costings already in tspoonlab, let you run an analysis to identify your best-performing dishes and the ones that need adjusting.
Generating CSV files
To generate the CSV files for import, some POS systems export them at cash close, while other centralised systems create them on the restaurant's server. The file can use any format, since tspoonlab can later transform and process it to import the information. In any case, below we define an example format with the information needed for a standard import.
The field separator in the CSV file must be the semicolon ;
Alphanumeric descriptions in the file must never contain ; so they are not mistaken for a separator.
No field delimiter is used, such as the double quote ".
The fields can appear in any order, but the first line must be the header row.
The recommended fields are:
Sale date (in DD/MM/YYYY format)
Sale time (HH:MM:SS)
Item code (no ;)
Item description (no ;)
Quantity sold (if decimal, use , as the separator)
Unit price excl. VAT (Value Added Tax) (, as the decimal separator)
Sale amount excl. VAT (, as the decimal separator)
Sale discount excl. VAT (, as the decimal separator)
VAT rate (in %)
Parent item code (when the item is a modifier)
Optional:
Ticket number: a unique identifier for each transaction.
Number of guests (Pax): the number of customers linked to each ticket.
Having this information in the import file lets you obtain and analyse key performance indicators (KPIs) in tspoonlab, such as:
Average ticket: the average spend per transaction.
Average number of guests: the average number of customers served per ticket.
Average spend per guest: the average amount each customer spends per visit.
📢 Attention: If the item code does not include the format, it must be added to the code. For example, if item 100 is "red wine" with format code 4 for glass and 5 for bottle, you should generate the codes 100.4 and 100.5.
File example
This file example assumes a sale of a beef steak with fries and a burger with extra cheese in the first two tickets, and a third sale with a mixed salad and two draft beers for 2 guests.
The fields shown in this example are: date, time, item code, item description, quantity, price excl. VAT, amount excl. VAT, discount excl. VAT, VAT rate, parent code, and the optional ticket number and Pax fields.
date;time;item_code;item_description;quantity;price_net;amount_net;discount_net;vat;parent_item_code;receipt_number;pax
03/08/2026;14:30:00;FT001;BEEF STEAK;1;18,09;18,09;0;10;;T001;1
03/08/2026;14:30:00;PAT001;SIDE OF FRIES;1;0;0;0;10;FT001;T001;1
03/08/2026;15:00:00;HA001;BURGER;1;18,09;16,36;1,73;10;;T002;1
03/08/2026;15:00:00;EQ001;EXTRA CHEESE;1;0;0;0;10;HA001;T002;1
03/08/2026;21:15:00;ENS001;MIXED SALAD;1;9,09;9,09;0;10;;T003;2
03/08/2026;21:15:00;CER001;DRAFT BEER;2;2,73;5,46;0;10;;T003;2
In the burger sale (ticket T002) there is a discount on the taxable base of 1,73€ (equivalent to 1,90€ VAT included).
The codigo_articulo_padre field indicates the code of the main product that a modifier is linked to (such as the fries or the extra cheese). For main products this field is left empty, shown as two consecutive semicolons (;;).
The optional numero_ticket and pax columns go at the end of the line. They let you group the items of the same ticket and record the number of guests (for example, ticket T003 is assigned 2 guests).
File name
The file name must be unique — for example, by including the date and time in the name. A sale must never be sent twice.
Sending the CSV file to tspoonlab
The CSV file must be sent to an SFTP server. Contact your advisor to get the connection details (username, password and the destination folder).
If you manage more than one restaurant under the same account, you must keep the sales import files separate: each venue needs its own folder. Your advisor will tell you the structure to use.
Additional information
If you want to see how POS product mapping to tspoonlab works, check the "Link your sale items (POS)" article.
Did you find this article helpful?
If you need further assistance, contact support by clicking the built-in Support Chat in the bottom-right corner of your screen.
