Loading…

Loading…
Chat with Kora™
Online
Powered by Kora™ — responses may not be 100% accurate
Billing & Job Costing
The variance report answers the question every profitable shop owner asks: "Did we make what we thought we'd make?" This guide walks through how to read the Estimated vs. Actual comparison, why variances happen, how to update your rate tables to fix systematic gaps, and how to use costing history to quote future jobs more accurately.
Estimated Margin
42%
Before the job ran
Actual Margin
39%
After logging actuals
Cost Variance
+$13.65
Over estimate
Revenue
$864.00
144 shirts @ $6.00
Example: 144-shirt, 6-color job on dark garments (Gildan 5000B) — used throughout this guide.
Jobs → [Job] → Costs tab → Comparison table
Open any job as an Admin, click the Costs tab, then scroll past the four summary cards to the Estimated vs. Actual comparison table. Each row is a cost category. The three columns you care about:
What the engine calculated before the job ran, based on your rate cards.
What you logged via Add Actual Cost entries after the job was complete.
Actual minus Estimated. Green arrow (↓) = under budget. Red arrow (↑) = over budget.
If the Actual column shows all zeros, no one has logged actual costs yet. Go to Add Actual Cost and enter at least blanks (from your supplier invoice) and labor (from press sheets) before drawing conclusions.
Gildan 5000B — front chest + back full-width, CMYK + white underbase
Here's what the comparison table looks like after logging actual costs for a typical 6-color dark garment run:
Blanks
144 shirts × $2.17 est. / $2.275 actual
$312.00
$327.60
Screens
6 screens × $12.00/screen
$72.00
$72.00
Inks
6 colors — white underbase used more than expected
$18.00
$24.50
Labor
Crew hit their stride — faster than 15 sec/shirt estimate
$66.00
$59.40
Overhead
10% of direct costs — slightly higher due to ink overage
$46.80
$48.35
Shipping
Carrier rate was lower than flat estimate
$35.00
$31.20
Blanks +$15.60 over: Your rate card used $2.17/shirt, but your supplier charged $2.275 on this order. Classic — Gildan prices drift with cotton markets. Update your blank rate to $2.28 after checking your last 3 invoices.
Inks +$6.50 over: White underbase on dark garments is notoriously ink-hungry. A 6-color job with white underbase actually behaves more like an 8-coverage job. Consider adding a separate "Dark Garment Surcharge" cost category or bumping your per-color ink rate when the job is flagged as dark garments.
Labor −$6.60 under: Your crew averaged 12 sec/shirt instead of 15 sec. Good news — your labor rate is slightly conservative, which is a safe position for quoting. No change needed.
Shipping −$3.80 under: Flat shipping estimates are notoriously inaccurate. Consider switching to actual carrier rate lookups or logging real shipping costs more consistently.
The total variance here is +$13.65 (over budget), which pulled actual margin from 42% down to 39%. Still profitable — but the 3-point drop compounds fast when you're running 20 jobs a month. Fixing blanks + inks alone recovers most of it.
One job's variance is noise. Recurring variances are a rate card problem.
A single job being slightly over or under isn't something to act on. But when the same category runs over on 5 of your last 8 jobs, your rate card is wrong — not your crew.
Blanks consistently over
What it means: Your per-unit blank cost is too low.
Action: Pull the last 5 supplier invoices. Average the per-shirt cost by brand/size tier. Update the rate card.
Inks over on dark garment jobs
What it means: Ink rates don't account for white underbase coverage.
Action: Create a separate cost category 'Inks — Dark Garment' with a higher per-color rate (~$4.50 vs. $3.00 standard).
Labor over on rush jobs
What it means: Rush setups and overtime inflate actual press time.
Action: Check your Rush Multiplier in Settings → Pricing. Bump it from 1.5× to 1.75× if overtime is common on rush runs.
Screens always exact
What it means: Screen rate is probably correct. Nothing to change.
Action: Screen costs are predictable — emulsion + mesh + recovery time is stable. This is your anchor category.
Run 3 months of completed jobs through your head. If a category runs over more than 60% of the time, that's a rate card problem. Under 40% of the time? Operational variation — check if it correlates with a specific press operator, garment brand, or print complexity.
Settings → Costing — do this quarterly, or any time supplier prices change.
Rate cards go stale. Cotton prices shift. You hired faster press operators. Your carrier raised their dimensional weight rates. Here's what to update and when:
Suggested rate updates from the example job
Blanks (Gildan 5000B)
3-invoice average shows $2.275 — round up to buffer for freight.
Inks — Dark Garment
White underbase adds ~40% coverage vs. light garment jobs.
Shipping (flat)
Actual carrier avg over last 12 orders was $29.40 — lower flat rate.
Updating rates only affects future estimates — it does not retroactively change the Estimated column on completed jobs. That's intentional: your historical costing data stays accurate as a benchmark.
The goal: estimates so tight that variances are under 5%.
Once you've logged actual costs on 10–15 jobs, your costing history becomes your most valuable quoting tool. Here's how to use it:
Pattern-match to similar past jobs
When quoting a 6-color dark garment order, open a completed 6-color dark garment job in your history. Check the Actual Margin on the Costs tab. That's your real-world benchmark — not your estimate.
Build in a variance buffer on complex jobs
If 6-color+ jobs consistently run 5–8% over estimate, add a "Complexity Surcharge" cost category at a flat $25–50. It shows on the Costs tab as a line item and reminds sales that these jobs carry more risk.
Set category-level variance thresholds
Review each category quarterly: if Actual/Estimated ratio is > 1.05 consistently (meaning you're 5%+ over), your rate is wrong. If it's < 0.95 consistently (you're always under), you're padding too much and potentially overcharging customers.
Log costs the same day
The shops that get the most value from variance reporting are the ones that log blank invoices the day they arrive and press time at the end of each press run. Waiting until month-end means guessing — which defeats the purpose.
Target actual margins within ±3% of estimated. If you're consistently hitting 5%+ variance in either direction, your rate card needs work — not your sales team. Good pricing math is the foundation of everything else.
The most common source of margin leakage in screen printing shops.
Dark garments are the #1 source of underestimated costs in screen printing. Here's a quick-reference checklist for pricing them accurately:
Add 1 extra color count for white underbase — a 5-color design on dark is priced as 6
Use a separate Ink rate category for dark garments ($3.50–$5.00/color vs. $2.50–$3.50 light)
Add a flash cure pass to labor — every white underbase requires a flash between passes
Account for longer setup time — registration is harder on dark fabric
Don't forget spoilage — dark blanks show print defects more visibly, budget 2–3% shrink
Check if your pricing matrix has a dark garment tier — if not, add a separate matrix
A well-configured dark garment rate card should produce estimates within 5% of actuals. Most shops that complain about thin margins on dark jobs haven't updated their ink rate or aren't counting the underbase as a separate color for costing purposes.
30 minutes every 3 months keeps your estimates accurate year-round.
Pull last 3 supplier invoices for each blank brand — update per-unit rate to the actual average
Check your screen emulsion + mesh costs — recalculate per-screen rate
Review press operator timesheets for the quarter — adjust labor rate if hourly cost changed
Check carrier invoices — update flat shipping estimate or switch to actual rate lookup
Compare Target Margin vs. Actual Margin across the quarter in Analytics → Jobs by Margin
If any category variance > 8% on average, update that rate before running next month's estimates
Review Rush Multiplier — if rush jobs are regularly over on labor, bump the multiplier
Add any new cost categories that came up this quarter (e.g., heat transfers, specialty inks)
Schedule this review for the first week of every quarter — same day you review your P&L. Costing accuracy and profitability are directly connected. Shops that review rates quarterly report 10–15% better margin predictability than shops that set-and-forget.
What's a healthy variance range?
±5% per category is excellent. ±10% is acceptable. Anything over 15% consistently means your rate is materially wrong. Isolated spikes (a supplier raised prices mid-quarter, a job required extra reprints) are normal — it's the pattern that matters.
My crew is faster than my labor estimate. Should I lower the rate?
Only if it's consistent. Fast crews are a competitive advantage — you can use the margin buffer to absorb occasional reprints or give customers a price break on large orders. Don't cut your rate card just because one press operator is unusually efficient.
Blanks are always over because prices change constantly. What should I do?
Add a 3–5% buffer to your blank rate. For example, if Gildan 5000 currently invoices at $2.17, set your rate to $2.28. The buffer absorbs small price fluctuations without requiring a rate card update every month.
Can I see variance across all jobs at once, not just per job?
Not yet as a dedicated report, but you can use Analytics → Jobs filtered by date range to compare estimated vs. actual margin trends. A dedicated variance summary dashboard is on the roadmap.
Who can see the Costs tab?
Admin and Manager roles only. Employees and Contractors cannot see costing data or margin information — this is enforced at the API level, not just the UI.
Our support team understands screen printing — not just software. We can help you think through your rate card setup.
Submit a Support Ticket