Cost Model & Pricing Brief

For Nicole & Phil — Updated March 2026 (v1.3.0)

Back to App Overview Actual vs. Modeled Curve Fitting GP/Hr Volume Breaks Quote Flow Reference

What Changed

Summary of cost model and pricing enhancements through v1.3.0

We've made several improvements to how production costs are modeled and how pricing is displayed throughout the quoting system. Here's the quick version:

Actual Cost vs. Modeled Cost

Two views of production cost, one table

Every cost model entry now has two cost values:

Column What It Is When to Use
Actual cost Raw production cost from real production data. Sum of labor, material, overhead, etc. divided by board feet produced. Historical reference. Good for understanding what actually happened.
Modeled cost Smoothed cost from the curve fit. Removes noise from low-volume gauges and statistical outliers. Primary cost for quoting. The system prefers this when pricing line items.
Why this matters: A gauge like 12mm on Line 101 might show $4.57/BdFt actual cost because it only ran a few times. But looking at the full thickness curve (5mm through 40mm, hundreds of runs), the modeled cost is around $1.35/BdFt. Quoting at $4.57 would price us out of every job.

Setting Modeled Costs

Two ways to set modeled costs:

  1. Curve fit tool (preferred for families with enough data) — Open the chart on the cost model page, review the fit, and click "Save modeled costs."
  2. Manual entry (for families with sparse data) — Click the modeled cost cell in the table to type a value directly.

Use the "Missing modeled cost" filter to find entries that still need a modeled cost assigned.

Heads up: When a line item is priced using only an actual cost (no modeled cost available), the system shows an orange warning. This means someone should review that entry on the cost model page.

Cost Curve Analysis

Visual tool for reviewing and fitting production costs

The cost curve analysis tool (click "Show chart" on the cost model page) plots actual production costs against thickness for a given family/line/skin combination.

How It Works

  1. Select the product family, line, and skin type from the dropdowns.
  2. The chart shows actual costs as blue bubbles (larger = more production volume).
  3. A green curve is automatically fitted through the data using polynomial regression.
  4. Orange circles mark outliers that were automatically excluded from the fit (using IQR analysis on residuals).
  5. Statistics show R² (goodness of fit), number of points, degree, and thickness range.

Controls

Saving

Click "Save modeled costs" to write the curve-fit values back to each cost model entry. The curve coefficients are also saved for use in interpolation (when a quoted thickness falls between existing entries).

Good fit indicator: R² above 0.85 = "Good fit" (green badge). Below that, consider adjusting the degree or reviewing the data for issues.

GP/Hr (Gross Profit per Uptime Hour)

Phil's preferred profitability metric, now visible throughout the system

GP/Hr tells you how many dollars of gross profit a product generates per hour of machine uptime. It's the key metric for comparing products that use different amounts of machine time.

Formula
GP/Hr = Line Cost/Hr × Margin% ÷ (1 − Margin%)

Line Cost Constants (2025 Actuals)

Line Cost/Hr Uptime Hours Total Cost Avg Margin Avg GP/Hr
Line 101 $3,300 1,432 $4.73M 29.4% $1,415
Line 2 $975 817 $0.80M 34.4% $417
Key insight: Cost per hour is essentially constant across all gauges on a given line. The oven costs the same per hour whether you're running 5mm or 50mm. What changes is throughput (board feet per hour), which is already baked into the $/BdFt cost.

Where You'll See GP/Hr

Color Coding

Color Meaning Line 101 Line 2
Green Above 2025 average > $1,415/hr > $417/hr
Yellow 50–100% of average $708 – $1,415/hr $209 – $417/hr
Red Below 50% of average < $708/hr < $209/hr
Important: GP/Hr is labeled "~approx" throughout the system. It's based on 2025 line cost averages and is meant as a directional indicator, not a precise calculation. Margin % remains the primary pricing metric. GP/Hr helps evaluate machine-time profitability but should not be the sole basis for pricing decisions.

Quick Reference Examples

Line Margin % GP/Hr Assessment
Line 101 20% $825 Below avg, but within range
Line 101 30% $1,414 Right at average
Line 101 40% $2,200 Well above average
Line 2 20% $244 Below avg, but within range
Line 2 35% $525 Above average
Line 2 10% $108 Red flag — low margin + low GP/Hr

Volume Breaks

Multi-tier pricing on a single line item

When a customer wants to see pricing at different release quantities, you no longer need to create separate line items. Enable Volume Breaks on a single line item and the PDF will automatically expand it into multiple rows.

Volume Break Profiles

Roll counts per tier depend on the packaging type. Three default profiles are configured:

Line 101 Gaylord (4 rolls/gaylord)

TierRollsDescription
TL (Truck Load)10426 gaylords × 4 rolls
1/2 TL5213 gaylords
1/4 TL26~6.5 gaylords
1 HU41 gaylord

Line 2 Gaylord (8 rolls/gaylord, double-stacked)

TierRollsDescription
TL20826 gaylords × 8 rolls
1/2 TL10413 gaylords
1/4 TL52~6.5 gaylords
1 HU81 gaylord

1-Roll Box (6 boxes/skid)

TierRollsDescription
TL6611 skids × 6 boxes
1/2 TL366 skids
1/4 TL183 skids
1 HU61 skid

Profiles are configurable in Settings → Volume Breaks.

How to Use

  1. In the line item modal, check "Volume breaks".
  2. Select a profile (auto-selected based on production line when possible).
  3. Choose which tiers to include (TL, 1/2 TL, 1/4 TL are checked by default).
  4. Save the line item.
  5. On the PDF, this single line item becomes 3–4 rows, each showing the tier label and roll count from the selected profile.

Line items with volume breaks show an orange VB badge in the line items table.

Tier Pricing (Markup Structure)

Volume break pricing uses markups for smaller quantities relative to the TL (Truck Load) base price:

TierMarkupMeaning
TLBase priceFull truck load — no markup
1/2 TL+3%Half truck load
1/4 TL+5%Quarter truck load
1 HU+8%Single handling unit

These markups are configurable per quote in the pricing modal. The pricing modal shows each tier with its markup percentage and calculated price. Smaller quantities cost more per unit because of setup and handling overhead.

Important: These are markups (price goes UP for fewer rolls), not discounts. The TL price is the base, and smaller quantities add a percentage on top.

Updated Quote & Pricing Flow

Two-phase workflow: line items first, then pricing

Status Flow

Quotes now follow a defined status progression:

  1. New Request — Add line items, customer requirements, packaging, follow-up schedule, and volume break tiers. Pricing fields are hidden during this phase. Core sizes default to 6" (Line 101) or 3" (Line 2).
  2. Pricing / Feasibility — Click "Move to Pricing" to transition. A blue guidance banner shows how many items still need pricing. The Pricing breakdown section shows each line item with a "Set pricing" button that opens the dedicated Pricing Modal (cost model lookup, base pricing, adjustments, running summary). Feasibility review runs in parallel.
  3. Awaiting Approval — Quote is priced and ready for review. Before submitting, the system validates that customer requirements are reviewed and follow-up schedule is set. If requirements are non-standard, a completed feasibility review is also required.
  4. Approved — Ready to Send — Quote has been approved. The "Send quote" button is now enabled.
  5. Sent — Quote PDF has been emailed to the customer.
  6. Follow-up — Awaiting customer response per the follow-up schedule.
  7. Closed — Won, Lost, No Response, or Reference.
Key change: The "Send quote" button is greyed out and disabled until the quote reaches "Approved" status. This ensures all quotes go through the approval step before being sent to customers.

Kanban Board

The board now shows 5 columns: In Process, Awaiting Approval, Ready to Send, Sent, and Follow-up Needed.

Pricing Modal (during Pricing phase)

Pricing is now done in a dedicated modal separate from the line item editor. Click "Set pricing" on any line item in the Pricing breakdown section.

  1. Click "Lookup cost" — the system searches the cost model using the line item's specs:
    • Modeled cost (green) with the actual cost shown smaller for reference
    • Or actual cost only (orange warning) if no modeled cost exists
    • Modification families (3996.1, 3996.2, etc.) automatically fall back to the base family cost curve
  2. Click "Apply" to load cost, margin, and price into the base pricing fields.
  3. Edit margin to recalculate price, or edit price to recalculate margin. Set a lot charge if applicable.
  4. Add price adjustments (volume, strategic, market, complexity, etc.) with a percentage or $/BdFt amount. Adjustments stack cumulatively on the base price.
  5. The running summary shows the effective price after adjustments, effective margin, and GP/Hr in real time.
  6. Click "Save Pricing" to save.
Approval validation: Before submitting for approval, the system checks that customer requirements are reviewed, a follow-up schedule is set, and (if requirements are non-standard) a feasibility review is complete. All line items must also be priced.

Quick Reference

Formulas and constants at a glance

List Price
List Price = Production Cost ÷ (1 − Margin%)
GP/Hr
GP/Hr = Line Cost/Hr × Margin% ÷ (1 − Margin%)
Back-calculate Margin from GP/Hr
Margin% = GP/Hr ÷ (GP/Hr + Line Cost/Hr)

Constants

ParameterLine 101Line 2
Cost/Hr$3,300$975
2025 Avg Margin29.4%34.4%
2025 Avg GP/Hr$1,415$417
2025 Uptime Hours1,432817
Source2025 3996 Family production data
Update frequency: Line cost/hr constants should be refreshed annually or when significant cost changes occur. The current values are based on 2025 actuals. Contact Josh if the values need updating.