Data import and menu items
Add menu items manually, upload food costs, estimate missing costs with AI, or explore with built-in sample data.
Use Data Management when you need to create menu items, fill in food costs, or start with MenuWright's built-in sample restaurant.
Add and maintain menu items manually
Choose Add Item and enter:
- Name — required.
- Category — optional.
- Menu Price — required.
- Food Cost — optional; leave it blank when you do not know the cost yet.
MenuWright stores a manually entered food cost with the source manual. You can edit an existing item later. Saving a food-cost edit marks the value as manual, including when you replace an AI estimate with a verified cost.
Deleting an item deactivates it rather than removing the record from the database. Inactive items no longer appear in the active menu-item list.
Upload food costs
Use Upload Costs to upload a CSV or Excel (.xlsx) file with these required columns:
| Column | Required | Accepted aliases |
|---|---|---|
item_name | Yes | name, item, menu_item |
food_cost | Yes | cost, food cost, ingredient_cost |
Headers are trimmed and matched case-insensitively. Cost values that cannot be parsed as numbers are dropped. The import matches active menu items by normalized name, updates the matched items, and marks those costs as manual.
The response reports both sides of the match:
- Matched — the number of active menu items updated.
- Unmatched — names from the file that did not match an active item. They are reported, not silently created.
Uploads are capped at 5 MB and are read in chunks. The endpoint accepts only .csv and .xlsx filenames. Unsupported extensions, schema problems, corrupt files, and oversized files are reported separately so you can correct the right problem:
- Unsupported extension:
400. - Missing or duplicate required columns, or a workbook with multiple visible sheets:
422. - Corrupt or unreadable file:
400. - File over the upload cap:
413.
For sales-history files, use the CSV and Excel import guide; this page covers menu items and food costs.
Estimate missing food costs with AI
The Estimate Missing Costs action is available on Core and Pro. Free accounts receive an upgrade response instead of an estimate.
An item is eligible when it is active, has a menu price above $0.05, and has no food cost. Each request processes at most 100 candidate items. If more remain, the response includes total_missing so the dashboard can tell you to run the action again.
The estimator is conservative:
- Items with the same normalized name and the same menu price share one estimate. Different prices are treated as different items.
- An estimate must be at least
$0.05and strictly below the menu price. - Values that fail those bounds are skipped instead of being clamped into a misleading cost.
- The response separates
estimateditems fromskippeditems and explains why an item was skipped when the AI returned no estimate, returned an out-of-bounds value, or lost a concurrent update. - A manual cost entered while estimation is running wins. The database only writes an estimate while the cost is still missing and the menu price is unchanged.
An estimated value is labeled with source estimate in the menu table. Treat it as a starting point and replace it with your verified cost when you have one.
Explore with sample data
During onboarding, choose Try it instantly with sample data to populate an empty restaurant with a realistic Italian-American menu. The sample-data endpoint:
- Creates 27 menu items across appetizers, entrees, sides, desserts, beverages, and alcohol.
- Generates 90 days of daily sales records with weekend uplift, a slight upward trend, and natural variance.
- Runs an analysis over the most recent 30-day period.
- Commits the menu, sales records, and completed analysis together.
- Generates AI recommendations after the main data commit when that recommendation step succeeds.
Sample data is intended to let you reach a real analysis without preparing a file first. It will not double-populate an account that already has menu data; the endpoint returns a conflict, and the onboarding error directs you to the dashboard. The page does not navigate there automatically.
A practical order of operations
Create or import the menu
Add items manually, upload food costs for existing items, or load the sample restaurant during onboarding.
Fill in real costs
Use verified food costs where possible. Use AI estimates only for missing values and review the items marked estimate.
Run an analysis
Once the menu and sales data are available, run an analysis to classify items and produce recommendations.