How do you turn your business data into reports and insights with AI?
AI can pull your sales, ad, and KPI numbers from the tools they live in, do the comparisons you'd do by hand, and write up what changed. The hard part isn't the math; it's asking the right question of the data, comparing like with like, and not mistaking a small or noisy number for a trend. Done well, you get a report that says what to do, not just a table of figures.
Most “data analysis” in a small business is one of a few jobs: figure out what’s selling and what isn’t, check whether the money going into ads is coming back out as revenue, and package the result into a report someone will actually read. None of it is statistically hard. What eats the time is that the numbers live in different tools that don’t talk to each other, the formats never line up, and the same report has to be rebuilt every week or every month. By the time you’ve exported from Toast, pulled the ad spend from TikTok, and pasted it all into a spreadsheet, the question you wanted to answer has gone stale.
What actually decides the outcome
A clear report and a misleading one start from the same spreadsheet. A handful of judgment calls separate them.
The question you ask, not the chart you make. “Show me sales” produces a table. “Which five items earn the least real money and why” produces a decision. Pick the question first, because it determines which columns you even need.
Margin over revenue. This is the one people get wrong most. The biggest seller is not always the biggest earner. For a restaurant pulling Toast data, a popular dish with high food cost can contribute less to the bottom line than a quiet one with a clean margin. Until you put cost next to sales, you’re ranking the wrong thing.
Compare like with like. Spend means nothing without the revenue it drove and the window it drove it in. A TikTok ad set judged on a three-day window looks different at fourteen days once delayed conversions land. Break-even matters too: at a 40% margin, anything under about 2.5x return is losing money, however busy it looks.
Signal versus noise. A 5% week-over-week swing on forty orders is nothing; the same swing on four thousand is real. Small samples and short windows invent trends that aren’t there. Knowing how much data you need before you trust a number is most of the skill.
How to do it by hand
For a sales or menu analysis: export the period’s sales from your POS, add a column for cost per item, and compute units times margin for each line. Sort ascending. The bottom of that list is your underperformers. Then split it into “sells fine but thin” and “barely sells,” because the fix differs.
For ad-spend-versus-revenue: pull spend per ad set or campaign from the ad platform, pull the actual revenue those campaigns drove from your store or analytics, line them up by the same date range, and compute return on ad spend. Mark anything below your break-even threshold for pausing, but only if it has enough conversions to be more than noise.
For a client or KPI report: gather the metrics from each source, drop them into a consistent template, write a short read of what changed and why, and either build the dashboard or export the file. If you’re pulling from a PDF, extract the named figures into rows first so they can feed a live view instead of being retyped.
Where it goes wrong
Ranking by revenue and cutting the wrong items. Reading ad performance on too short a window and killing a set right before its conversions land. Trusting a swing that’s just a small-sample wobble. Comparing two date ranges that aren’t actually the same length. And the format trap: a copy-paste report breaks the moment a column gets renamed, often without any error, so the dashboard quietly shows last month’s truth. Most bad reports aren’t wrong about arithmetic; they’re answering a slightly different question than the one that was asked.
Doing it yourself vs. handing it to Physea
The manual version is doable and worth understanding, because you should know what the report is claiming. The catch is that it’s the same export-merge-compute-write cycle every single period, across tools that won’t connect on their own, and it’s exactly the task that gets skipped when the week is busy.
Physea’s Liminality runs the whole thing end to end across your own connected tools, over MCP. It reads your POS, ad platforms, store, and analytics where the data already lives, joins spend to revenue and sales to cost on matching windows, ranks the genuine underperformers with the reason attached, filters out the small-sample noise, and assembles the report or loads the dashboard. It stays grounded in your real numbers and reuses the same route each period, so the report shows up current instead of becoming another chore on your list. A restaurant gets its menu losers, an ecommerce brand gets its bleeding ad sets, an agency gets its client dashboard, and none of them spend the afternoon in a spreadsheet to get there.
Common questions
- How do I find which menu items or products are underperforming?
- Rank by contribution, not by revenue. A high-selling item with thin margin can earn less real money than a slow seller with a fat margin, so the number that matters is units sold times margin per unit, looked at over a stable window like 60 or 90 days. Then split the laggards into two piles: low-margin items that sell fine (a recipe or pricing fix) and low-volume items that barely move (a menu or catalog cut). In a Toast or Shopify export you'll need cost-of-goods next to sales to do this; revenue alone will mislead you. Physea can run this ranking across your POS data and hand back the real bottom-of-the-list with the reason for each.
- How do I tell if an ad set is actually losing money?
- Compare spend to the revenue it actually drove, not to clicks or impressions, and judge it against your break-even ROAS. Break-even ROAS is 1 divided by your profit margin: at a 40% margin you need roughly 2.5x return just to not lose money, so an ad set at 2.0x is bleeding even if it looks busy. Watch out for attribution lag and for platforms (TikTok, Meta) crediting themselves for sales that would have happened anyway. Give an ad set enough conversions to be more than noise before you cut it. Physea can reconcile platform spend against your real order revenue and flag the sets below your threshold.
- How do I turn a PDF or spreadsheet report into a live dashboard?
- Get the numbers out of the static file and into a place that updates. For a PDF, that means extracting the named metrics (sessions, conversions, spend, revenue) into structured rows, then pushing those into your dashboard tool on a schedule rather than retyping them each month. The trap is silent format drift: a client renames a column or adds a row and your copy-paste breaks without warning. Pulling from the source system instead of a PDF avoids that entirely when the connection exists. Physea can run the extract-and-load step across your reports so the dashboard stays current without manual entry.