diff --git a/docs/finance/revenue-model.md b/docs/finance/revenue-model.md index 1df3828..787d677 100644 --- a/docs/finance/revenue-model.md +++ b/docs/finance/revenue-model.md @@ -519,6 +519,8 @@ plus the occupational checks the law requires for risk-factor work (see planning prices, ~20 people at the start fleet, so ~0.35M THB a year. The ×1.3 itself is roughly the employer's social security (5 % up to a 17,500 THB ceiling since January 2026) plus ~25 % for overtime, bonus and PPE. +Unified Engelbert Strauss workwear for all staff adds ~0.3M THB a year +(kit, prices and import in [worker safety](../worker-safety.md)). The [press fleet calculator](../fleet-calculator.html) costs labour from base salaries in that way. diff --git a/docs/fleet-calculator.html b/docs/fleet-calculator.html index 54290d0..8a85c3b 100644 --- a/docs/fleet-calculator.html +++ b/docs/fleet-calculator.html @@ -353,7 +353,8 @@ document.documentElement.setAttribute("data-theme",t);})(); engineer a team figure), plus the employer's 5 % social security up to the 17,500 THB ceiling, 25 % for overtime, bonus and PPE, and the company's health care for every member of staff, office included: group health insurance, a yearly check-up, and the risk-factor tests Thai law requires - for the press floor, galvanics and maintenance (worker-safety.md).

+ for the press floor, galvanics and maintenance; and unified Engelbert Strauss workwear with the + company logo for everyone, shipped from Germany with Thai duty (worker-safety.md).

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

Sources in the CNX Vinyl planning repository: equipment/pressing-line.md, @@ -496,6 +497,14 @@ grp("Labour: on-costs and health care", [ ["checkup", "Annual health check-up", 2500, "THB a head a year", "est", "Estimate for an age mix; Rajavej Chiang Mai 2026 programmes 1,290 to 5,990 THB by age (worker-safety.md)"], ["occCheck", "Risk-factor tests (hearing, lungs, metals)", 1500, "THB a head a year", "est", "Estimate; required yearly for press floor, galvanics and maintenance (Ministerial Regulation B.E. 2547, worker-safety.md)"], ]); +grp("Workwear: Engelbert Strauss for all staff", [ + ["wwProd", "Production kit, with logo", 338, "EUR", "doc", "worker-safety.md: 3 trousers e.s.motion 2020, 3 polos, 2 T-shirts, sweatshirt, S1 safety shoes; Strauss prices without German VAT, October 2026; embroidery ~5 EUR a piece (estimate)"], + ["wwOffice", "Office kit, with logo", 127, "EUR", "doc", "worker-safety.md: 4 polo shirts and a softshell jacket"], + ["wwProdYr", "Production kits a head a year", 1, "", "est", "Estimate: daily wear and washing"], + ["wwOffYr", "Office kits a head a year", 0.5, "", "est", "Estimate"], + ["wwFreight", "Shipping to Thailand", 15, "% of goods", "est", "Estimate; Strauss quotes shipping with the order confirmation"], + ["wwDuty", "Thai import duty on workwear", 14, "%", "doc", "HS 6203 work trousers 13.8 % (customs-compliance.ai, March 2026); BOI does not cover clothing; import VAT reclaimable"], +]); grp("Planned plant, for the checks", [ ["boiler", "Steam boiler", 400, "kg/h", "doc", "scale.md: sized for one Duplex system"], ["chiller", "Chiller", 250, "kW", "doc", "scale.md: sized for one Duplex system"], @@ -665,6 +674,9 @@ function econ(r, b, boiOn = S.boi !== "off") { add("lab", "Health insurance, all staff", t2u(h.all * A.healthIns), `${ppl(h.all)}, office included, at ${f0(A.healthIns)} THB a year`); add("lab", "Health check-ups, all staff", t2u(h.all * A.checkup + h.exposed * A.occCheck), `yearly for everyone, plus risk-factor tests for ${ppl(h.exposed)} on the press floor, in galvanics and maintenance`); + const wwEur = (h.prod * A.wwProd * A.wwProdYr + h.office * A.wwOffice * A.wwOffYr) * (1 + A.wwFreight / 100) * (1 + A.wwDuty / 100); + add("lab", "Workwear, Engelbert Strauss, all staff", wwEur * A.usdEur, + `${f1(h.prod * A.wwProdYr)} production and ${f1(h.office * A.wwOffYr)} office kits a year, shipping and Thai duty included`); const sum = gs => L.filter(l => gs.includes(l[0])).reduce((a, l) => a + l[2], 0); const direct = L.reduce((a, l) => a + l[2], 0), contrib = rev - direct, ebitda = contrib - A.overheads; const fleetDelta = (r.D - 2) * A.capexD + (r.C - 1) * A.capexC; diff --git a/docs/worker-safety.md b/docs/worker-safety.md index 4ecf3ad..baa16b9 100644 --- a/docs/worker-safety.md +++ b/docs/worker-safety.md @@ -16,6 +16,34 @@ commitments: goggles, and process-specific protection) is mandatory per work area, in line with the equipment vendor's site requirements (exhaust work benches, fire protection) and local regulations. +- **Unified workwear (decided October 2026).** Every member of staff, + office included, wears the same Engelbert Strauss workwear (the brand + now trades as Strauss, [strauss.com](https://www.strauss.com/de/en/)) + with the company logo. Process PPE stays on top of it: chemical + protection in galvanics, heat gloves at the presses, hearing protection + where the noise survey asks for it. + - **Kit** (catalogue prices including 19 % German VAT, which drops out + on export, checked October 2026): production gets three pairs of + trousers e.s.motion 2020 (from 65.33 EUR), three e.s. polo shirts + cotton (from 15.35), two e.s. T-shirts cotton (from 7.96), an e.s. + sweatshirt (from 18.92) for the air-conditioned rooms, and S1 safety + shoes e.s. Vasegus II low (71.28 from 10 pairs; steel toe cap, + antistatic): ~293 EUR before VAT, ~338 with the logo embroidered (logo + from 4 pieces per motif; ~5 EUR a piece is an estimate). The office + gets four polo shirts and a softshell jacket e.s.motion 2020 (from + 59.38): ~127 EUR with logos. Heavy cotton trousers are hot in the + press hall; check the lighter Strauss lines with samples before the + first order. + - **Ordering and import:** Strauss delivers outside Germany where customs + law allows, quotes the shipping when it confirms the order, asks for + prepayment, and the forwarder charges the recipient duty and taxes + ([B2B terms](https://www.strauss.com/de/en/Legal_information/Terms_and_Conditions/B2B)). + Thai duty on work trousers (HS 6203) is 13.8 % + ([customs-compliance.ai](https://customs-compliance.ai/duty/men-s-suits-and-trousers-hs-6203), + March 2026); BOI does not cover clothing. The import VAT is reclaimable + as input tax. Planning figure: one production kit a head a year and + half an office kit, plus ~15 % shipping and ~14 % duty (estimates), so + ~9k USD (~0.3M THB) a year at the start fleet's ~20 staff. - **Lifting and machine service**: the overhead crane needs trained operators and slingers, a lift plan for every machine move, and the periodic engineer inspections Thai law sets for cranes. A machine is