Skip to content
Mohan Ops

Case studiesFurniture retailClient system

Canvas + Loft

Every product's real profit, after ads, freight and overhead

Canvas + Loft sold well but could not say which products made money. Brain pulls Shopify sales, Meta and Google ad spend and monthly overhead into one dashboard, and shows the working behind every number.

Client
Canvas + Loft
Product
Brain
Industry
Furniture retail

3

data sources behind every profit figure

0

black-box numbers: every formula is published in the app

2026

full year of history backfilled

Total profit, ad spend and net profit per day for any date range, with the products behind them.

The problem

Plenty of sales. No idea which ones were worth making.

Sales lived in Shopify, ad spend lived in Meta and Google, and freight and overhead lived in someone's head. Working out profit per product meant a spreadsheet nobody fully trusted, rebuilt by hand every month.

  • Profit per product was a monthly guess
  • Ad spend was never tied back to the product it promoted
  • The owners asked for no black boxes, and the spreadsheet was one

How it fits together

  • Shopify orders
  • Meta ad spend
  • Google Ads
  • Monthly overhead
The system Brain
  • Profit per product
  • Meta budget suggestions
  • Unattributed spend, explained
Reads from the systems the store already used. Nothing had to move.

What it does

01

Net profit per product

Sales, cost of goods, freight, ad spend and a share of overhead, per product, per day. Toggle between total and advertised-only views.

  • Daily sync
  • Profit basis toggle
02

Ad spend attribution

Every ad is mapped to the product it promotes. Spend that cannot be tied to a product is shown with a plain-language reason instead of being hidden.

  • Meta
  • Google Ads
  • 1-to-1 mapping
03

Methodology page

Every formula, written out in the app. Monthly cost settings are stored as snapshots, so changing this month's overhead never rewrites last quarter.

  • No black boxes
  • Effective-dated

Inside Brain

Trend and coverage

Profit against ad spend over time, profit share by product, and how much of the spend is tied to a product.

Methodology

The formula behind every number, written in plain English inside the app.

Monthly parameters

Overhead and margin are set per month and stored as a snapshot, so a change today never rewrites last quarter.

Real screens from the live system. Names, figures and personal details are blurred.

The impact

A profit number the owners can argue with, and trust.

Measured items come from the system itself. Projected items are our estimate, with the assumption stated, until the client confirms a figure.

What changes for the owners once profit is one number instead of three exports.

Time and sourcesper month
Hours on the profit report 8 0.5 Sources to reconcile 3 1 Days until profit is visible 30 1
BeforeWith Brain
Owner hours saved, cumulativehours
90 67.5 45 22.5 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

Assumes the old spreadsheet took about two hours a week to update and reconcile.

Projected figures. They are our estimate for a business of this size, with the assumptions written under each number below. We replace them with measured results as clients confirm them.

Measured

3 → 1

sources of truth for profit

Shopify, Meta and Google Ads now land in one place, on a daily sync, instead of three exports.

Projected

~8 hrs

saved per month on the profit report

Assumes the old spreadsheet took about two hours a week to update and reconcile. Brain does it on a schedule.

Projected

~5%

of ad budget redirected from products that lose money

Assumes one in twenty advertised products shows a negative net profit once freight and overhead are included, which the dashboard now makes visible.

Under the hood

  • Next.js
  • TypeScript
  • PostgreSQL
  • Prisma
  • Shopify Orders API
  • Meta Marketing API
  • Google Ads API
  • Railway
Next case study Every order gets a follow-up, assigned to the person who sold it Canvas + Loft · Connect