WRAPTORHelp & Docs
The Wraptor handbook

Reports — your shop's numbers, read at a glance

Who it's for

Reports is for the owner or manager who wants to know how the shop is actually doing: Is revenue trending up? How many quotes turn into jobs? Which kind of work makes money? Where is cash quietly leaking out? It's the business-intelligence screen — built for the person making pricing, staffing, and follow-up decisions, not for the bench. By default it's Manager-only.

Where it fits

Reports sits at the back of the lifecycle, looking back across everything that already happened — quotes sent, jobs completed, payments collected, materials and labor consumed, leads that turned into work. Nearly all of it is a read of your live data, recalculated on every visit. Two controls write: Apply +N% to rate card on the Margin autopilot card raises your rates, and Log ad spend records what a channel cost you. See workflow-map.md for the lifecycle and personas.md for who works where.

Overview

Reports is a tab on the Money hub. Open Money → Reports. The address is /money?tab=reports; the older /reports and /billing?tab=reports links redirect here.

It's one scrollable dashboard:

  • A window picker — 3 mo, 6 mo, 12 mo, 24 mo. It sets the span for the revenue and jobs tiles and charts, the margin cards, the install-hours card, the P&L and the channel table. 12 mo is the default; the choice rides in the URL as &range=.
  • Export CSV — one row per month with revenue, jobs completed, material cost and gross margin, for the window you picked.
  • Four headline numbers — Total Revenue, Jobs Completed, Quote Conversion, and a count of Stale Quotes that need follow-up.
  • Profit Leak Detector — a ranked list of up to five things costing you money right now, each linking to where you'd fix it.
  • Revenue vs Material Cost and Jobs Completed Per Month — the two trend charts.
  • Quote Funnel, Avg Time Per Stage, Top Customers.
  • Margin autopilot — reads your realized margins and proposes a concrete rate-card increase you can apply in one click.
  • Margin by wrap type — which classes of work actually earn, with a suggested dollar bump per job.
  • Quoted vs actual install hours — whether you're charging for the labor you really spend.
  • Profit & loss — a cash-basis monthly income statement.
  • Where the work comes from — leads, jobs and collected revenue by channel, plus ROAS once you log ad spend.
  • Stale Quotes — every quote sent 14+ days ago with no answer, each row opening the quote.

Screens & navigation

One screen. Open Money from the sidebar, then the Reports tab. If Reports is the only Money permission a person holds, the hub opens on Reports for them.

The layout, top to bottom:

  1. Window row — the 3 mo / 6 mo / 12 mo / 24 mo chips on the left, Export CSV on the right.
  2. KPI row — four tiles: Total Revenue (12mo), Jobs Completed (12mo) (both retitled to whatever window you pick), Quote Conversion with "X/Y approved" underneath, and Stale Quotes (red with "Need follow-up" when any exist, green "All clear" when none).
  3. Profit Leak Detector — up to five cards in rank order, each with its rank number, a severity chip (CRITICAL / WARNING / WATCH), a dollar or days figure, and an action line. The whole card is the link. When nothing crosses a threshold you get a green card instead: "No obvious quote, cash, margin, labor, or stage leaks in the current data."
  4. Revenue vs Material Cost and Jobs Completed Per Month (side by side).
  5. Quote Funnel, Avg Time Per Stage, Top Customers (three columns).
  6. Margin autopilot.
  7. Margin by wrap type (12mo) — only when completed jobs exist in the window.
  8. Quoted vs actual install hours (12mo) — only when jobs have both quoted install hours and clocked install time.
  9. Profit & loss.
  10. Where the work comes from — with Log ad spend folded underneath it. The whole card stays hidden until a channel has activity in the window or you've logged spend.
  11. Stale Quotes — an amber panel, shown only when you have some.

Capabilities

See the headline health of the shop

  • Revenue and completed-job totals for the window, the quote conversion rate, and an at-a-glance stale-quote count.

Catch money leaks before they add up

  • The Profit Leak Detector ranks issues by what's at stake. The six it looks for: unpaid invoices (overdue balances rank first), paid jobs under 25% margin, quotes aging past 14 days, jobs whose materials ate 35% or more of collected revenue, jobs with revenue but no billable time logged, and active jobs sitting 7+ days in one stage.
  • Each card carries its own action: Review open invoices (goes to the Money hub — switch to Invoices), Open job profitability, Review stale quotes (Money → Quotes), Check waste and pricing, Add actual labor, Open job board.

Raise your rates when the data says so (Margin autopilot)

  • The Margin autopilot card reads the realized margins of your completed jobs across the window you picked and compares the median against a 40% target. Under target, it proposes a concrete uplift — the exact new number for each active labor rate and material price on your rate card — plus an annualized estimate of what the bump is worth.
  • Apply +N% to rate card applies it. The apply recomputes server-side, so nothing the browser sends ever touches a rate row, and it needs the Settings permission (without it the button is disabled and the card says "Applying rate changes needs the settings permission."). Only new quotes price from the new card; nothing already quoted changes. The toast reads "Rates raised N%".
  • One apply never moves the card by more than 15%. Afterwards the card goes into cooldown: it names the date it applied and counts down — "Re-evaluates after 3 newly completed jobs" — so you can't compound the same bump twice.
  • It needs at least 5 completed jobs with payment data in the window before it will suggest anything; below that it says how many you have. When your median already meets the target it simply reports no rate change is suggested.

See which work earns and which doesn't

  • Margin by wrap type groups completed jobs into Full wraps, ¾ wraps, Partial wraps, Color change, Fleet and Lettering, with a colored margin bar per class. A job with no type recorded counts as Full wraps.
  • Where a class runs meaningfully under 40%, the card names the move — "Quote +$150/job to reach 40% (about $4,500/yr)" — and adds those bumps into one headline: "Autopilot: the price bumps below are worth about $X/yr at your current volume." Where the gap is too big for a bump it says the class's rates need review instead. It speaks up at 3+ jobs per class with recorded material usage.

Check your labor estimates against the clock

  • Quoted vs actual install hours compares the install-labor hours on each completed job's quote against the installation time actually clocked, as medians per class: "quoted 14h → clocked 17h" with a badge reading +N% over quote, −N% under quote, or on target (within 10% either way). Over quote means installs cost more labor than you charged for.

Read a monthly P&L

  • Profit & loss is cash-basis: payments collected minus material, labor and overhead spend, month by month, newest first, with a Total row and a margin column. Labor combines logged billable hours and any labor expenses; overhead is equipment plus your other recorded expenses.
  • Every cost column here reads Money → Expenses, not your stock. So the P&L's Materials column is what you recorded buying that month, while the margin cards and the Revenue vs Material Cost chart price the film actually deducted on jobs. The two won't tie out, and neither is wrong.

Know where the work comes from

  • Where the work comes from splits leads, jobs and collected revenue by channel — Google, Social, Bing, Email, Referral, Repeat customer, Walk-in, Website (direct), Directory, Unattributed — with a revenue bar per row and a blended total. A tagged link whose source it doesn't recognize gets its own row under that name rather than being dropped into Unattributed.
  • Log ad spend adds what you spent: pick a Channel (Google, Social, Bing, Email, Directory, Other), a Month and an Amount, then Add. Logged spend fills in the Spend and ROAS columns; the trash icon removes an entry.

Spot trends

  • Watch revenue and material cost move together month over month; see whether throughput is rising or falling.

Understand your pipeline

  • Quote Funnel shows Draft → Sent → Approved → Converted to Job. Avg Time Per Stage shows where jobs bog down, using your own stage names and colors.

Know your best customers

  • A ranked top-customers list by collected revenue, with job counts.

Chase the right quotes

  • The Stale Quotes panel lists every quote sent 14+ days ago with no answer — number, customer, total, sent date — and each row opens the quote.

Step-by-step tasks

  1. Do your weekly money review

    1. Open Money → Reports.
    2. Read the four KPI tiles for the big picture.
    3. Work the Profit Leak Detector in rank order — start at card 1, the red CRITICAL one, and click through to fix it.
  2. Collect overdue cash

    1. In the Profit Leak Detector, find the unpaid-invoices card (it ranks first whenever anything is overdue).
    2. Click it to open the Money hub, switch to Invoices, and follow up on the open balances.
  3. Follow up on aging quotes

    1. Check the Stale Quotes tile in the KPI row, or scroll to the amber Stale Quotes panel.
    2. Click a row to open the quote, then resend it or call.
  4. Find your thin-margin work

    1. Look for the below-target-margin card in the detector (paid jobs under 25% after materials and labor).
    2. Click it to open the job, then read Job P&L on the job's Invoices tab.
    3. Compare against Margin by wrap type to see whether it's one job or the whole class.
  5. Raise your rate card

    1. Pick the window you trust — 12 mo for most shops, 6 mo if your pricing changed recently.
    2. Read the Margin autopilot card and check the per-row before/after numbers it lists.
    3. Click Apply +N% to rate card. Quote something afterwards to see the new rates in place.
  6. Work out what your marketing is buying

    1. Scroll to Where the work comes from.
    2. Click Log ad spend, add each channel's monthly spend, and Add.
    3. Read the ROAS column: collected revenue divided by the spend you logged.
  7. Hand your accountant the numbers

    1. Pick the window.
    2. Click Export CSV for month-by-month revenue, jobs, material cost and gross margin.
    3. For the fuller picture, read Profit & loss on screen — it isn't in the CSV.

Settings & permissions

Who can see it Reports is gated by the Reports permission, which by default belongs to the Manager role only. Designer, Production and Installer don't hold it, so they never see the Reports tab or its data. Grant it to another role — a bookkeeper, say — at Shop → Team → Roles & Permissions.

Who can act on it Applying a rate change from Margin autopilot also needs the Settings permission — the same permission that guards Money → Quote Settings, where those rates live. Logging ad spend needs only Reports.

Per-job numbers are a separate permission The Job P&L card on a job's Invoices tab — revenue, material cost, labor cost, margin — rides the Billing & Quotes permission, not Reports. Designers hold it by default; Production and Installer don't, so the job's Quotes and Invoices tabs never appear for them and the numbers never load.

Plans and credits Reports has no plan gate and uses no AI credits. It's open on every tier and during the 7-day free trial, and nothing on the Reports tab is capped. See Plans.

Tips & common pitfalls

  • Revenue means money collected, not money invoiced. Every revenue figure sums actual payments received, minus any refunds. A big invoice that hasn't been paid shows up as an unpaid-invoices leak, not as revenue — that's by design. The figure is the full amount the customer paid: processing (3.2% + 30¢ per card payment · 1% max $5 per bank payment) is deducted before payout, so a month reads higher here than what lands in your bank.
  • The window only moves some cards. The chips retitle and re-window the KPI revenue and jobs tiles, both trend charts, Margin autopilot, Margin by wrap type, Quoted vs actual install hours, Profit & loss and Where the work comes from. Quote Conversion, Quote Funnel, Avg Time Per Stage and Top Customers are all-time regardless of the window. The Profit Leak Detector has its own spans: jobs created or completed in the last 120 days, every open invoice however old, and every quote sent 14+ days ago.
  • The funnel drops declined and expired quotes. Its bars are cumulative — Draft counts quotes sitting in draft, sent or approved; Sent counts sent plus approved — and quotes marked declined or expired leave the funnel entirely. They still count against Quote Conversion, which divides approvals by every quote that ever left draft.
  • Top Customers can under-count. The ranking follows customers through their vehicles. Revenue on a job created against a customer with no vehicle won't appear here, though it still counts in Total Revenue.
  • Stage timing needs history. Avg Time Per Stage and stuck-job detection rely on jobs actually moving through stages over time. A new shop sees "Not enough data yet" until jobs accumulate some history.
  • Track labor to get true margins. Jobs with revenue but no logged billable time show up as a missing-labor leak, and their margins look better than reality. Log time on jobs for the profitability numbers to mean something — the same data feeds Quoted vs actual install hours and the P&L's labor line.
  • Material costs come from inventory usage. The margin cards, the Revenue vs Material Cost chart and the CSV price materials at the item's cost per unit against the quantity deducted on the job. Jobs that never deducted stock read as pure profit. The Profit & loss table is the exception — its cost columns read your recorded expenses instead. See Inventory.
  • Attribution is go-forward. Channel data starts from July 2026 and can't be backfilled, so older jobs sit in Unattributed. ROAS only appears for channels you've logged spend against, and a channel with spend but no leads still shows up so wasted money is visible.
  • An empty Profit Leak Detector is good news. The green "no obvious leaks" card means nothing crossed the thresholds — not that the feature is off.
  • Export CSV is the trend table, not the P&L. It carries month, revenue, jobs completed, material cost and gross margin — and that gross margin is revenue minus material cost only, with no labor in it. Labor, overhead, net profit, attribution and the margin cards stay on screen.
  • Jobs — where stage timing, completed-job counts, and the per-job Job P&L card live.
  • Quotes — the conversion funnel, stale-quote follow-ups, and the rates Margin autopilot rewrites.
  • Invoicing & billing — the rest of the Money hub; payments drive revenue, unpaid invoices drive the top leak, and Expenses feeds the P&L.
  • Inventory — material usage feeds the cost line, the margin cards and the material-heavy leak.
  • Customers — the top-customers ranking.
  • Marketing — the leads that feed "Where the work comes from".
  • Dashboard overview — the quick daily home screen; Reports is the deeper look back.
  • Team — grant the Reports permission to other roles here.
  • Plans — tiers and the 7-day free trial.
  • Workflow map · Personas

A print recipe can link its substrate to inventory. Confirming the material-use stage records its planned consumption in InventoryUsage, so job material cost and margin include the print stock. The job P&L also shows the latest approved specification’s estimated substrate cost beside recorded usage and the difference. Both use current inventory unit costs; the comparison excludes ink, finishing and labor. Missing links produce a partial estimate warning. The actual substrate figure is part of Material Cost, not an extra charge.