From eac45eb234b59ebd96f8af48535a8b51c0baff4c Mon Sep 17 00:00:00 2001 From: grabowski Date: Sat, 10 Oct 2026 20:12:26 +0700 Subject: [PATCH] Lacquer blank 70 EUR and cutting engineer 50,000 THB a month Team figures, October 2026: - revenue-model.md: a lacquer blank costs about 70 EUR, one per side, so ~160 USD a two-sided title before recuts; a cutting engineer costs about 50,000 THB a month; - fleet calculator: the lacquer assumption is now in EUR (70, one per side, converted at 1.155 USD per EUR; styli and recuts not included) and the cutting engineer 50,000 THB a month, both marked as team figures instead of estimates. At the defaults lacquers come to ~54k USD a year and direct cost to 1.88 USD a record (was 1.86). --- docs/finance/revenue-model.md | 6 ++++-- docs/fleet-calculator.html | 12 ++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/finance/revenue-model.md b/docs/finance/revenue-model.md index e319b6e..408d991 100644 --- a/docs/finance/revenue-model.md +++ b/docs/finance/revenue-model.md @@ -509,7 +509,8 @@ security, overtime, bonus and PPE: That is 3.7M–5.4M THB/yr (113k–163k USD), or **0.08–0.16 USD per record** over 1.0–1.5M records. Mastering and cutting engineers are excluded — they are title-services labour, not per-record, and admin, sales and -logistics sit in overheads below. +logistics sit in overheads below. A cutting engineer costs about +**50,000 THB a month** (team figure, October 2026). ## Margin per record @@ -530,7 +531,8 @@ from the fleet and these three cases as presets. Three scenarios, each internally consistent: adverse pairs low volume with the low price and high cost, favourable does the opposite, central takes midpoints. Title-services contribution assumes 60–70% after lacquer blanks, styli -and nickel. Cash overheads (admin, sales, insurance, facility running, +and nickel; a lacquer blank costs about **70 EUR** (team figure, October +2026), one per side, so ~160 USD a two-sided title before recuts. Cash overheads (admin, sales, insurance, facility running, IT, professional fees, marketing) are estimated at **200–450k USD/yr** and deliberately paired high-to-adverse. Depreciation is the 4.7–8.9M capex over 10–15 years. diff --git a/docs/fleet-calculator.html b/docs/fleet-calculator.html index c7def95..9f5445a 100644 --- a/docs/fleet-calculator.html +++ b/docs/fleet-calculator.html @@ -331,9 +331,9 @@ document.documentElement.setAttribute("data-theme",t);})(); Duplex system or Classic added or removed), the electricity tariff and PV from scale.md, the biomass heat price from biomass.md. Electricity and steam follow the fleet: machines, chiller and compressors at the hours run, steam from the presses' running time, plus an estimated base load for the rest of - the plant. Lacquer blanks, shipping cartons and the cutting engineer's wage have no figure on file - and are estimates. Missing as the revenue model lists: indirect labour, freight, inventory, effluent, - commission, extra galvanics units' capex.

+ the plant. Lacquer blanks (70 EUR each) and the cutting engineer (50,000 THB a month) are team + figures; shipping cartons have no figure on file and are an estimate. Missing as the revenue model + lists: indirect labour, freight, inventory, effluent, commission, styli, extra galvanics units' capex.

Not scaled here: admin, sales and logistics (in the overheads line); cover for leave and sickness.

Sources in the CNX Vinyl planning repository: equipment/pressing-line.md, @@ -438,7 +438,7 @@ grp("Materials and packaging", [ ["maintCost", "Maintenance, spares, consumables, a record", 0.17, "USD", "doc", "revenue-model.md: 0.12 to 0.23"], ]); grp("Stamper making", [ - ["lacquerCost", "Lacquer blank and stylus wear, a side", 45, "USD", "est", "Estimate; no lacquer or stylus quote on file"], + ["lacquerCost", "Lacquer blank, one per side", 70, "EUR", "user", "Team figure, October 2026 (revenue-model.md); styli not included"], ["chemPart", "Nickel, silver, chemistry, an electroformed part", 25, "USD", "doc", "revenue-model.md: 60 to 150 USD marginal per three-generation set, so 20 to 50 a part"], ]); grp("Energy", [ @@ -455,7 +455,7 @@ grp("Labour (THB a month a head, loaded ×1.3)", [ ["wageQC", "QC", 26000, "THB", "doc", "revenue-model.md"], ["wageMaint", "Maintenance", 32500, "THB", "doc", "revenue-model.md"], ["wageGalv", "Galvanics", 32500, "THB", "doc", "revenue-model.md"], - ["wageCut", "Cutting engineer", 45000, "THB", "est", "Estimate; the revenue model counts mastering as title-services labour"], + ["wageCut", "Cutting engineer", 50000, "THB", "user", "Team figure, October 2026 (revenue-model.md), taken as the full monthly cost"], ["qcPerShift", "QC inspectors per shift", 1, "", "est", "Estimate; scale.md: 1 to 2 QC"], ["pressPerTech", "Presses per maintenance technician (at least 2)", 8, "", "est", "Estimate; scale.md: 2 in maintenance for the start fleet"], ]); @@ -596,7 +596,7 @@ function econ(r, b) { add("pack", "Shrink wrap", X * A.shrinkCost, ""); add("pack", "Shipping cartons and pallets", X * A.cartonCost, "estimate"); add("maint", "Maintenance, spares, consumables", X * A.maintCost, ""); - add("metal", "Lacquer blanks and styli", r.titles * 2 * A.lacquerCost, `${f0(r.titles * 2)} lacquer sides`); + add("metal", "Lacquer blanks", r.titles * 2 * A.lacquerCost * A.usdEur, `${f0(r.titles * 2)} lacquers at ${f0(A.lacquerCost)} EUR; styli and recuts not included`); add("metal", "Nickel, silver, plating chemistry", r.partsYr * A.chemPart, `${f0(r.partsYr)} electroformed parts`); const cap = capacityOf(r.D, r.C, b), use = cap > 0 ? Math.min(1, X / cap) : 0; const runH = b.hoursYr * S.eff / 100 * use; // press running hours a year