Dashboard

Loading…

Total Revenue
Operating Profit
Prime Cost
Payroll
Break-Even Revenue
minimum to cover all costs

Total Revenue vs. Total Expenses

Period-by-period trend

Cash Flow

Bank statement — total inflows vs outflows

Revenue Mix

Revenue by product category

Expense Breakdown

All cost categories

Margin Trend

Profit % and prime cost % over time

Health Flags

Key ratios vs industry targets

All figures shown are pre-tax estimates based on data you have uploaded. This dashboard is designed to provide operational insight and financial clarity — it is not intended for accounting, tax, or legal purposes. Privacy Policy

Upload Data

CSV or Excel files — all formats detected automatically. Click to browse or drag & drop a file.

🖥️ Desktop recommended for building your dashboard. File uploads, drag-and-drop, and period saving work best from a laptop or desktop browser. You're welcome to explore the demo below — use the button at the bottom to send this page to your desktop.
🔒 Your data never leaves this device. All processing happens locally in your browser — no files are uploaded to any server, no data is stored in the cloud, and no account is required. SandCastle cannot see your financial data.

📈 Revenue / POS

Toast, Square, Shopify — CSV or Excel
📄
Drop files or a folder here
Browse files Browse folder
CSV · XLSX · XLS · or drop a whole folder

💰 Payroll

Gusto, QuickBooks, ADP — CSV or Excel
📄
Drop files or a folder here
Browse files Browse folder
CSV · XLSX · XLS · or drop a whole folder

🧾 Expenses

Invoices, inventory, utilities — CSV or Excel
📄
Drop files or a folder here
Browse files Browse folder
CSV · XLSX · XLS · or drop a whole folder

🏦 Bank Statement

Optional — for reconciliation reference
📄
Drop files or a folder here
Browse files Browse folder
CSV · XLSX · XLS · or drop a whole folder

📝 Manual Expense Entry

No expense file? Enter your monthly costs directly. Keep fixed costs (same every month) separate from variable costs (change with sales volume) — SandCastle uses the distinction to calculate your break-even accurately.

📌 Fixed Expenses — same amount every month regardless of sales
$
$
$
$
$
$
$
$
📈 Variable Expenses — fluctuate with sales & business volume
$
$
$
$
$
$
$
$
$
$
➕ Custom Expenses — any other costs not listed above

🗓 Period Label

📅 Period History

PeriodRevenuePayrollMaterial Prime CostTotal ExpProfitMarginCash InCash Out
⚠ Accuracy depends entirely on the completeness and correctness of your inputs — missing reports, mis-categorized expenses, or incomplete payroll data will produce inaccurate results.

Next Steps

Based on all your data combined

Upload data to see next steps
Industry benchmarks are based on published averages from the National Restaurant Association (2025 Operations Data Abstract) and the James Beard Foundation — and may not reflect your specific market, concept, or operating model.

Forecasting

Model "what if" scenarios — instantly see how changes affect your profit

Scenario Controls

Drag or type a value to see the impact instantly

Sales Change0%
%
Payroll Change$0
$
Material Cost Change0%
%
Fixed Expense Change$0
$
Variable Expense Change0%
%
Scenario Revenue
Scenario Profit
Profit Margin

Current vs. Scenario

MetricCurrentScenarioChange

Side-by-Side

Blue = current · Purple = scenario

Forecasts and projections are hypothetical and not guarantees of future performance. Results depend on the accuracy of your uploaded data and the assumptions modeled.

Tutorial

Learn how to get the most out of SandCastle

What is SandCastle?

SandCastle is a financial dashboard for independent restaurants. Upload your reports and instantly see your revenue, prime cost, profit margin, and break-even in one place. Compare them to industry averages and get actionable insights for free.

No finance background needed. Your financial data is for your eyes only and stays on your device.

1

Upload Your Reports

Click Upload Data in the left menu. You'll see four upload cards — drop your files onto each one or click Browse. SandCastle auto-detects the format.

📊 Revenue / POS — Your sales report from your POS system (Toast, Square, Lightspeed, Clover, etc.). This is what drives all your revenue, prime cost, and margin calculations. Export it as CSV or Excel from your POS's Reports section.

👥 Payroll — Your payroll export from Gusto, ADP, 7shifts, or similar. SandCastle uses gross pay to calculate your true labor cost as part of prime cost.

🏦 Bank Statement — Optional, but recommended. Export a CSV or Excel statement from your bank. Used for the Cash Flow chart and to cross-reference your sales figures.

🧾 Expenses — Your vendor invoices, inventory costs, and operating expenses. Export from QuickBooks, Xero, Restaurant365, or any accounting system. If you don't have a file yet, click "Don't have expense reports? Enter manually" to type in your costs directly.

📊 Revenue / POS Toast, Square, Lightspeed — CSV or Excel Drop files or click Browse 👥 Payroll Gusto, ADP, QuickBooks — CSV or Excel Drop files or click Browse 🧾 Expenses Invoices, inventory, utilities — CSV or Excel Drop files or click Browse 🏦 Bank Statement Optional — for reconciliation reference Drop files or click Browse

No expense file? Click "Don't have expense reports? Enter manually →" below the Expenses card. A form opens with pre-built fields for the most common restaurant costs split into two groups:

📌 Fixed costs — same every month regardless of sales: Rent, Insurance, POS & Software, Marketing, Accounting, Licenses & Permits, Equipment Lease.

📈 Variable costs — fluctuate with business volume: Food Cost, Beverage Cost, Utilities, Repairs & Maintenance, Delivery & Packaging, Credit Card Processing Fees, Cleaning Supplies, Trash & Waste, Music & Entertainment. Use + Add custom expense for anything else.

💡You can upload multiple files per slot — SandCastle merges them automatically. Drop a whole folder and it reads every file inside. Accepted formats: CSV, XLS, XLSX.
2

Label Your Period & Save

After uploading, scroll down to the Period Label section. Give this upload a name — like "Jan 2024" or "Q1 2024". SandCastle auto-detects the date range from your files and fills in the period hint below the label.

When you're ready, click Save Period. If any data is missing (no payroll, no expenses, etc.) SandCastle will warn you before saving — you can save anyway or go back and fill in the gaps.

PERIOD LABEL e.g. Jan 2024 · Q1 2024 · FY2024 MONTHS 1 💾 Save
💡Upload multiple periods over time to build a trend history. Each period gets its own label and SandCastle automatically splits multi-month uploads into separate monthly records.
3

Reading Your Dashboard

The Dashboard is your home base. The top row shows five key metrics at a glance. Use the dropdowns at the top right to filter by period — a single month, quarter, or all time.

Each metric has a color indicator: green = healthy, amber = watch it, red = action needed. Click the ? on any card for a plain-English explanation of what it measures.

TOTAL REVENUE $409.0K 5 revenue streams OPERATING PROFIT $136.8K 33.4% margin PRIME COST $231.1K ✓ Under 65% PAYROLL $116.6K ✓ Under 35% BREAK-EVEN REVENUE $62.8K minimum to cover all costs Revenue Over Time Period-by-period trend Revenue Expenses Expense Breakdown Food Cost Beverage Cost Payroll Rent Utilities Marketing
💡Click the ? button on any chart or metric card for a plain-English explanation of what it measures and how it's calculated.
4

Using the Next Steps Tab

The Next Steps tab cuts through the noise and tells you the single most important thing to work on right now, based on all your data combined.

Each card shows the problem, gives you Quick Wins (actionable this week) and Fundamental Fixes (bigger structural changes). Even when everything is healthy it finds the metric closest to its limit and suggests improvements.

NEXT FOCUS Keep prime cost moving down — Prime cost is 56.5%, within the 60–65% target ⚡ QUICK WINS • Run a 2-week waste log • Schedule a vendor price review this quarter • Try one menu engineering pass 🔧 FUNDAMENTAL FIXES • Target prime cost below 60% • Implement weekly prime cost tracking • Build recipe cost cards for menu items
💡Benchmarks are sourced from the National Restaurant Association for independent US full-service restaurants. They're guidelines — your specific concept may have different targets.
5

Using the Forecasting Tab

The Forecasting tab lets you ask "what if?" questions instantly. Drag sliders or type numbers to see how a change affects your profit in real time.

For example: "What if I raise prices 3%?" or "What if I add $800 to payroll?" The results update live in the comparison table on the right.

Scenario Controls Drag or type a value Sales Change 3% Payroll Change $800 Material Cost Change 7% Fixed Expense Change -$400 ↺ Reset All to Zero SCENARIO REVENUE $421.3K vs current +$12.3K SCENARIO PROFIT $140.0K vs current +$3.2K PROFIT MARGIN 33.2% vs current -0.2% Current vs. Scenario METRIC CURRENT SCENARIO Total Revenue $409.0K $421.3K Prime Cost $231.1K $239.9K Operating Profit $136.8K $140.0K Break-Even $62.8K $62.5K
💡Use Forecasting before making decisions — adding a staff member, changing menu prices, or negotiating a new supplier contract. See the impact before you commit.
🏖️

That's everything. Upload your first period and your dashboard will come to life.
Come back to this tab any time you need a refresher.

Contact & Feedback

Submit feedback, report a bug, or ask a question

📬 Send a Message

Have feedback, found a bug, or want to ask something? Fill out the form below and it will open in your email client pre-addressed and formatted.

❓ Frequently Asked Questions

My expenses look inflated — the numbers seem way too high
This usually happens when you upload a full-year expense file (e.g. annual COGS totals) alongside monthly POS data. SandCastle totals all expense rows it finds — if your CSV has 12 months of data it will sum all 12 months as one period's expenses. Fix: upload one month of expense data at a time, or split your annual expense file into monthly files before uploading. If you used the manual expense entry, make sure you entered monthly amounts, not annual totals.
Ghost periods are showing up in 2025 or 2026 that I didn't create
This happens when expense or payroll CSV files use bare month names ("January", "February") instead of full dates. SandCastle defaults those to the current year. Fix: delete the ghost periods from Period History using the ✕ button. Then re-upload your files — SandCastle will use your POS file's dates to realign expense months to the correct year automatically. Always upload your POS/revenue file in the same batch as your expenses.
The Cash Flow chart is blank or shows $0
Cash flow data comes from your bank statement. If you haven't uploaded a bank CSV, or if you saved a period before uploading the bank file, cash flow will be blank. Fix: upload your bank statement CSV on the Upload Data page, or use the ⋯ Manage button on a saved period in Period History to add bank data after the fact. SandCastle accepts Chase, BofA, Wells Fargo, Mercury, Relay, and most other US bank export formats.
My fixed expenses aren't auto-filling
Auto-fill only works when your expense CSV has recognizable fixed-cost category names (Rent, Insurance, POS & Software, Marketing, Accounting, Licenses & Permits, Building Maintenance). If your CSV uses different names, SandCastle won't be able to map them automatically. Fix: click "Don't have expense reports? Enter manually" and type your fixed costs directly. Alternatively, rename the categories in your CSV to match the expected names before uploading.
The Browse Folder button isn't working
In the web version, Browse Folder uses your browser's folder picker (webkitdirectory). This works in Chrome and Edge but may not work in Safari. If it doesn't work, use Browse Files instead and select multiple files at once (hold Cmd/Ctrl to multi-select). You can also drag and drop a folder directly onto the upload zone in Chrome.
My revenue is wrong — it doesn't match my actual sales
SandCastle anchors to the "Net Sales" or "Gross Revenue" row in your POS export. If your POS file has a revenue conflict (categories don't add up to the stated total), a yellow warning banner appears during upload asking you to choose which figure to use. Check that warning and select "Anchor" (the stated total) if you trust your POS system's total. Also ensure you're not double-uploading the same file — SandCastle will warn you if a filename is already loaded.
What file formats does SandCastle accept?
CSV (.csv), tab-separated (.tsv), Excel (.xlsx and .xls). PDF is not supported. Most POS systems, payroll platforms, and accounting software can export to CSV or Excel. In Toast: Reports → Export. In Square: Sales Summary → Export CSV. In Gusto: Reports → Payroll History → Export. In QuickBooks: Reports → Export to Excel.
Is my data stored anywhere / sent to a server?
On the desktop app: all data is stored locally in a JSON file on your Mac or PC (~/Library/Application Support/FinancialOS/data.json on Mac). Nothing is sent to any server. On the web version: data is stored in your browser's IndexedDB — it stays in your browser and is never transmitted. Clearing your browser data or using a different browser will result in a fresh start with no history.
The Next Steps tab says my data needs to be uploaded
Next Steps always looks at your all-time data. If you haven't saved any periods yet (or deleted them all), it has no data to analyze. Upload your files on the Upload Data page, fill in the Period Label, and click Save Period. Once at least one period is saved, Next Steps will populate automatically.
Why doesn't SandCastle have an AI assistant?
Simple: AI requires sending your data to a third party — OpenAI, Anthropic, Google, whoever powers it. That breaks our confidentiality agreement. Your revenue, payroll, and expense numbers never leave your device, and we intend to keep it that way.
🖥️
Desktop Recommended
SandCastle's dashboard builder is designed for desktop. Open this page on your laptop or computer to upload your reports, save periods, and build your personal financial dashboard.

Copy this link and open it on your desktop browser:

Dismiss
🏗️
Ready to see your restaurant's numbers?
You'll need your POS export, payroll report, and bank statement — takes about 5 minutes to pull together.