Reports + P&L

A P&L your accountant can read. CSV on everything else.

Revenue, commissions, tips, sales tax, expenses, the profit and loss statement. Date-range chips for the quick views, a custom range picker for the rest, and CSV export from every list page so the data hands off cleanly.

Built for the owner doing the books without an accountant on staff. The headline is the P&L; the rest fills in around it.

01/

The P&L statement, styled to hand off.

The /reports/pl page reads Revenue → COGS → Gross margin → OpEx → Net income with a same-period comparison column. Inventory cost flows in automatically from auto-deduction on completion, so COGS isn't a number you estimate quarterly; it's the actual cost of the back-bar you used. Expenses (recurring and one-off) feed OpEx. The output is the shape an accountant expects.

  • Revenue lines.

    Service, retail, package, walk-in. Each one nets refunds within the period.

  • COGS from real deduction.

    Per-batch cost on inventory feeds COGS. The same audit row that drained the bottle on service completion attaches the cost to the day.

  • OpEx from recurring expenses.

    Rent, utilities, subscriptions, lease bumps with the optional annual % escalator. The daily cron posts the next month's expense from the template.

  • Net income with comparison.

    Same-period comparison column lights up the deltas: which lines moved, by how much.

02/

Revenue, commissions, tips, tax: each on its own tab.

Revenue tab sums service and retail revenue with refunds netted in proportionally. Commissions tab sums per-staff commission with sale refunds clawing back proportionally (a $50 refund on a $100 sale halves the commission). Tips tab sums per-staff payouts with the tip-refund axis netted in. Tax tab records collected tax per-business with a per-branch override and a per-item taxable flag; tax is tracked as a liability, not as revenue.

  • Revenue with proportional refund netting.

    Refunds that land after the report period still net honestly. The query reaches all-time, not just inside the window.

  • Commissions with sale-refund claw-back.

    Proportional claw-back, not full. Industry standard (Square, Toast, Mangomint all do it this way).

  • Tips per staff for the window.

    Picks up service tips and walk-in tips. Dashboard 30-day card mirrors the same math.

  • Sales tax per branch.

    Per-branch override of the business-wide rate. Per-service and per-inventory taxable flag. The Tax tab reads the collected liability so it's easy to file.

03/

Date ranges the way you actually think.

Preset chips inline on the page header: Last 7 days, Month-to-date, Last quarter, Year-to-date, This year. One click and the URL updates and the report re-runs. The custom-range picker is a single Popover with the same presets on the left and a two-month calendar on the right; pick the range, hit Apply. The active preset highlights so you know which window you're looking at.

04/

CSV everywhere. Filters preserved.

Every list page (Clients, Services, Inventory, Expenses, Sales, Appointments) has a CSV export button that respects every active filter in the URL params. The P&L statement itself exports to CSV. The shape lines up with the columns a bookkeeper's spreadsheet wants. No copy-paste, no manual cleanup.

  • Filters preserved.

    If the list page is filtered to a date range, a category, a staff member, the export ships the filtered set, not the whole table.

  • Inventory export carries Next expiry and Total batches.

    And Committed, between Current stock and Low-stock threshold. The same columns that drive the inline triage.

  • Sales export carries the refund netting.

    The row shows gross and net so the spreadsheet reconciles with the dashboard cards.

  • P&L export.

    Same line structure as the on-screen statement. Drops into an accountant's template without renaming columns.

05/

Recurring expenses that update themselves.

Set up rent, utilities, subscriptions, lease bumps as templates. Each template has an optional annual % escalator (the 3% lease bump). The daily cron posts the next month's expense and stamps the lastEscalatedAt + nextRunAt so the math is idempotent. The template editor uses plain-language copy (Posts the 1st of every month, increases 3% on the lease anniversary) so the next time you look at it you remember what it does.

06/

Receipt PDFs per appointment.

Every appointment has a downloadable receipt, A4, with service, tip, tax, and deposit or balance broken out. Salon staff hit it from the appointment page; clients hit it from the portal. Useful for HSA / FSA reimbursement, weddings, and tax-jurisdiction requirements where the salon needs to hand the client a paper trail.

Common questions

Honest answers, including the ones we don't love.

How do refunds that land after the report period affect numbers?

The query is all-time, not period-bounded. A refund landing in August on a July sale nets the July sale honestly in the July P&L when you re-run it. The shape protects against the late-refund-overstates-the-prior-month problem most reporting tools have.

Is the commission math configurable?

Yes. Commission can be set at the staff level (a default percentage), at the service level (a service override), or at the variant level (a variant override). Product commission can be set separately. The Reports → Commissions tab sums the live math; the Payroll page exports it.

Can I see revenue per branch?

Yes. The branch filter applies on every tab (Revenue, Commissions, Tips, Tax). Owner reports roll up across branches; per-branch managers see their branch only.

What about year-end?

Year-to-date and This year chips give you the running view. The custom-range picker gives you the calendar year, the fiscal year, or whatever window your accountant wants. CSV export on the P&L hands cleanly to your tax filing.

Does the P&L include tips?

No. Tips are passthrough to staff, not your revenue. The Tips tab carries per-staff payout totals for the report window and the Payroll page sums them for the export. The P&L stays clean.

Fourteen days. No card.

Try Flowesce on a real Saturday.

No card required, no auto-charge at the end. If Flowesce isn't for you, export everything in one click and walk.