Putting It Together — Modeling Print in Software (PF360 lens)

By Pritesh Yadav 23 min read

Every earlier chapter taught you a piece of the print craft: paper, color, presses, finishing, files, shipping. This chapter is the synthesis. We take all of that physical reality and ask one question a software builder must answer: what does the data model need to look like so the screen tells the truth about the factory?

Before we go further, two plain definitions you'll see throughout:

  • Data model — the shape of the information your software stores: which fields exist, what type they are, and how records connect (an order has many line items, a line item has one spec, and so on).
  • Spec (short for specification) — the full description of exactly what is being printed: size, paper, colors, finishing, quantity. In print, the spec is the heart of the order.

The core insight: a print job is a recipe, not a product row

Normal e-commerce models a SKU — a Stock Keeping Unit, which is one fixed sellable thing with a known price sitting on a shelf. A t-shirt comes in S/M/L; you pick one and the price is looked up from a table. That model works because the variants are finite and the price already exists.

Print breaks this. A print product is a configured manufacturing spec — the customer assembles a recipe (size × paper × ink-sides × quantity × finishing), and the price, weight, file requirements, and turnaround all change with the recipe. There is no shelf and no pre-known price; the software computes everything from the configuration.

Analogy: A normal SKU is a candy bar at a checkout — pick it up, scan the barcode, done. A print job is a coffee order at a busy café: "large, oat milk, two shots, extra hot, no foam." The price, the cup size, and the prep time all depend on the combination. You don't look up "large oat two-shot" on a shelf — the barista builds it from rules. Your software is the barista.

Three specific things make print software hard, and generic Shopify-style models get all three wrong:

  1. Price is computed, not looked up. It comes from many interacting attributes, not a single row.
  2. There is a mandatory human gate mid-order: proof approval. The order pauses, waits on the customer, and legally cannot proceed without a recorded sign-off.
  3. The order produces a physical thing through a multi-stage pipeline that can split (partial shipment) and merge with other customers' orders (gang run). A single "shipped: yes/no" flag is not enough.

Where this category of software lives

Two industry terms you'll meet talking to shops:

  • Print MIS / Print ERP — Management Information System (or Enterprise Resource Planning). The back-office software a shop runs: estimating/quoting, order entry, the job ticket (the printable work order that follows a job through the floor), scheduling, inventory of paper and ink, job costing, shipping, invoicing.
  • Web-to-print (W2P) — the customer-facing online storefront that lets buyers configure and order, then feeds those orders into the MIS.

The industry's stated ideal is "ecommerce orders become MIS job tickets automatically — zero re-entry, zero errors." A platform like PF360 is essentially W2P plus a light MIS: it must both sell the configurable product and track it through production.

Key takeaway: Model a print product as a recipe — attributes plus priced options plus compatibility rules plus a pricing strategy — never as a fixed-variant SKU with a looked-up price.

The product spec data model — what print actually needs to capture

The spec must be structured, machine-readable data (the industry literally passes it around as JSON, XML, CSV, or a JDF job ticket — Job Definition Format, the print industry's standard digital work-order file). Here is what every spec carries.

1. Size and dimensions

Capture width, height, and units. Two sizes can matter at once:

  • Flat size — the size of the unfolded sheet (a tri-fold brochure is flat 11×8.5").
  • Finished size — the size after folding/trimming (that brochure finishes at ~3.67×8.5").

For wide-format (large prints like banners and posters), size is continuous — any width × height — not a picklist. That single fact forces a different pricing engine (square-foot pricing, below). Also store the bleed size = trim size + 0.125" on each edge (defined fully in the file section).

2. Stock / substrate (the paper or material)

Substrate just means the material you print on. Its weight is expressed in three competing systems, and this is a classic data-model trap.

SystemWhat it measuresWhy it's tricky
GSM (grams per square meter)Weight of a 1m² sheetInternational, unambiguous — store this canonically
lb (US pounds)Weight of a ream at a category's basis sizeAmbiguous — "lb bond/text" and "lb cover" use different reference sheets, so the scales don't match
pt / point / caliperThickness in thousandths of an inchUsed for cardstock and business cards; measures thickness, not weight

Lock in these conversions and reference equivalents:

US weightGSMTypical use
20 lb bond75 GSMCopy paper
24 lb bond90 GSMLetterhead
80 lb text118 GSMFlyers
100 lb text148 GSMBrochures, booklet interiors
80 lb cover216 GSM (≈10–11 pt)Light cardstock
100 lb cover270 GSMPostcards, covers
110 lb cover300 GSM (≈14 pt)Premium cards
130 lb cover350 GSM (≈16 pt)Heavy premium cards

Conversion factors to GSM: bond ×3.76, text ×1.48, cover ×2.70. Business cards are commonly 14 pt and 16 pt; the USPS postcard minimum is 7 pt.

Common mistake: Storing only the "lb" number. "100 lb" is meaningless without the category — 100 lb text (148 GSM) is a thin flyer page, while 100 lb cover (270 GSM) is stiff cardstock. Store GSM canonically and show friendly lb/pt equivalents in the UI.
Common mistake: Equating weight with thickness. GSM measures weight, not feel. A tightly-pressed (calendered) coated 200 GSM sheet can be thinner than a fluffy uncoated 200 GSM sheet. Don't let your UI imply "heavier = thicker."

Two more stock fields worth modeling for heavier work:

  • Grain direction (long grain / short grain) — the orientation of the paper fibers. Folding against the grain on heavy stock cracks it, so the job ticket should allow specifying grain for thick stocks.
  • Coating — gloss / matte / uncoated. This affects which inks and finishing options are compatible (foil and some coatings clash).

3. Color / sides — the 4/4 vocabulary (a trust signal)

Printers describe ink coverage as front/back ink counts. The number before the slash is the front; the number after is the back.

  • CMYK = the 4 process colors: Cyan, Magenta, Yellow, Black (the "K"). So "4" almost always means full color.
  • 4/4 ("four over four") = full color both sides.
  • 4/0 = full color front, blank back.
  • 4/1 = full color front, single ink (usually black) back.
  • 1/1 = black both sides; 1/0 = black front only.

Beyond CMYK there are PMS / Pantone spot colors — exact branded inks mixed to a recipe (a logo red that must be identical every time). Each spot color is an extra ink, an extra plate, and extra cost.

Common mistake: Modeling "sides" as a boolean (double-sided yes/no). The number of inks per side changes plates and press passes and therefore price. Model sides as a priced choice using the 4/4 vocabulary, with front and back independent.

4. Finishing options — priced choices with compatibility rules

Finishing (also called bindery or post-press) is everything done after the ink is on the sheet. These are the high-margin add-ons, and each one is a selectable option that can add cost, production time, and weight, and may be incompatible with certain stocks. The real terms a shop expects:

TermPlain meaning
LaminationPlastic film over the sheet — gloss / matte / soft-touch; adds durability and water resistance
UV coating / spot UVClear hard coat cured under UV light; "spot" UV = gloss on chosen areas only
Aqueous (AQ) coatingWater-based protective coat
Foil stampingMetallic foil pressed on with a heated die; needs a one-time die; clashes with some coatings
Emboss / debossRaised / recessed impression
Die cuttingCutting a custom shape with a die
ScoringPressing a crease so a fold is clean — mandatory on heavy stock before folding
FoldingHalf / tri-fold / z-fold / gate
PerforationA tear line
Rounded corners / drillingCorner rounding; hole punching

For multi-page products, binding is the finishing choice that holds pages together:

BindingHow it worksBest for
Saddle stitchFolded sheets stapled through the spine foldBooklets up to ~64–80 pages; page count must be a multiple of 4
Perfect bindingPages glued at a flat spine (PUR/EVA glue) with a wraparound coverThick books, catalogs
Spiral / Wire-O / coilMetal or plastic coil through punched holesNotebooks, manuals that lie flat
Case boundHardcoverPremium books
Best practice: Make finishing options rule-based, not just priced. The configurator must block impossible combinations — foil on a stock that can't take foil, folding heavy stock without a score, an odd page count for saddle stitch — rather than quietly accepting an order that can never be made. Prevent it, don't just price it.

5. Page count (multi-page products)

Booklets and books need a page-count field, and for saddle stitch it must be a multiple of 4 (each folded sheet = 4 pages). Page count drives the binding choice, the imposition (how pages are arranged on the press sheet — defined below), and the price. Validate it.

Key takeaway: A spec = attributes (size, stock, sides, page count) + a set of priced options (finishing) + compatibility rules. Every option should carry a price delta, an optional time delta, an optional weight delta, and any one-time die/setup fee.

Pricing models — where print diverges hard from e-commerce

1. Quantity price breaks (tiered pricing)

This is the default for short-run work. The per-unit price falls as quantity rises because the setup cost (plates, press make-ready, prepress labor) is fixed and gets spread across the run. At low quantity, setup dominates the total; at high quantity, per-piece material cost dominates.

Per-unit price as quantity rises (setup amortized)

$/unit
  |*
  | *
  |   *
  |      *  steep drop in the low-mid hundreds (25 -> 250)
  |         * * *
  |              * * * * * *  curve flattens after ~1000
  +------------------------------------------- quantity
   25   100   250   500   1000   2500   5000

Breaks sit at thresholds the shop sets, e.g. 100 / 250 / 500 / 1000 / 5000. The steepest savings are in the low-to-mid hundreds; after 1000 the curve flattens. Model it as price = setup_fee + (per_unit × qty) with a tier table.

Example: Because tiers are stepped, ordering more can sometimes cost less in total if it crosses into a much cheaper tier. If 500 cards land just below a big 1000-count break, the total for 1000 might be only a little higher — or even lower per the shop's tiers. A good UI surfaces a nudge: "Add 120 more to reach the 1000 price break and save."

Distinguish two flavors of quantity discount in your engine — they produce different totals, so pick one and be explicit:

TypeHow it prices
Volume pricingOnce you hit a tier, all units are priced at that tier's rate
Tiered / graduated pricingEach tier's units are priced at that tier's own rate (first 100 at rate A, next 400 at rate B…)

2. Square-foot pricing (wide / large format)

Banners, signs, and posters are priced by area: price = width_ft × height_ft × rate_per_sqft. Real-world rates run from about $1.99 to $8.99 per square foot; ~$8/sq ft is a common standard for digitally-printed banners, budget vinyl can drop to $3–$5/sq ft. The material drives the rate (vinyl is dearer than paper or fabric).

Example: A 6' × 3' banner = 18 sq ft. At $8/sq ft that's ~$144 (material + print + labor). A 36" × 80" roll-up = 3' × 6.67' ≈ 20 sq ft; at ~$8 that's ~$160 before add-ons.

Two refinements: rates are often degressive (each successive square foot is cheaper — a built-in volume curve on area), and there is usually a minimum charge or minimum square footage. In PF360 terms, this is a distinct pricing strategy — a formula like area * rate — sitting alongside the per-unit tier tables, not bolted onto them.

3. One-time and per-color charges

Foil and die-cutting need a one-time die charge; offset spot colors need a plate charge; finishing can be billed per-piece or per-job. Model these as charges that are amortized over the run, separate from the per-unit price.

Best practice: The customer-facing calculator and the admin estimate must produce identical numbers. Keep a single source of pricing logic so the storefront and the back office never disagree — a quote the shop can't honor is worse than no quote.
Key takeaway: One pricing strategy cannot serve all products. Support tiered quantity breaks and square-foot and formula add-ons, and keep storefront and admin in lockstep.

Production status workflow — the lifecycle your model must track

An order isn't a single event; it's a journey through the shop floor. Model it as an explicit, ordered state machine. Here is the canonical path, with a few new terms defined inline:

Order received
   |
   v
Prepress  (preflight + imposition)
   |
   v
Proof  ---->  PROOF APPROVAL GATE  <----+
   |             |  requests changes    |
   |             +----------------------+  (revise, re-proof)
   |  approves
   v
Approved / scheduled
   |
   v
Printing (on press: make-ready + run + QC)
   |
   v
Finishing / bindery (cut, fold, laminate, bind)
   |
   v
Packaging  -->  Shipped  -->  Delivered

side states: On hold / awaiting files / awaiting payment /
             reprint / cancelled
StageWhat happens (plain English)
Order receivedJob created, spec captured
PrepressFile prep and color management; the preflight check (file validation, below) and imposition (arranging multiple pages/copies on the big press sheet so it cuts apart correctly). Bad files bounce back to the customer here.
ProofSystem generates a proof — a sample (a PDF "soft proof" or a printed "hard proof") for the customer to check
Proof approval gateThe customer approves or requests changes; revised proof; repeat. This is the single biggest bottleneck and the timing anchor.
PrintingFor offset: making plates and make-ready (setting up and aligning the press before the real run); then the run, with quality-control checks for color consistency
Finishing / binderyTrimming, folding, scoring, lamination, foil, binding, assembly
Packaging → Shipped → DeliveredPack, hand to carrier with a tracking number, complete

Modeling rules that matter:

  • Two label sets. Show customers plain language ("Proof ready", "In production", "Shipped"), keep internal codes for the floor. Never surface "PREPRESS_QC_HOLD" to a buyer.
  • The turnaround clock starts at proof approval, not at order placement (more below).
  • Audit every transition — who changed it, from what to what, and when. Status changes are business-critical for support and disputes.

The proof approval gate deserves first-class treatment

This is the one place an order legally and practically pauses on the customer. It must be a versioned, audit-logged gate: store every proof version, who approved it, and the exact timestamp. The approval timestamp is what anchors the production SLA clock.

Common mistake: No proof-approval record, or no version history. When a customer says "I never approved that color," the shop needs to show the exact proof version and the signed-off timestamp. Without an audit trail, the shop eats the reprint.
Key takeaway: Use an explicit ordered status machine with dual labels (customer-friendly + internal), audit every transition, and make proof approval a versioned, timestamped, first-class gate.

File / preflight requirements — the order isn't real without a valid file

Preflight is the pre-print validation of the customer's file (like a pilot's pre-flight checklist). Four core checks every print PDF must clear:

CheckRequirementIf it fails
Resolution≥ 300 DPI at final size (1200 DPI for line art)Blurry, pixelated print — the #1 rejection
Color modeCMYK, not RGBColors shift on conversion; bright blues/greens worst
Bleed0.125" (3mm) on all 4 sides, plus a safe/margin zone keeping critical content away from the trim lineWhite slivers at the edge after cutting
FontsAll embedded or outlinedPrinter substitutes wrong fonts and spacing

Quick definitions: DPI = dots per inch, a measure of image detail. Bleed = artwork extended past the trim so no white edge shows after cutting. Trim = the final cut size. Crop marks = guides showing where to cut. There are also two file standards to know:

StandardMeaning
PDF/X-1a:2003Safest: everything CMYK, fonts embedded, no transparency or live layers
PDF/X-4Modern: allows live transparency, layers, and RGB/Lab/spot color

Shops run preflight automatically and reject non-compliant files with a report; production cannot start until the file is corrected and re-uploaded.

Best practice: Gate the order on a preflight pass/fail, but translate the result for a non-technical buyer. Not "RGB profile in PDF/X-1a, missing embedded glyphs" — say "Your file uses screen colors (RGB); print needs CMYK, so colors may shift. Please re-export and upload again." Then offer a clear re-upload loop. In PF360 this heavy file work belongs in the dedicated PDF service, behind a feature flag — not inline in the web app.
Key takeaway: Store file requirements per product, run automated preflight, gate the order on the result, and always return a human-readable failure plus a re-upload path.

Turnaround / SLA — model time honestly with two clocks

SLA = Service Level Agreement, the promised timing. The critical rule: production turnaround and shipping transit are two separate clocks — never merge them. If you blend them, customers blame the shop for a carrier's delay.

  • Production turnaround = proof approval → ready to ship, counted in business days (no weekends/holidays), starting the day after approval. Typical standard is 3–5 business days; rush can be 24 hours, often with a cutoff ("approve before noon or it slips a day").
  • Shipping transit = the carrier's separate clock once the parcel leaves.
Example: A customer approves their proof Friday at 4pm. Production is "3 business days." The clock starts Monday (weekend skipped), so ready-to-ship is end of Wednesday. Add 2-day ground shipping → delivery the following Friday. Showing one merged "5-day" number would have promised Tuesday and broken trust.

Model implication: store production_days and rush options per product; compute the estimated ship/delivery date from the approval timestamp + a business-day calendar + the chosen shipping method; and display the two legs separately.

Weight & shipping — derive the physical numbers from the spec

Each finished piece has a weight. Total parcel weight = (per-piece weight × quantity) + packaging. Per-piece weight comes from the stock (GSM × sheet area) plus any weight-adding finishing (lamination, heavier covers). The packed parcel's dimensions drive dimensional (DIM) weight — carriers charge on size as well as actual weight for bulky-but-light parcels.

Best practice: Make weight derivable from the spec (stock + size + quantity), allow per-product / per-size / per-option overrides, and snapshot the weight onto the order at purchase time. If a stock's weight is edited next month, last month's shipped orders must keep their original math. In PF360 this maps directly to the Weight module: per product/size/option-value weights → shipping tiers → order snapshot.

Partial fulfillment — the order can split

A print order often ships in parts: a multi-product order where one item finishes first, a "blind drop ship" sending pieces to several addresses, or staged delivery. Partial shipment means the order is delivered in fragments as items become ready, with the rest following later (and shipping may be charged per shipment).

Common mistake: A single order-level "shipped: true/false" flag. That cannot represent "200 of the 500 booklets shipped, the banner ships tomorrow." An order needs many shipments (1:N), each with its own line-item quantities, tracking number, and status. PF360 platform assessments flag full partial-fulfillment support as a real gap to build in from day one.

Gang run / batching — orders merge at production

A gang run places multiple separate jobs on one shared press sheet so they split the setup, plate, and press cost and waste less paper; the sheet is cut apart after printing. (A combination run is the same idea for related variants.)

Example: Two different 8.5×11 forms, 5,000 each, same paper and ink — ganged onto shared sheets, they save roughly 33% versus two separate runs. Imposition software can gang as many as ~160 different orders onto one layout, auto-rotating pieces to minimize waste.

The hard constraint: every ganged job must share the same stock and ink/color spec, and it works on sheet-fed CMYK presses. The downsides you must be able to model and communicate:

  • Color accuracy is harder — roughly 10% color variance is "standard" in gang runs. Sensitive colors (orange, purple, brown, neutral gray, lime green) drift most.
  • "Ghosting" — a neighbor's heavy solid ink area can faintly affect your piece.
  • Reprints cost more — rerunning your piece reproduces the neighbors too.
  • Unsuitable for special stocks, special effects, or tight brand-color jobs.

Model implication: a batch / gang entity that groups eligible jobs by shared stock + color + size. Jobs flow individually through prepress and proof, then merge at the printing stage, then split again for finishing and shipping.

Best practice: Let customers opt out of gang runs for brand-critical color, and disclose the ~10% variance expectation up front so a slightly-off color isn't a surprise dispute.

Three concrete examples (the model end-to-end)

A. Business cards — short-run, gang-run candidate

  • Spec: 3.5×2", 16 pt gloss-coated cover (~350 GSM), 4/4; options: matte lamination + rounded corners + spot UV.
  • Pricing: quantity tiers (250 / 500 / 1000 / 2500), setup amortized; lamination per-piece, rounded-corner die one-time.
  • Production: prepress → proof → approval → gang run with other 16 pt cards → cut → laminate → ship in 3–5 business days.
  • File: 3.5×2" + 0.125" bleed, CMYK, 300 DPI, fonts embedded.

B. Vinyl banner — wide format, square-foot pricing, no gang

  • Spec: 36"×80" (≈20 sq ft), 13 oz scrim vinyl, 4/0; finishing: hemmed edges + grommets every 2 ft.
  • Pricing: 20 sq ft × ~$8 ≈ $160 + hem/grommet add-ons; degressive rate on larger sizes; minimum charge applies.
  • Production: large-format printer (no plates); finishing = weld/hem + grommets; high weight → real freight cost.
  • File: artwork scaled (often 1:1 or 1:10), CMYK; lower DPI acceptable at viewing distance.

C. Saddle-stitch booklet — multi-page, binding, partial fulfillment

  • Spec: 8.5×11", 28 pages (multiple of 4), 100 lb gloss text interior (148 GSM) + 100 lb gloss cover (270 GSM), 4/4 throughout, saddle stitch, aqueous coat on cover.
  • Pricing: per-page + cover + binding + quantity tiers; page count drives imposition into signatures.
  • Production: prepress imposes signatures → proof (page sequence checked) → print → fold → collate → stitch → trim → ship. If ordered alongside other items, booklets may ship separately when bindery finishes → partial fulfillment.

Common mistakes (the software-builder checklist)

  • Modeling print as fixed-variant SKUs instead of a configurable spec — can't represent size×stock×sides×finishing×qty.
  • Treating "sides" as a boolean instead of the 4/4 vocabulary (full color vs spot, front/back independent).
  • Looking up price instead of computing it; ignoring setup-fee amortization → wrong totals at low quantity.
  • One pricing strategy for everything — wide format needs square-foot, cards need quantity tiers.
  • No proof-approval gate, or no version/approver audit trail → "I never approved that" disputes.
  • Starting the turnaround clock at order placement, and merging production + shipping time.
  • Order-level single shipment (no 1:N) → can't do partial / backorder / multi-address.
  • Not validating finishing/stock compatibility → impossible jobs accepted.
  • Storing only ambiguous "lb" weight instead of canonical GSM → wrong stock and wrong shipping.
  • No preflight gate, or surfacing raw rejection codes instead of plain "Your file is low-resolution; please upload 300 DPI."
  • Not snapshotting spec/weight/finishing onto the order → later edits corrupt historical orders (the "silent-lie" class).
  • Tangling non-priced custom/metadata fields with pricing-bearing options — keep them separate.

Vocabulary cheat-list — talk to a printer and earn trust

Use these terms correctly and a real shop will treat you as someone who understands the craft.

TermPlain meaning
4/4, 4/1, 4/0, 1/1, 1/0Front/back ink counts; 4 = CMYK full color, 0 = blank, 1 = single (usually black)
CMYK / RGBProcess print colors / screen colors (never submit RGB for print)
PMS / Pantone / spotExact branded ink; extra plate and cost
GSM / lb / pt (caliper)Metric weight / US weight (category-dependent) / thickness
Cover vs text stockHeavy (cards, covers) vs lighter (pages, flyers)
Grain (long/short)Fiber direction — fold with the grain
Bleed / trim / safe area / crop marksArt past the cut (0.125") / final size / keep content inside / cut guides
Preflight / imposition / make-ready / plateFile validation / arranging on the sheet / press setup / offset image carrier
ProofSample for approval (soft/PDF or hard copy)
Lamination / UV / spot UV / aqueousProtective coats; spot UV = gloss on chosen areas
Foil / emboss / deboss / die cut / score / perf / drillFinishing effects (foil and die cut need a one-time die)
Saddle stitch / perfect / spiral / case boundStapled fold / glued spine / coil / hardcover
Gang run / combination runSharing one press sheet across jobs
Setup / die / plate feeOne-time costs amortized over the run
Turnaround / rushProduction business-days from proof approval (separate from shipping); rush = expedited with cutoffs
12/14/16 pt; 7 ptCommon business-card calipers; 7 pt = USPS postcard minimum

How to talk to a printer

When you call a shop to validate your model or get a quote, lead with the spec in their language, not yours. Don't say "I need a small double-sided card thing in heavy paper." Say: "3.5 by 2, 16-point gloss cover, 4-over-4, matte lamination both sides, rounded corners, 500 pieces — what's your standard turnaround from proof approval, and do you gang these?" That one sentence tells them you know size, caliper, ink coverage, finishing, quantity, the SLA clock, and gang runs. Then ask the questions that fill gaps in your data model: "How do you handle a file that fails preflight?", "Do you charge shipping per shipment on partial deliveries?", "What's your color variance tolerance on gang runs?"

Key takeaway: The whole guide reduces to one engineering instruction — model the print product as a spec/recipe with priced options and compatibility rules; compute price by strategy (tiers or square-foot); gate the order on a versioned proof approval and an automated preflight; track an explicit, audited status machine; snapshot weight and spec onto the order; and support 1:N shipments and gang batching. Build that, and your software finally tells the truth about the factory.

Continue reading