Machino

Finance

Machino Finance

Enter your access password.

Machino Finance

Sign in to load the numbers. Access is checked on the server, per account.

Where the money went

Profit & loss

LineRM% of revvs prev periodvs budgetTrend

Exceptions

Revenue & net earnings by month

Bars = revenue by channel (dimmed outside the selected period) · line = net earnings · markers = Malaysian retail calendar.

Reconciliation & basis

Every load, each source is checked against an independent one. Green = agrees.

Revenue by channel, monthly

Shopify MY split into Online store and Point of sale. Months outside the selected period are dimmed.

Channel contribution

Allocation rules (stated, not hidden): discounts/returns and inventory cost by revenue share (blended cost ratio — per-channel COGS needs the SKU cost table); courier to the shipped channels by revenue share; MDR to all channels by revenue share (POS terminals too); sales commission → TikTok Shop; Meta/TikTok Ads → Online (+SG by share), GMV Max → TikTok Shop; KOL/booked marketing and consignment costs stay unallocated. Audit flag: at published TikTok Shop MY rates (~14–19 % + RM0.54/order) platform fees should be far larger than the booked commission line — check whether TikTok fees are netted from Sales.

IOI City Mall — 4-wall store P&L

Online share of Shopify MY

Online store revenue ÷ total MY revenue, by month

Point of sale by location

Channel detail

ChannelRevenue% of totalOrdersAOVvs prev period

📊 Analysis

Store split source: the “Daily Sales” Apps Script tab (shopify my raw data — ShopifyQL parity, refreshed ~6am daily, restates the last 10 days). POS folds to IOI City Mall · SS18 store (incl. AS IS SS18) · Pop-ups & events ([Temp]/ISETAN/Bangsar Village) · Other POS. Draft orders, Shopify Mobile and return-app channels count as Online. Store rent, retail wages and retail commission are separate QuickBooks lines, so the 4-wall P&L can be fed exactly (no allocation) once the export lands. Wellness & other income lines arrive from QuickBooks when each month closes.

Cost of sales by month

Accountant’s COS lines; smaller lines fold into “Other”

Gross margin by month

Gross profit ÷ net revenue — moves with mix, discounting and landed cost

Cost of sales detail

LineRM% of revvs prev periodvs budgetTrend

📊 Analysis

Waiting on the cost table: per-style landed costs (sku_costs) unlock gross margin per product and per channel. Until then COGS is the accountant’s blended “inventory charged out”. Shopify’s cost field is empty on every variant, so this can’t be automated from Shopify. Sales tax (5–10 % by HS code) is embedded in landed cost — never a separate line for a retailer.

Spend by platform, monthly

Ad platforms + booked marketing lines (KOL, events, agency…)

MER by month vs break-even

Total revenue ÷ total marketing — blended, immune to attribution over-counting. Break-even MER = 1 ÷ variable margin %.

Platform detail

PlatformSpend% of spend% of revvs prev periodTrend

📊 Analysis

Two sources, one truth check: platforms self-report spend live; the accountant books “Marketing & Advertising” when invoices land. The reconciliation strip compares the two each closed month — a persistent gap means untracked spend (agency fees, boosts, barter KOLs). Paid media is treated as a variable cost; KOL/agency/events are fixed marketing (inside opex).

Operating expenses by month

Three display groups — Marketing & events, Software & IT, and Others (payroll, rent, admin…). Every QuickBooks code still imports individually; the detail stays in the ledger.

Group detail

GroupRM% of rev% of opexvs prev periodvs budgetTrend

📊 Analysis

Malaysia notes: employer EPF/SOCSO/EIS/HRDF add ≈ 15.5 % on top of gross wages — HR & payroll here is the fully-loaded figure from the ledger. Service tax on commercial rent (8 %, MSME 6 % from Jan 2026) sits inside Rent & premises. Income tax accrual should follow the SME tiers (15 % first RM150k · 17 % to RM600k · 24 % above) on YTD profit, not a flat rate — shown on the Overview P&L.
Privacy: files dropped here are parsed in this browser and saved only to this computer (localStorage). Nothing is uploaded anywhere.

Imported months

Green = real QuickBooks figures loaded (closed months). Grey = still sample data (provisional).

Month-end close checklist

How each QuickBooks account maps

By account code first, by name when a line has no code. Unrecognised lines land in Opex → “Other” and are flagged above.
500-* → Income (Wellness separated) · 600-* → Cost of sales lines · 700-* → Other income · 900-0028 / 900-0074 → Marketing (booked) · 900-* → Opex groups · Loyalty / Depreciation / Gift card / HP interest → Below the line · 910-* → Income tax
Try it: sample-quickbooks-export.csv (invented numbers) ships next to this file — drag it in to see the flow.