Lacquer blank 70 EUR and cutting engineer 50,000 THB a month
Deploy test site / deploy (push) Successful in 39s

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).
This commit is contained in:
grabowski committed 2026-10-10 20:12:26 +07:00
1 parent ce1d71e0b5
commit eac45eb234
2 files changed
+10 -8

No files matched your search

+6 -6
View File
@@ -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.</p>
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.</p>
<p><b>Not scaled here:</b> admin, sales and logistics (in the overheads line); cover for leave
and sickness.</p>
<p>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