AI-assisted onboarding in Fran-Trak

How Fran-Trak's setup wizard uses AI to read menus and sort them into tax classes, and why it never sets a tax rate.

Fran-Trak's setup wizard on the menu step: the twelve steps down the left with their progress, the menu import with options for photos or PDF, CSV or a web address, a checklist of what still needs a look, and the Concierge chat panel on the right.
The setup wizard on the menu step, with the Concierge open. A test brand, renamed Local Pizza for this picture.

Moving a restaurant to a new point-of-sale system is a project. Toast’s own onboarding guide says a typical implementation takes four to six weeks. Toast builds the first menu from templates that the restaurant then edits, and its published US rates list $1,000 for an on-site installation day and $800 for a remote one. That setup cost keeps customers in place: a restaurant that has been through it rarely wants to repeat it or pay for professional services to do it again.

Fran-Trak’s setup had the same problem. Our staff met with each customer to review the menu, entered it by hand, and ran several rounds of review before anything went live.

Setup wizard

Late last summer I replaced that process with a self-serve setup wizard. A new brand signs in with a code from its order email and works through twelve steps, from Business to First sale. AI handles the steps that read and sort large amounts of data, offers guidance and proposes a setup suited to the business, while decisions stay with the owner. The examples below use a typical restaurant.

StepWhat the wizard automates
BusinessProposes a business type and traits, such as whether it sells alcohol, from a one-sentence description
Stores and taxesLooks up each store’s coordinates for delivery and checks its tax lines against public sources
MenuReads menu photos, a PDF or the restaurant’s website into items, prices and sizes
DepartmentsProposes departments with a tax class for each, sorts every item into one and suggests better groupings
ModifiersReads choice groups such as sizes, toppings and add-ons, and flags gaps such as drinks without sizes
InventoryReads supplier invoices into suppliers, products, weights and counts, with no typing or EDI feed

The menu step accepts up to six photos at a time, a PDF, a CSV file or a web address. The model returns each item’s name, price, size variants, suggested department and category, and a confidence level. Items it cannot identify must be marked UNSURE; the model is told not to guess and not to file unknown items under Other. For a website, it also selects a photo for each item, which becomes the register button image.

Nothing is saved directly from the model’s output. Every AI step ends in a review grid that flags rows needing attention: new departments, missing prices, duplicates, existing items and items whose tax treatment will change. The menu is written only when the owner selects Import, after which it is enabled at every store and pushed to the registers.

Menu import is inexpensive. An 18-item test menu cost about one cent, an 80-item menu about three cents, and a 500-item menu stays under 25 cents.

Tax classification

Restaurant tax is layered. A store can have several tax lines, such as a base sales tax and a liquor tax, each applying to some items and not others. Fran-Trak uses seven tax classes: standard, prepared food, grocery, alcohol, tobacco, sugary beverage and non-taxable. An item inherits its class from its category, the category from its department, and the department from the owner’s choice. Menus do not group items the way tax law does, so a Happy Hour section can hold cocktails and pizza side by side.

The model proposes departments, sorts items into them and assigns each item a reporting category, such as food, alcohol or packaged goods. Fixed code, not the model, converts categories into tax classes. When an item’s category disagrees with its department, the item receives its own tax class: a pizza in an Alcohol department is taxed as prepared food, and a beer in a food department is taxed as alcohol.

That rule came from a local pizza restaurant’s menu. Its happy-hour department held three cocktails and three pizzas, was classed as Alcohol on a three-to-three tie, and would have charged the pizzas liquor tax. A tie can no longer make a department Alcohol or Tobacco, and the review grid labels every item whose tax class differs from its department. Classes the import never assigns, such as non-taxable or sugary beverage, are treated as deliberate decisions and are never overwritten.

Tax rates

The model never sets a tax rate. The owner or their accountant enters each store’s rates, and any step can be delegated by email. The assistant’s instructions say it never suggests a rate, because the tax authority or the accountant decides. The form validates what it can: exactly one base sales-tax line per store, rates between 0 and 30 percent, unique names, and a warning on any store that would charge no tax.

A rate check then compares each store’s saved lines with what official sources say for its exact address, including whether it sits inside city limits. It reports matches, missing local taxes and lines the sources do not mention, with links, and changes nothing. Some jurisdictions add another layer: Omaha, Lincoln and other Nebraska cities levy a restaurant occupation tax, and sales tax is calculated on the meal price plus that tax. Fran-Trak adds tax lines together rather than compounding them, so the check flags these stores to work with support before going live. Edge cases like this are straightforward to find and flag when the data is available.

Concierge

Each step includes a Concierge, a chat panel that answers questions about the step using the brand’s own data. In Chrome, when the built-in model is available, it answers on the device and nothing is sent to Fran-Trak or Google. Otherwise it calls Gemini on the server with a small set of tools.

Those tools read the brand’s stores, departments, menu items, modifier groups and employees, scoped to that brand, and cannot change data. When an owner asks the Concierge to remove menu items, it can only propose the removal: the page shows a button, and the items are deleted only if a person selects it within 15 minutes. As the commit that added this explains, “the model can never delete anything, which matters because item names reach it as data read off menus and websites.” Menu photos and websites are third-party content, so every prompt marks them as data and instructs the model never to follow instructions inside them.

A few rules in the instructions do most of the work: answers stay under 120 words, the model never invents prices, tax rates or legal advice, it says when an answer is not in the data, and it mentions only web addresses that appear in the help content or the data. A delegate, such as an accountant handling taxes, receives only the lookups that step needs.

Cost controls

Every AI call is logged by business and feature. Each business has a daily budget of roughly a dollar, plus limits on the number and length of questions per session. A weekly check flags any business that exceeds its usual usage.

Issues found

  • Failed imports. For the first week after launch, no menu import succeeded. The model’s output contained a non-ASCII character the server could not encode, and the model’s thinking tokens counted against the output limit, which cut off longer menus.
  • Undercounted usage. The usage log ignored thinking tokens and reported about half of actual usage.

Online ordering

None of this places AI in front of the restaurant’s customers; the online ordering site and mobile app do not call a model. The connection to ordering is the menu itself: imported items, with their photos, are available for app ordering by default. On the staff side, operators can look up, update and refund online orders from their AI assistant through Fran-Trak’s MCP server, described in Opening Fran-Trak to AI agents.

Results

Setup that took weeks of coordination now takes an afternoon, done directly by the people who know the business best. Using AI this way has lowered the cost of adopting Fran-Trak and improved both the setup experience and the quality of the data operators rely on.

← All writingRSS