Business plan draft 0.3 in two versions: Plan A ~180M and Plan B ~225M THB
Deploy test site / deploy (push) Successful in 52s
Deploy test site / deploy (push) Successful in 52s
- One build makes both documents: plan_variant.py switches the plan-specific text (pick / is_a / label); build_plan.py writes CNX-Vinyl-Business-Plan-A and -B (docx), export_pdf.py exports both PDFs with the table of contents filled in. Draft 0.2 (single launch-plant plan with contingency) is removed; it stays in the history. - Plan A: the launch plant with every machine and six cost levers, ~177M THB with the ramp-up reserve, no contingency. Plan B: the second Duplex at launch, five presses, ~224M THB on the same basis. Each version reads as a complete plan with one table comparing it with the other; the 216M investor-question text is gone, Pheenix is priced at OMS's reference plus 20 %. - Calculator renders in both documents, each from its own preset: the plant at a glance (Figure 4), the budget check (Figure 5) and ten years of cash (Figure 6), in docs/renders/calculator/. - Calculator budget card: the verdict and third KPI now name the tightest budget the midpoint fits (Plan A: 3.3M to spare under 180M; Plan B: 0.8M under 225M) instead of always 225M. - Fixes: CD replication cross-references point to section 4.10; the blended price in section 3.3 and roadmap item 1 is 3.76 to 5.27 USD at 60 % specials (3.50 to 4.60 at a standard-heavy mix).
This commit is contained in:
1 parent
f2ff1eac1f
commit
bd357ab03f
19 files changed
+1618
-685
No files matched your search
@@ -1,9 +1,15 @@
|
||||
"""Part A: cover, reading guide, executive summary, opportunity, anatomy of the plant."""
|
||||
"""Part A: cover, reading guide, executive summary, opportunity, anatomy of the plant.
|
||||
|
||||
Builds Plan A (~180M THB) or Plan B (~225M THB): plan-specific text is switched with
|
||||
plan_variant.pick() inside blocks(), never at import time.
|
||||
"""
|
||||
from plan_lib import H1, H2, H3, P, B, N, T, KV, IMG, CALL, PB, TOC, COVER
|
||||
from plan_variant import pick, is_a, is_b, label, name
|
||||
|
||||
|
||||
def blocks():
|
||||
out = []
|
||||
LP = pick("Launch plant", "At launch") # 'When' column of the 4.0 checklist
|
||||
|
||||
# ------------------------------------------------------------ cover
|
||||
out.append(COVER(
|
||||
@@ -17,12 +23,19 @@ def blocks():
|
||||
"**Prepared by:** Simona Meesaiyati (Project Lead) and Alexander Grabowski (Technical Consultant), "
|
||||
"supported by buildfor.life, with Ploy Printing (Chiang Mai) as packaging partner and "
|
||||
"strategic co-investor",
|
||||
"**Version:** Draft 0.2, October 2026",
|
||||
f"**Version:** Draft 0.3, October 2026: **{name()}, {pick('~180M THB', '~225M THB')}**",
|
||||
],
|
||||
note="Confidential. All figures in USD and THB at 1 USD = 33 THB (August 2026). Vendor quotes are "
|
||||
"snapshots at their file dates, not commitments. Every number in this plan is labelled as quoted, "
|
||||
"researched, or estimated; see section 2. Draft 0.2 replaces draft 0.1 (September 2026): the plant "
|
||||
"now launches with the whole chain, cutting and galvanics included, in one capital round.",
|
||||
"researched, or estimated; see section 2. " + pick(
|
||||
"This version is Plan A: the launch plant with the whole chain, cutting and galvanics "
|
||||
"included, three presses, brought to ~180M THB (~177M) with six cost levers. A second "
|
||||
"version, Plan B (~225M THB), launches with five presses and takes none of the levers. ",
|
||||
"This version is Plan B: the whole chain, cutting and galvanics included, with five presses "
|
||||
"at launch and everything in, at ~225M THB (~224M). A second version, Plan A (~180M THB), "
|
||||
"launches with three presses and six cost levers. ")
|
||||
+ "The plan price includes the ramp-up reserve and carries no contingency. Draft 0.3 replaces "
|
||||
"draft 0.2 (October 2026), which described a single launch plant priced with a contingency.",
|
||||
))
|
||||
out.append(TOC())
|
||||
|
||||
@@ -41,40 +54,79 @@ def blocks():
|
||||
"could go wrong. It is built from the project's planning repository and vendor documents, and it "
|
||||
"keeps the honest parts: where a number is an estimate, it says so; where the evidence is thin, it "
|
||||
"says that too."),
|
||||
P("**What changed since draft 0.1.** In October 2026 the plan moved from a phased entry (one press at "
|
||||
"launch, stampers bought in from the UK, cutting bought in from Europe) to a **launch plant** that "
|
||||
"has the whole chain from the first day, bought in one capital round and commissioned in sequence. "
|
||||
"There are no bridge stampers and no outsourced cutting in the plan any more. Every section below "
|
||||
"is written for that plant."),
|
||||
P("**What changed since the earlier drafts.** In October 2026 the plan moved from a phased entry (one "
|
||||
"press at launch, stampers bought in from the UK, cutting bought in from Europe) to a **launch plant** "
|
||||
"that has the whole chain from the first day, bought in one capital round and commissioned in "
|
||||
"sequence. There are no bridge stampers and no outsourced cutting in the plan any more. Draft 0.3 "
|
||||
"prices that plant in **two versions**, both including the ramp-up reserve and neither carrying a "
|
||||
"contingency: **Plan A (~180M THB)**, the launch plant's three presses with six cost levers, and "
|
||||
"**Plan B (~225M THB)**, five presses with everything in. " + pick(
|
||||
"**This document is Plan A**, and every section below is written for it; a short table after "
|
||||
"the numbers compares the two versions.",
|
||||
"**This document is Plan B**, and every section below is written for it; a short table after "
|
||||
"the numbers compares the two versions.")),
|
||||
H2("What we will build"),
|
||||
B([
|
||||
"**The complete vinyl chain under one roof:** mastering, lacquer cutting, galvanics (growing the "
|
||||
"nickel stampers), stamper preparation, pressing, finishing, packaging with our Chiang Mai print "
|
||||
"partner Ploy Printing, and fulfilment including direct-to-fan dropshipping.",
|
||||
"**Three presses at launch:** one Newbilt Duplex system (two semi-automatic presses with a main "
|
||||
"and a colour extruder, for colour, splatter and short runs) and one Newbilt Classic fully "
|
||||
"automatic press for long standard runs. Special prints are the focus (60 % and more of the "
|
||||
"records), and specials run only on the Duplex, so together they make about 0.58 to 0.90 million "
|
||||
"records a year on two shifts (0.71 to 0.97 million at a standard-heavy mix; estimates). A second "
|
||||
"Duplex system is a growth option with its floor, utility "
|
||||
"positions and pipe connections reserved, not part of the investment.",
|
||||
pick(
|
||||
"**Three presses at launch:** one Newbilt Duplex system (two semi-automatic presses with a main "
|
||||
"and a colour extruder, for colour, splatter and short runs) and one Newbilt Classic fully "
|
||||
"automatic press for long standard runs. Special prints are the focus (60 % and more of the "
|
||||
"records), and specials run only on the Duplex, so together they make about 0.58 to 0.90 "
|
||||
"million records a year on two shifts (0.71 to 0.97 million at a standard-heavy mix; "
|
||||
"estimates). A second Duplex system is a growth step from revenue, with its floor, utility "
|
||||
"positions and pipe connections reserved, not part of the investment.",
|
||||
"**Five presses at launch:** two Newbilt Duplex systems (each two semi-automatic presses with a "
|
||||
"main and a colour extruder, for colour, splatter and short runs) and one Newbilt Classic fully "
|
||||
"automatic press for long standard runs. Special prints are the focus (60 % and more of the "
|
||||
"records) and run only on the Duplex systems; with four semi-automatic presses they no longer "
|
||||
"set the pace, so the five presses make about 1.0 to 1.5 million records a year on two shifts "
|
||||
"(1.25 million in the central case; estimates). The press hall keeps room for more Duplex "
|
||||
"systems and Classics as an option, not part of the investment."),
|
||||
"**The metal path in-house:** a Sillitoe SDMS cutting room, a Pheenix Alpha galvanics line with "
|
||||
"zero-discharge water treatment, and the Sibert stamper-prep line. The father and the mother of "
|
||||
"every side are archived, so represses start from our own metal.",
|
||||
"**A modular utility plant:** a boiler hall and a chiller compound built once for four modules "
|
||||
"each, with two 500 kg/h boiler modules and two 250 kW chiller modules installed at launch; "
|
||||
"further presses add modules, not rooms. The steam fuel (electric or biomass) is still open.",
|
||||
"**Cassette duplication and CD-R duplication in-house** from launch. Full CD replication "
|
||||
"each, with " + pick(
|
||||
"two 500 kg/h boiler modules (B-1, B-2, bought through the Chinese route) and two 250 kW "
|
||||
"chiller modules (CH-1, CH-2)",
|
||||
"two 500 kg/h boiler modules (B-1, B-2) and three 250 kW chiller modules (CH-1 to CH-3)")
|
||||
+ " installed at launch; further presses add modules, not rooms. The steam fuel (electric or "
|
||||
"biomass) is still open.",
|
||||
pick("**Cassette duplication and CD-R duplication as a growth step** after launch, not in the "
|
||||
"plan price; both fit inside the building programme. ",
|
||||
"**Cassette duplication and CD-R duplication in-house** from launch. ")
|
||||
+ "Full CD replication "
|
||||
"(injection-moulded discs) is a separate, much larger decision, outside the totals; both CD "
|
||||
"routes are set out in section 4.10 for the investor to decide.",
|
||||
"**A purpose-built ~1,500 m² plant on long-term leased land**, with a detached utility yard, "
|
||||
"rooftop solar and room for a second building.",
|
||||
+ pick("rooftop solar through a solar power purchase agreement (PPA)",
|
||||
"owned rooftop solar with a battery")
|
||||
+ " and room for a second building.",
|
||||
"**Commissioned in sequence:** the cutting room and galvanics first (the presses need their "
|
||||
"stampers), then the Duplex system, then the Classic. That puts galvanics, the hardest skill to "
|
||||
"stampers), then " + pick("the Duplex system, then the Classic",
|
||||
"Duplex system 1, then the Classic, then Duplex system 2")
|
||||
+ ". That puts galvanics, the hardest skill to "
|
||||
"hire, on the path to the first paying release. Sibert, the stamper-prep supplier in the plan, "
|
||||
"advised after the Haarlem trade show to get presses, boilers, operators and feedback loops "
|
||||
"right first; the launch plant was decided anyway, and that advice is carried as a risk "
|
||||
"(sections 11.2 and 13).",
|
||||
"right first; " + pick("the launch plant", "the whole chain at launch")
|
||||
+ " was decided anyway, and that advice is carried as a risk (sections 11.2 and 13).",
|
||||
pick(
|
||||
"**Six cost levers bring the plant to ~180M THB**, from ~194M to ~162M THB at the midpoint "
|
||||
"before the ramp-up reserve (estimates, section 8): rooftop solar and battery through a solar "
|
||||
"PPA (the installer owns and finances the array, the plant buys the power); metrology in two "
|
||||
"steps (XRF, inline vision and the audio station at launch, the laser confocal and the "
|
||||
"wide-area profiler bought from revenue); the visitor corridor built later, so no public tours "
|
||||
"at first; cassette and CD-R duplication later; a mobile crane rented for the installations, "
|
||||
"with frame, runway and machine door kept crane-ready; boilers and compressor through the "
|
||||
"Chinese route. Every press, the cutting room, the galvanics line and the stamper-prep line "
|
||||
"stay in.",
|
||||
"**Everything in, no cost levers:** owned rooftop solar and battery (and with them the BOI "
|
||||
"solar measure), the full metrology stack from launch, the visitor corridor and public tours "
|
||||
"from the start, a bought overhead crane, cassette and CD-R duplication, and Thai-supplied "
|
||||
"boilers and compressor."),
|
||||
]),
|
||||
H2("What makes it top-notch"),
|
||||
P("Four things separate this plant from a pressing shop, and they are the reason it can charge "
|
||||
@@ -92,8 +144,11 @@ def blocks():
|
||||
"regrown from the father without a new cut. At Making Vinyl Europe in Haarlem this was what the "
|
||||
"industry responded to most.",
|
||||
"**Metrology and layered quality control.** The nickel parts are measured without contact "
|
||||
"(laser confocal, wide-area profiler, XRF thickness) and logged per serial, which is ahead of "
|
||||
"current industry practice. Every pressed record passes 100% inline optical inspection, every "
|
||||
+ pick("and logged per serial, which is ahead of current industry practice: XRF thickness from "
|
||||
"launch, the laser confocal and the wide-area profiler bought from revenue. ",
|
||||
"(laser confocal, wide-area profiler, XRF thickness) and logged per serial, which is ahead "
|
||||
"of current industry practice. ")
|
||||
+ "Every pressed record passes 100% inline optical inspection, every "
|
||||
"press cycle is logged, and sampled records are compared automatically against the source "
|
||||
"master.",
|
||||
"**Efficiency designed in.** Heat is recovered before energy is generated: in order, a flue-gas "
|
||||
@@ -101,7 +156,11 @@ def blocks():
|
||||
"heat pump that lifts the presses' ~60 °C cooling return into boiler feedwater. The main roof "
|
||||
"carries **~247 kWp** of solar (about 335 to 360 MWh a year, a quarter to a third of mature "
|
||||
"two-shift use; a second building's roof would take the total to ~498 kWp), with a 271 kWh "
|
||||
"battery for ride-through. Cooling runs as a closed loop, no process water is discharged, "
|
||||
"battery for ride-through" + pick(
|
||||
", both through the solar PPA: the installer owns and finances them, the plant buys the "
|
||||
"power. ",
|
||||
", both owned by the plant. ")
|
||||
+ "Cooling runs as a closed loop, no process water is discharged, "
|
||||
"galvanics rinse water goes through a zero-discharge evaporator, and 20% of the feedstock is "
|
||||
"in-house regrind. Boilers and chillers come in identical modules, so spares and service are one "
|
||||
"routine. At reported northern fuel prices biomass heat costs a quarter to a tenth of electric "
|
||||
@@ -113,41 +172,114 @@ def blocks():
|
||||
]),
|
||||
H2("The numbers"),
|
||||
KV([
|
||||
["Capacity", "Launch plant ~0.58M to 0.90M records/yr at 60 % specials (2 semi-automatic "
|
||||
"presses + 1 Classic, 2 shifts; the Duplex sets the pace; estimate; the press fleet "
|
||||
"calculator gives ~0.94M at our planning rates). Second Duplex as growth option: "
|
||||
"~1.0M to 1.5M"],
|
||||
["Capacity", pick(
|
||||
"~0.58M to 0.90M records/yr at 60 % specials (2 semi-automatic presses + 1 Classic, 2 shifts; "
|
||||
"the Duplex sets the pace; estimate; the press fleet calculator gives ~0.94M at our planning "
|
||||
"rates). Second Duplex as a growth step from revenue: ~1.0M to 1.5M",
|
||||
"~1.0M to 1.5M records/yr at 60 % specials, central case 1.25M (4 semi-automatic presses + 1 "
|
||||
"Classic, 2 shifts; the four semi-automatic presses carry the specials, so the Duplex does not "
|
||||
"set the pace; estimate; the press fleet calculator gives ~1.5M at our planning rates). Full "
|
||||
"hall as a later option: ~2.9M to 4.4M")],
|
||||
["Site", "~1,500 m² main building plus a ~379 m² utility yard built for four boiler and four "
|
||||
"chiller modules, on leased land (~4 rai minimum, 6 to 8 rai with expansion); second "
|
||||
"building as expansion"],
|
||||
["Investment, launch plant", "~USD 4.9M to 8.9M (~THB 161M to 292M) including 15% contingency, "
|
||||
"midpoint ~USD 6.9M (~THB 227M). Not in it: a ramp-up reserve of "
|
||||
"~THB 10M to 20M, CD replication, financing costs, the central "
|
||||
"hydraulic plant (not yet costed)"],
|
||||
["The investor's 180M THB question", "**216M THB is a realistic target** for the full equipment "
|
||||
"list with four levers that keep every machine (~203M to "
|
||||
"213M with the ramp-up reserve); **180M holds only if the "
|
||||
"open quotes land low**"],
|
||||
[pick("Investment, Plan A", "Investment, Plan B"), pick(
|
||||
"**~THB 177M (~USD 5.35M), rounded to ~180M THB**: the plan investment, ~THB 161.7M (~USD "
|
||||
"4.90M) at the midpoint with the six levers taken, plus a ramp-up reserve of ~THB 10M to 20M "
|
||||
"(staff and overheads before volume covers them). From the low to the high end of every "
|
||||
"block: ~THB 127M to 226M. Estimates: no quote yet for the Classic, the galvanics line "
|
||||
"(priced at OMS's reference plus 20 %) or the building",
|
||||
"**~THB 224M (~USD 6.79M), rounded to ~225M THB**: the plan investment, ~THB 209.2M (~USD "
|
||||
"6.34M) at the midpoint with everything in, plus a ramp-up reserve of ~THB 10M to 20M (staff "
|
||||
"and overheads before volume covers them). From the low to the high end of every block: ~THB "
|
||||
"162M to 286M. Estimates: no quote yet for the Classic, the galvanics line (priced at OMS's "
|
||||
"reference plus 20 %), the EX 35 or the building")],
|
||||
["Not in the plan price", "**No contingency** (at the 15 % used in the cost documents, ~THB "
|
||||
+ pick("24M", "31M") + " at the midpoint): quotes that land high are "
|
||||
"funded outside the plan or by scope steps (section 8). Also not in "
|
||||
"it: the central hydraulic plant (not yet costed), the archive's mobile "
|
||||
"shelving (to quote), CD replication, financing costs, currency moves, "
|
||||
"and Thai duty and import VAT (the blocks assume BOI promotion)"],
|
||||
["Land lease", "Not negotiated; the plan carries an estimated THB 0.3M to 1.0M per year "
|
||||
"(USD 9k to 30k), section 6.1"],
|
||||
["Operating result, mature year", "Central case at 60 % specials: revenue ~USD 3.65M (~THB 120M), "
|
||||
"EBITDA ~USD 1.73M (~THB 57M), operating profit ~USD 1.21M (~THB "
|
||||
"40M), payback ~3.8 years (2.8 to 5.1 on the 4.9M to 8.9M band); "
|
||||
"break-even on operating profit at ~0.25M records a year. **The "
|
||||
"adverse case loses money:** EBITDA ~USD 0.23M, operating loss "
|
||||
"~USD 0.66M (~THB 22M). Utilisation and price decide the "
|
||||
"outcome, not upside (section 9)"],
|
||||
["Operating result, mature year", pick(
|
||||
"Central case at 60 % specials: revenue ~USD 3.65M (~THB 120M), EBITDA ~USD 1.73M (~THB "
|
||||
"57M), operating profit ~USD 1.34M (~THB 44M); break-even on operating profit at ~0.2M "
|
||||
"records a year. **The adverse case loses money:** EBITDA ~USD 0.23M, operating loss ~USD "
|
||||
"0.39M (~THB 13M); it would need ~0.9M records a year to cover depreciation and the three "
|
||||
"presses make 0.58M at that rate. The solar PPA's power price (~USD 0.03M a year in the "
|
||||
"calculator) is not in these figures. Utilisation and price decide the outcome, not upside "
|
||||
"(section 9)",
|
||||
"Central case at 60 % specials: revenue ~USD 6.05M (~THB 200M), EBITDA ~USD 3.14M (~THB "
|
||||
"104M), operating profit ~USD 2.63M (~THB 87M); break-even on operating profit at ~0.22M "
|
||||
"records a year. **The adverse case only just covers depreciation:** EBITDA ~USD 0.83M, "
|
||||
"operating profit ~USD 0.02M. **All of it needs the records to sell:** ~1.25M a year in the "
|
||||
"central case, ~0.75M of them specials, and no market evidence shows that demand yet. "
|
||||
"Utilisation and price decide the outcome, not upside (section 9)")],
|
||||
["Payback", pick(
|
||||
"~3.1 years on the plan price in the central case (2.2 to 4.0 from the low to the high end of "
|
||||
"the price); ~1.0 year in the favourable case, ~30 years in the adverse case (EBITDA, mature "
|
||||
"year, ramp-up reserve included; estimates)",
|
||||
"~2.2 years on the plan price in the central case (1.6 to 2.8 from the low to the high end of "
|
||||
"the price); ~0.8 year in the favourable case, ~10.5 years in the adverse case (EBITDA, mature "
|
||||
"year, ramp-up reserve included; estimates)")],
|
||||
["First paying release", "**Open.** The August 2026 calendar gives Q4 2028 to mid-2029 (27 to 33 "
|
||||
"months from the start of phase 0), but it was drawn for a one-press "
|
||||
"launch. Commissioning the cutting room and galvanics before the presses "
|
||||
"is not yet in it, and the lathe, galvanics line and stamper-prep build "
|
||||
"times are not on file, so the date stays open until those vendors "
|
||||
"quote. Ordering machinery before the BOI certificate, if allowed, could "
|
||||
"quote." + pick("", " Plan B commissions its second Duplex system last, "
|
||||
"after the Classic.")
|
||||
+ " Ordering machinery before the BOI certificate, if allowed, could "
|
||||
"still pull it forward by 6 to 9 months (section 10)"],
|
||||
["People", "~15 to 25 across shifts at volume (estimate); the launch plant needs most of that "
|
||||
"crew, because two shifts still need press, finishing, galvanics, QC and maintenance "
|
||||
"staff (13 to 19 direct production staff in the revenue model)"],
|
||||
["People", pick(
|
||||
"~15 to 25 across shifts at volume (estimate); the launch plant needs most of that "
|
||||
"crew, because two shifts still need press, finishing, galvanics, QC and maintenance "
|
||||
"staff (13 to 19 direct production staff in the revenue model)",
|
||||
"~15 to 25 across shifts at volume (estimate); two shifts need press, finishing, galvanics, QC "
|
||||
"and maintenance staff whether the plant runs three presses or five, so Plan B's five presses "
|
||||
"run on the same direct crews (13 to 19 direct production staff in the revenue model) and "
|
||||
"spread them over more records")],
|
||||
["The ask", pick(
|
||||
"~THB 177M (~USD 5.35M), the ~180M THB plan, released in tranches against milestones "
|
||||
"(section 8), starting with phase 0 (~THB 1.3M to 2.6M). BOI caps debt-to-equity at 3:1, so "
|
||||
"at least a quarter is equity: ~THB 44M (arithmetic, before financing costs)",
|
||||
"~THB 224M (~USD 6.79M), the ~225M THB plan, released in tranches against milestones "
|
||||
"(section 8), starting with phase 0 (~THB 1.3M to 2.6M). BOI caps debt-to-equity at 3:1, so "
|
||||
"at least a quarter is equity: ~THB 56M (arithmetic, before financing costs)")],
|
||||
]),
|
||||
H2("Two versions of this plan"),
|
||||
P("This plan comes in two versions, built from the same documents and the same machine choices. " + pick(
|
||||
"This document is **Plan A**. The other version, **Plan B (~225M THB)**, puts the second Duplex "
|
||||
"system in at launch, for five presses, and takes none of the six levers. ",
|
||||
"This document is **Plan B**. The other version, **Plan A (~180M THB)**, launches with three "
|
||||
"presses (one Duplex system and the Classic), takes six cost levers and keeps the second Duplex "
|
||||
"as a growth step from revenue. ")
|
||||
+ "Both carry the ramp-up reserve and neither carries a contingency. What decides between them is "
|
||||
"demand: Plan B's central case needs about 70 % more records sold than Plan A's (1.25 against 0.74 "
|
||||
"million a year), and the market validation gate (section 3.2) is the evidence for that. Section 8 "
|
||||
"sets the two side by side."),
|
||||
T(["", "Plan A", "Plan B"], [
|
||||
["Plan price (ramp-up reserve in, no contingency)", "~THB 177M (~USD 5.35M); ~127M to 226M from "
|
||||
"the low to the high end", "~THB 224M (~USD 6.79M); ~162M to 286M from the low to the high end"],
|
||||
["Presses", "3: one Duplex system (2 semi-automatic) and one Classic",
|
||||
"5: two Duplex systems (4 semi-automatic) and one Classic"],
|
||||
["Records a year at 60 % specials", "~0.58M to 0.90M (central 0.74M)",
|
||||
"~1.0M to 1.5M (central 1.25M)"],
|
||||
["EBITDA, central case", "~USD 1.73M (~THB 57M)", "~USD 3.14M (~THB 104M)"],
|
||||
["Operating profit, central case", "~USD 1.34M (~THB 44M)", "~USD 2.63M (~THB 87M)"],
|
||||
["Payback on the plan price, central case", "~3.1 years (2.2 to 4.0)", "~2.2 years (1.6 to 2.8)"],
|
||||
["Adverse case", "Loses money: EBITDA ~USD 0.23M, operating loss ~USD 0.39M",
|
||||
"Just covers depreciation: EBITDA ~USD 0.83M, operating profit ~USD 0.02M"],
|
||||
["What Plan A gives up, what Plan B needs", "At launch: solar through a PPA (very likely without "
|
||||
"the BOI solar measure), no confocal or profiler, no visitor corridor or tours, no cassette or "
|
||||
"CD-R, a rented crane; Chinese-made boilers and compressor",
|
||||
"~1.25M records sold a year, ~0.75M of them specials, against 0.74M for Plan A; no market "
|
||||
"evidence of that demand yet"],
|
||||
], widths_mm=[42, 64, 64], font_pt=8.5,
|
||||
caption="Estimates: mature year at 60 % specials, from the revenue model; payback counted on the "
|
||||
"whole plan price including the reserve. Central EBITDA margins of ~47 % (A) and ~52 % (B) "
|
||||
"are far above the 15 to 25 % pressing plants earn; read the adverse case as the honest one."),
|
||||
H2("Where we are, and what we ask"),
|
||||
P("The project is at the planning stage. Industry outreach has run for several years. Alexander and "
|
||||
"Simona attended **Making Vinyl Europe in Haarlem** (30 September to 2 October 2026): most people "
|
||||
@@ -170,18 +302,33 @@ def blocks():
|
||||
CALL("What the investor is asked to fund now", [
|
||||
"**Phase 0 (next 3 to 6 months): ~USD 40k to 80k (~THB 1.3M to 2.6M)** for the BOI consultant, "
|
||||
"Thai legal work on the lease and zoning, a soil boring test, and the requests that settle most "
|
||||
"of the investment band: the Newbilt re-quote for the Duplex and the Classic, a Pheenix quote for "
|
||||
"the galvanics line, the building price request with the soil test, and metrology distributor "
|
||||
"quotes.",
|
||||
"**Then the launch plant round, targeted at ~THB 216M (~USD 6.55M)**, released in tranches "
|
||||
"against milestones: BOI certificate and lease signed, long-lead orders (lathe, galvanics, "
|
||||
"stamper prep, presses, first boiler and chiller modules), building contract, fit-out, "
|
||||
"commissioning in sequence (section 8.3). The full estimate band is THB 161M to 292M; section "
|
||||
"8.2 shows the levers that bring the midpoint inside 216M.",
|
||||
"**Decisions needed from the investor:** the equity/debt mix (BOI requires debt-to-equity of at "
|
||||
"most 3:1); CD replication, yes or no (it must be in the BOI application from the start); the "
|
||||
"steam fuel, electric or biomass; and which budget levers to take (solar through a PPA, "
|
||||
"metrology bought in two steps, the visitor corridor later).",
|
||||
"of the investment band: " + pick(
|
||||
"the Newbilt re-quote for the Duplex system (with an EX 35 price) and the Classic, a Pheenix "
|
||||
"quote for the galvanics line, the building price request with the soil test, metrology "
|
||||
"distributor quotes and a solar PPA offer.",
|
||||
"the Newbilt re-quote for both Duplex systems (with an EX 35 price) and the Classic, a Pheenix "
|
||||
"quote for the galvanics line, the building price request with the soil test, and metrology "
|
||||
"distributor quotes."),
|
||||
pick(
|
||||
"**Then the Plan A round, ~THB 177M (~USD 5.35M), rounded to ~180M THB**, including the "
|
||||
"ramp-up reserve and without contingency, released in tranches against milestones: BOI "
|
||||
"certificate and lease signed, long-lead orders (lathe, galvanics, stamper prep, presses, "
|
||||
"boiler and chiller modules), building contract, fit-out, commissioning in sequence "
|
||||
"(section 8). From the low to the high end of every block the plan runs from ~THB 127M to "
|
||||
"226M; quotes that land high are funded outside the plan or by scope steps.",
|
||||
"**Then the Plan B round, ~THB 224M (~USD 6.79M), rounded to ~225M THB**, including the "
|
||||
"ramp-up reserve and without contingency, released in tranches against milestones: BOI "
|
||||
"certificate and lease signed, long-lead orders (lathe, galvanics, stamper prep, both Duplex "
|
||||
"systems and the Classic, boiler and chiller modules), building contract, fit-out, "
|
||||
"commissioning in sequence (section 8). From the low to the high end of every block the plan "
|
||||
"runs from ~THB 162M to 286M; quotes that land high are funded outside the plan or by scope "
|
||||
"steps."),
|
||||
"**Decisions needed from the investor:** which version to fund, Plan A or Plan B (demand decides "
|
||||
"first, from market validation; then the Classic, Pheenix and EX 35 quotes, the solar PPA offer "
|
||||
"and the building quote); the equity/debt mix (BOI requires debt-to-equity of at most 3:1, so at "
|
||||
"least ~THB " + pick("44M of Plan A's ~177M", "56M of Plan B's ~224M") + " is equity); CD "
|
||||
"replication, yes or no (it must be in the BOI application from the start); and the steam fuel, "
|
||||
"electric or biomass.",
|
||||
"**Co-investment:** Ploy Printing, the Chiang Mai print and packaging house that will produce "
|
||||
"the plant's jackets and sleeves, has expressed the intention to invest alongside the lead "
|
||||
"investor. Terms are not yet discussed; the intended structure is described in section 12.",
|
||||
@@ -189,6 +336,12 @@ def blocks():
|
||||
|
||||
# ----------------------------------------------- 2 reading guide
|
||||
H1("2. How to read the numbers"),
|
||||
P("**Two versions.** This business plan comes in two versions, built from the same documents: "
|
||||
"**Plan A (~180M THB)**, the launch plant's three presses with six cost levers, and **Plan B "
|
||||
"(~225M THB)**, five presses with everything in. Both plan prices include the ramp-up reserve and "
|
||||
"neither carries a contingency. This document is **" + label() + "**. Chapters that do not depend "
|
||||
"on the choice read the same in both; where the plans differ, this version gives its own figures, "
|
||||
"and sections 1 and 8 compare the two."),
|
||||
P("Every figure in this plan carries one of three confidence levels. Where a table does not say, "
|
||||
"the basis column or caption does."),
|
||||
T(["Label", "Meaning", "Examples"], [
|
||||
@@ -202,15 +355,18 @@ def blocks():
|
||||
"pressing invoices (August 2026); the PEA electricity tariff; vendor "
|
||||
"flyers and datasheets; reported biomass fuel prices; BOI measures"],
|
||||
["Estimate", "Engineering ratio or industry norm with no vendor confirmation. Treat as "
|
||||
"plus or minus 30 to 50%.", "Building cost per m²; the Pheenix galvanics line and the "
|
||||
"Newbilt Classic (no price on file); the cutting room "
|
||||
"beyond the lathe; metrology stack; land lease; all "
|
||||
"cassette and CD figures"],
|
||||
"plus or minus 30 to 50%.", "Building cost per m²; the Pheenix galvanics line (no "
|
||||
"Pheenix price on file; priced at OMS's reference plus "
|
||||
"20 %) and the Newbilt Classic (no price on file); the "
|
||||
"cutting room beyond the lathe; metrology stack; land "
|
||||
"lease; " + pick("the solar PPA power price; ", "")
|
||||
+ "all cassette and CD figures"],
|
||||
], widths_mm=[22, 70, 78]),
|
||||
P("Currency: USD and THB at 1 USD = 33 THB (5 August 2026). Vendor quotes issued in EUR or GBP are "
|
||||
"kept in their currency next to their source and converted at 1 EUR = 1.155 USD and "
|
||||
"1 GBP = 1.35 USD. Currency exposure is real and is discussed in section 8.5."),
|
||||
P("Deliberately **not** in this plan: a financing structure or terms (to be agreed with the investor); "
|
||||
P("Deliberately **not** in this plan: a contingency in the plan price (section 8); a financing "
|
||||
"structure or terms (to be agreed with the investor); "
|
||||
"a signed customer; a signed lease; firm quotes for the Classic, the galvanics line, the metrology "
|
||||
"stack or the building; a price for the central hydraulic plant; and a year-by-year cash model. "
|
||||
"Each of these is a named next step in section 14."),
|
||||
@@ -236,7 +392,9 @@ def blocks():
|
||||
"is the gap. It is also the plan's biggest assumption: that enough regional customers will pay for "
|
||||
"a closer, faster, more accountable plant at a price that works. That pricing power is unproven. "
|
||||
"The Haarlem trade show produced strong supplier interest but no buyer prices, and the market "
|
||||
"validation gate exists to test it before capital is committed."),
|
||||
"validation gate exists to test it before capital is committed." + pick(
|
||||
"", " Plan B makes the assumption heavier: its central case sells ~1.25 million records a year, "
|
||||
"~0.75 million of them special editions, against 0.74 million for the three-press Plan A.")),
|
||||
H2("3.3 What the market shows: two price points"),
|
||||
P("Two sets of real prices now exist: invoices from the one Thai pressing shop we have seen, and the "
|
||||
"published calculator of a European plant. Neither is used to re-base the financial model, which "
|
||||
@@ -260,9 +418,12 @@ def blocks():
|
||||
P("What the tour showed: the shop operates from a small non-industrial premises; it does not plate "
|
||||
"(stampers are bought in from abroad and resold); there is no temperature, humidity or particulate "
|
||||
"control on the pressing floor; and it runs two Newbilt presses, a Classic fully automatic and one "
|
||||
"semi-automatic, about 190 to 210 records an hour at nameplate. That is a real capital fleet. Our "
|
||||
"launch plant's three presses (248 to 288 records an hour at nameplate, planned for two shifts) "
|
||||
"out-press it on paper, which the one-press launch of draft 0.1 did not. Neither figure is "
|
||||
"semi-automatic, about 190 to 210 records an hour at nameplate. That is a real capital fleet. " + pick(
|
||||
"Our launch plant's three presses (248 to 288 records an hour at nameplate, planned for two "
|
||||
"shifts) ",
|
||||
"Plan B's five presses (four semi-automatic at 60 to 80 records an hour each plus the Classic at "
|
||||
"~128, 368 to 448 records an hour at nameplate, planned for two shifts) ")
|
||||
+ "out-press it on paper, which the one-press launch of draft 0.1 did not. Neither figure is "
|
||||
"measured output: their shifts and order book were not observed."),
|
||||
H3("A European plant: Record Industry's calculator"),
|
||||
P("Record Industry (Haarlem, Netherlands) publishes an online calculator. For a 12-inch 140 g black "
|
||||
@@ -287,8 +448,8 @@ def blocks():
|
||||
"been asked (roadmap item 1)."),
|
||||
P("Four readings follow, each with its caveat:"),
|
||||
B([
|
||||
"**Our assumed price sits between the two markets.** The plan prices a record at USD 3.50 to 4.60 "
|
||||
"blended (115 to 150 THB). The Thai market pays 535 to 780 THB on a comparable scope, several "
|
||||
"**Our assumed price sits between the two markets.** The plan prices a record at USD 3.76 to 5.27 "
|
||||
"blended at 60 % specials (124 to 174 THB; 3.50 to 4.60 at a standard-heavy mix). The Thai market pays 535 to 780 THB on a comparable scope, several "
|
||||
"times more, even after allowing 100 to 150 THB for the jacket. A European plant's published "
|
||||
"price for black pressing with labels and an inner sleeve (~USD 2.43 at 300) is below our "
|
||||
"assumption, though our blend also carries colour work and assembly. Two caveats: a sole "
|
||||
@@ -324,7 +485,9 @@ def blocks():
|
||||
"add-on with modest capital. CDs remain a large format in Asia (Japan and Korea in particular), "
|
||||
"but industrial CD replication is an established, price-competitive business with existing "
|
||||
"capacity across the region. Sections 4.9 and 4.10 lay out both formats and the two very "
|
||||
"different CD routes; cassette and CD-R duplication are in the launch plant."),
|
||||
"different CD routes; " + pick(
|
||||
"Plan A adds cassette and CD-R duplication after launch, as a growth step outside its price.",
|
||||
"cassette and CD-R duplication are in Plan B from launch.")),
|
||||
|
||||
# ------------------------------------------ 4 anatomy of the plant
|
||||
H1("4. Anatomy of a top-notch plant: the full chain"),
|
||||
@@ -341,62 +504,63 @@ def blocks():
|
||||
T(["What a top-notch plant needs", "Why it matters", "This plan", "When"], [
|
||||
["A quiet, vibration-free cutting room with a modern lathe", "The groove is born here; every "
|
||||
"defect propagates to every record", "Sillitoe SDMS complete cutting system in-house; Agnew "
|
||||
"Type 612 as the other candidate", "Launch plant, "
|
||||
"commissioned first"],
|
||||
"Type 612 as the other candidate", LP + ", commissioned first"],
|
||||
["In-house galvanics with zero-discharge water", "The regional bottleneck; enables represses in "
|
||||
"days and short runs", "Pheenix Alpha line (PASU, PPPU, one PDPU, PMPB); evaporator-based "
|
||||
"zero discharge and DI water in a treatment building next to it",
|
||||
"Launch plant, commissioned first"],
|
||||
LP + ", commissioned first"],
|
||||
["Stamper preparation machines", "Turns a raw nickel shell into a press-ready part",
|
||||
"Sibert back-finisher, punch, coiner (USD 250k budget confirmed)", "Launch plant, with "
|
||||
"galvanics"],
|
||||
"Sibert back-finisher, punch, coiner (USD 250k budget confirmed)", LP + ", with galvanics"],
|
||||
["A mixed press fleet", "Semi-automatic for colour and short runs, automatic for long runs",
|
||||
"Newbilt Duplex system (2 presses, main + colour extruder) and one Newbilt Classic",
|
||||
"Launch plant; second Duplex as growth option"],
|
||||
pick("Newbilt Duplex system (2 presses, main + colour extruder) and one Newbilt Classic",
|
||||
"Two Newbilt Duplex systems (4 presses, each system with main + colour extruder) and one "
|
||||
"Newbilt Classic"),
|
||||
pick("Launch plant; second Duplex as growth option",
|
||||
"At launch, second Duplex system commissioned last; full hall as an option")],
|
||||
["Steam, cooling and compressed air engineered locally", "The largest energy loads; efficiency "
|
||||
"lives here", "Boiler hall and chiller compound for four modules each; 2 x 500 kg/h boilers and "
|
||||
"2 x 250 kW chillers; heat recovery designed in", "Launch plant; modules added "
|
||||
"with presses"],
|
||||
"lives here", "Boiler hall and chiller compound for four modules each; " + pick(
|
||||
"2 x 500 kg/h boilers (Chinese route) and 2 x 250 kW chillers",
|
||||
"2 x 500 kg/h boilers and 3 x 250 kW chillers") + "; heat recovery designed in",
|
||||
LP + "; modules added with presses"],
|
||||
["Whole-plant climate and particulate control", "Moisture and dust are the two classic record "
|
||||
"defects", "20 to 26 °C, 35 to 60% RH, filtration for the burning season, tighter in clean "
|
||||
"zones", "Launch plant"],
|
||||
"zones", LP],
|
||||
["Metrology for the metal parts", "Data-backed accept/reject before a stamper is mounted",
|
||||
"Laser confocal, wide-area profiler, XRF thickness, inline vision", "Launch plant (confocal "
|
||||
"and profiler can follow "
|
||||
"from revenue)"],
|
||||
pick("XRF thickness and inline vision at launch; laser confocal and wide-area profiler from "
|
||||
"revenue",
|
||||
"Laser confocal, wide-area profiler, XRF thickness, inline vision"),
|
||||
pick("Launch plant (confocal and profiler from revenue)", "At launch, full stack")],
|
||||
["Layered QC for every record", "Catch defects at line speed without playing every record",
|
||||
"100% optical inspection, per-cycle telemetry, sampled audio comparison", "Launch plant"],
|
||||
"100% optical inspection, per-cycle telemetry, sampled audio comparison", LP],
|
||||
["Traceability from file to shipment", "Complaints resolve backwards; customers see their "
|
||||
"order; machine data access is a purchasing condition", "ERPNext as the only system of record, "
|
||||
"machine data keyed to it, customer "
|
||||
"portal", "Launch plant (v1 before "
|
||||
"the machines arrive)"],
|
||||
"portal", LP + " (v1 before the "
|
||||
"machines arrive)"],
|
||||
["A materials lab", "PVC lots differ; a bad lot is a noisy run", "Per-lot gate: moisture, heat "
|
||||
"stability, colour, density, granulate; release by test pressing", "Launch plant (day-one "
|
||||
"tier)"],
|
||||
"stability, colour, density, granulate; release by test pressing", LP + " (day-one tier)"],
|
||||
["A packaging partner and packaging QC", "Jackets are the path that slips; the wrong "
|
||||
"record in the right jacket is the classic error", "Ploy Printing (Chiang Mai) for jackets, "
|
||||
"sleeves, J-cards; matrix code scanned "
|
||||
"against jacket barcode", "Launch plant"],
|
||||
"against jacket barcode", LP],
|
||||
["An archive for fathers and mothers", "Irreplaceable metal; repress economics",
|
||||
"Father and mother of every side; fire-rated, climate-controlled room, clean-agent suppression, "
|
||||
"mobile shelving (to quote)", "Launch plant"],
|
||||
"mobile shelving (to quote)", LP],
|
||||
["Renewable energy and closed-loop water", "Cost, resilience, brand, BOI tax value",
|
||||
"~247 kWp roof PV, 271 kWh battery, closed cooling loop, zero process discharge", "Launch plant "
|
||||
"(PV possibly "
|
||||
"through a "
|
||||
"solar PPA)"],
|
||||
pick("~247 kWp roof PV and 271 kWh battery through a solar PPA (installer-owned), closed cooling "
|
||||
"loop, zero process discharge",
|
||||
"~247 kWp roof PV and 271 kWh battery (owned), closed cooling loop, zero process discharge"),
|
||||
pick("Launch plant (PV and battery through a solar PPA)", "At launch")],
|
||||
["Trained people and a safety program", "Steam at 10 bar, hydraulics at 180 bar, plating "
|
||||
"chemistry", "Vendor commissioning training, in-house program, PPE, clean rooms", "Launch plant; "
|
||||
"galvanics "
|
||||
"hiring first"],
|
||||
"chemistry", "Vendor commissioning training, in-house program, PPE, clean rooms",
|
||||
LP + "; galvanics hiring first"],
|
||||
["An ordering platform for every customer", "Short runs need a channel; transparency is the "
|
||||
"brand", "Itemised price calculator, upload checks, fan-funded campaigns (section 4.8)",
|
||||
"Calculator early; campaigns after first releases ship"],
|
||||
["Cassette and CD lines", "Same customers, one order, one shipment", "In-house cassette "
|
||||
"duplication; CD-R duplication; CD replication as a separate option", "Launch plant "
|
||||
"(replication only if "
|
||||
"chosen)"],
|
||||
"duplication; CD-R duplication; CD replication as a separate option",
|
||||
pick("Growth step after launch, not in the plan price (replication only if chosen)",
|
||||
"At launch (replication only if chosen)")],
|
||||
], widths_mm=[40, 45, 55, 30], font_pt=8.5),
|
||||
|
||||
H2("4.1 Mastering and lacquer cutting"),
|
||||
@@ -453,7 +617,8 @@ def blocks():
|
||||
"treatment and metal recovery system. The chemistry (silver nitrate, nickel salts) sets the safety "
|
||||
"and permitting requirements: decontamination procedures, PPE, locked chemical storage, eyewash "
|
||||
"and emergency shower, and hazardous-substance registration. Because galvanics is now in the "
|
||||
"launch plant, the site's zoning and the first factory licence have to allow electroplating from "
|
||||
+ pick("launch plant", "plant from launch")
|
||||
+ ", the site's zoning and the first factory licence have to allow electroplating from "
|
||||
"the start."),
|
||||
P("**Who supplies it.** The plan is a **Pheenix Alpha** line (Sweden): the PASU automatic silvering "
|
||||
"unit, the PPPU pre-plating unit (four masters at once), one PDPU dual plating unit (two cells, up "
|
||||
@@ -470,12 +635,16 @@ def blocks():
|
||||
"gives about 15 to 30 minutes for pre-plate, ~75 minutes for a father, about an hour for a mother "
|
||||
"and ~45 minutes for a stamper (silvering and bench times are estimates). With loading and rinsing, "
|
||||
"a cell turns a part in about 1 to 1.5 hours, so one PDPU makes 20 to 32 parts in a two-shift day "
|
||||
"against 8 to 20 parts a working day even for the larger five-press fleet. **One PDPU covers the "
|
||||
"against 8 to 20 parts a working day "
|
||||
+ pick("even for the larger five-press fleet", "for Plan B's five presses")
|
||||
+ ". **One PDPU covers the "
|
||||
"demand; a second would buy redundancy, not capacity.** By OMS's rule of thumb (one person runs "
|
||||
"about 20 stampers a day) that is one galvanics operator per shift."),
|
||||
P("**Cost and risk.** Estimated USD 320k to 650k (THB 10.6M to 21.4M) for the Pheenix line, with no "
|
||||
"Pheenix price on file; OMS's reference prices sit at the low end, and pricing near them is one of "
|
||||
"the four budget levers. The zero-discharge and DI water plant adds an estimated USD 97k to 258k "
|
||||
P("**Cost and risk.** Pheenix has not quoted, so the plan prices its line at **OMS's reference plus "
|
||||
"20 %**: OMS's 4-cell wet room with the EUR 10,000 know-how transfer (nobody on the team has run a "
|
||||
"plating room), EUR 234,000 to 321,000, times 1.2 gives EUR 280,800 to 385,200, ~USD 324k to 445k "
|
||||
"(THB 10.7M to 14.7M; an estimate, replacing the earlier estimate of USD 320k to 650k). The "
|
||||
"zero-discharge and DI water plant adds an estimated USD 97k to 258k "
|
||||
"and its building USD 52k to 87k. Galvanics is the hardest skill to hire and it is now on the "
|
||||
"path to the first release, because the presses need its stampers. Sibert advised getting each "
|
||||
"main step right and earning some return before every manufacturing step is in place; that advice "
|
||||
@@ -513,30 +682,48 @@ def blocks():
|
||||
"Duplex share mould inserts, so the plant runs one mould family, one set of spares and one service "
|
||||
"relationship; the cost is a single-vendor dependency."),
|
||||
T(["Machine", "Role", "Basis", "Cost"], [
|
||||
["Newbilt Duplex system (Alsdorf, Germany)", "Two HRP 12 hydraulic presses (~150 t), EX 50 main "
|
||||
[pick("Newbilt Duplex system (Alsdorf, Germany)", "Newbilt Duplex system 1 (Alsdorf, Germany)"),
|
||||
"Two HRP 12 hydraulic presses (~150 t), EX 50 main "
|
||||
"extruder and EX 35 colour extruder, 12-inch book moulds for 140/180 g, trimmer, label dry oven, "
|
||||
"shrink wrapper, PVC grinder, label punch, spindles and plates; one operator's cell",
|
||||
"Quoted: EUR 200,500 (~USD 232k) for the Single 2.1 system incl. sea freight, June 2024, plus "
|
||||
"the quoted second press and extruder (~USD 115k); expired, re-quote required with build time",
|
||||
"USD 350k to 370k (THB 11.6M to 12.2M)"],
|
||||
*pick([], [[
|
||||
"Newbilt Duplex system 2", "Two more HRP 12 presses with an EX 50 main and an EX 35 colour "
|
||||
"extruder, on the same central hydraulics; commissioned after the Classic",
|
||||
"Estimate on the 2024 quote: two presses at the quoted ~USD 115k per press and extruder set, "
|
||||
"plus a hydraulic unit and the EX 35; no EX 35 price on file",
|
||||
"USD 230k to 300k (THB 7.6M to 9.9M)"]]),
|
||||
["Newbilt Classic", "Fully automatic press with built-in extruder, automatic patty, label and "
|
||||
"record handling; 28 s cycle, ~128 records/h at 180 g; Siemens safety PLC with OPC UA; "
|
||||
"vendor-claimed 95% yield and uptime", "Estimate: placeholder band; **no Newbilt price on "
|
||||
"file**", "USD 290k to 460k (THB 9.6M to 15.2M)"],
|
||||
["Second Duplex system (growth option)", "Two more semi-automatic presses on the same central "
|
||||
"hydraulics; floor, utility positions and ring-main tees reserved", "Estimate; not in the "
|
||||
"investment",
|
||||
"~USD 230k to 300k"],
|
||||
*pick([["Second Duplex system (growth option)", "Two more semi-automatic presses on the same central "
|
||||
"hydraulics; floor, utility positions and ring-main tees reserved", "Estimate; not in the "
|
||||
"investment",
|
||||
"~USD 230k to 300k"]], []),
|
||||
], widths_mm=[34, 66, 42, 28], font_pt=8.5),
|
||||
P("The Pheenix Alpha AD12 automatic press left the plan in October 2026 and stays the comparison if "
|
||||
"the Classic re-quote disappoints."),
|
||||
P("**What Newbilt deliberately excludes**, and what is engineered and sourced locally: steam and "
|
||||
"cooling. At Newbilt's per-machine figures the three presses draw about 450 to 540 kg/h of steam "
|
||||
"at 10 bar / 180 °C and up to ~390 kW of cooling on a hot afternoon (estimates; the Classic is "
|
||||
"counted as one press and extruder until Newbilt states its own figures). They are met by **two "
|
||||
"500 kg/h boiler modules and two 250 kW chiller modules**, in a boiler hall and an open chiller "
|
||||
"compound built for four modules each; a second Duplex adds a third chiller module, and the fourth "
|
||||
"positions are reserve and growth. The presses share one central hydraulic plant and one "
|
||||
"cooling. " + pick(
|
||||
"At Newbilt's per-machine figures the three presses draw about 450 to 540 kg/h of steam "
|
||||
"at 10 bar / 180 °C and up to ~390 kW of cooling on a hot afternoon (estimates; the Classic is "
|
||||
"counted as one press and extruder until Newbilt states its own figures). They are met by **two "
|
||||
"500 kg/h boiler modules (B-1, B-2) and two 250 kW chiller modules (CH-1, CH-2)**, in a boiler "
|
||||
"hall and an open chiller compound built for four modules each; a second Duplex adds a third "
|
||||
"chiller module, and the fourth positions are reserve and growth. Plan A buys the two boiler "
|
||||
"modules through the Chinese route: ASME-stamped 1.25 MPa units from makers with Thai "
|
||||
"references, installed by a Thai contractor and verified under the Thai rules for imported "
|
||||
"boilers (section 5.4). ",
|
||||
"At Newbilt's per-machine figures the five presses draw about 750 to 900 kg/h of steam "
|
||||
"at 10 bar / 180 °C and up to ~650 kW of cooling with extruders and hydraulics on a hot "
|
||||
"afternoon (estimates; the Classic is counted as one press and extruder until Newbilt states "
|
||||
"its own figures). They are met by **two 500 kg/h boiler modules (B-1, B-2) and three 250 kW "
|
||||
"chiller modules (CH-1 to CH-3)**, in a boiler hall and an open chiller compound built for four "
|
||||
"modules each; the fourth positions are reserve and growth. ")
|
||||
+ "The presses share one central hydraulic plant and one "
|
||||
"compressed-air plant through ring mains with a valved tee at every press position, so a new press "
|
||||
"is connected without stopping the others; the standby pump set, accumulators and ring main are "
|
||||
"not yet costed. These are the largest energy systems in the plant and the reason the efficiency "
|
||||
@@ -546,7 +733,7 @@ def blocks():
|
||||
"materials and finished goods. A press weighs 1,350 kg on under one square metre, so the floor slab "
|
||||
"must carry several tonnes per square metre and is a building-selection criterion; the floor must "
|
||||
"be flat, non-slip and solvent-resistant."),
|
||||
T(["Stage", "Fleet", "Rough output per year"], [
|
||||
T(["Stage", "Fleet", "Rough output per year"], pick([
|
||||
["Launch plant", "1 Duplex system (2 semi-automatic) + 1 Classic, 2 shifts",
|
||||
"~0.58 to 0.90 million records at 60 % specials (0.71 to 0.97 at ~20 %)"],
|
||||
["Growth option: second Duplex", "4 semi-automatic + 1 Classic, 2 shifts; room reserved, not in "
|
||||
@@ -554,13 +741,26 @@ def blocks():
|
||||
["Full hall (option)", "5 Duplex systems + 4 Classics, the press hall laid out for Duplex "
|
||||
"(special pressings first, ~73/27 by floor); a utility phase of its own",
|
||||
"~2.9 to 4.4 million records at 60 % specials (estimate)"],
|
||||
], widths_mm=[40, 80, 50],
|
||||
caption="Basis: semi-automatic 60 to 80 records/h assumed; Classic ~128/h (vendor flyer); 16 h/day, "
|
||||
"300 days/yr, 60 to 70% overall equipment effectiveness; specials (60 % and more) only on the Duplex. "
|
||||
"The launch plant is 248 to 288 records/h at nameplate, but at 60 % specials the Duplex caps "
|
||||
"it at 200 to 267/h, ~120 to 187/h after effectiveness; the press fleet calculator at "
|
||||
"the team's planning rates gives ~0.94 million. Neither option is in the revenue model "
|
||||
"or the investment."),
|
||||
], [
|
||||
["Plan B at launch", "2 Duplex systems (4 semi-automatic) + 1 Classic, 2 shifts",
|
||||
"~1.0 to 1.5 million records at 60 % specials (central case 1.25 million)"],
|
||||
["Full hall (option)", "5 Duplex systems + 4 Classics, the press hall laid out for Duplex "
|
||||
"(special pressings first, ~73/27 by floor); a utility phase of its own",
|
||||
"~2.9 to 4.4 million records at 60 % specials (estimate)"],
|
||||
]), widths_mm=[40, 80, 50],
|
||||
caption=pick(
|
||||
"Basis: semi-automatic 60 to 80 records/h assumed; Classic ~128/h (vendor flyer); 16 h/day, "
|
||||
"300 days/yr, 60 to 70% overall equipment effectiveness; specials (60 % and more) only on the "
|
||||
"Duplex. The launch plant is 248 to 288 records/h at nameplate, but at 60 % specials the "
|
||||
"Duplex caps it at 200 to 267/h, ~120 to 187/h after effectiveness; the press fleet calculator "
|
||||
"at the team's planning rates gives ~0.94 million. Neither option is in the revenue model "
|
||||
"or the investment.",
|
||||
"Basis: semi-automatic 60 to 80 records/h assumed; Classic ~128/h (vendor flyer); 16 h/day, "
|
||||
"300 days/yr, 60 to 70% overall equipment effectiveness; specials (60 % and more) only on the "
|
||||
"Duplex systems. The five presses are 368 to 448 records/h at nameplate; the four "
|
||||
"semi-automatic presses (240 to 320/h) carry the specials, so at 60 % the Duplex does not "
|
||||
"limit the output; the press fleet calculator at the team's planning rates gives ~1.5 million. "
|
||||
"The full hall is in neither the revenue model nor the investment.")),
|
||||
P("**On the 60 to 70% effectiveness figure.** Newbilt publishes 95% yield and 95% uptime for the "
|
||||
"Classic. We have not adjusted the plan on that basis, deliberately: a vendor's machine uptime "
|
||||
"excludes stamper and mould changes, colour changeovers, compound lot changes, first-article QC "
|
||||
@@ -687,16 +887,21 @@ def blocks():
|
||||
"(National Audio Company in the US is the largest tape source; shell moulders exist in China and "
|
||||
"should be sought in Thailand). Supply risk is real and the plan is to hold stock. **Positioning:** "
|
||||
"cassettes are a boutique add-on for the same indie customers, with shells in colours that match "
|
||||
"the record. **Effect on the plan:** in the launch plant, starting at tier A or a small tier B; "
|
||||
"cassette and CD-R together are one estimated block of USD 55k to 190k in the investment; "
|
||||
"schedule-neutral; fits inside the building programme; the activity goes into the BOI "
|
||||
"application. Moving both later is one of the scope cuts that would be needed to approach "
|
||||
"180M THB."),
|
||||
"the record. **Effect on the plan:** " + pick(
|
||||
"Plan A adds cassette and CD-R duplication after launch, as a growth step from revenue, "
|
||||
"starting at tier A or a small tier B. Together they are one estimated block of USD 55k to "
|
||||
"190k (~THB 4.0M at the midpoint), not in Plan A's price: moving them later is one of its six "
|
||||
"cost levers. They fit inside the building programme, and the activity can still go into the "
|
||||
"BOI application from the start (to confirm with the BOI consultant).",
|
||||
"in Plan B from launch, starting at tier A or a small tier B; cassette and CD-R together are "
|
||||
"one estimated block of USD 55k to 190k in the investment; schedule-neutral; fits inside the "
|
||||
"building programme; the activity goes into the BOI application. Plan A, the other version, "
|
||||
"moves both to after launch as one of its cost levers.")),
|
||||
|
||||
H2("4.10 CD: two very different routes (investor decision)"),
|
||||
P("'CD manufacturing' can mean two things that differ by two orders of magnitude in capital, and the "
|
||||
"investor is asked to choose."),
|
||||
T(["", "Option A: CD-R duplication", "Option B: CD replication"], [
|
||||
T(["", "Route 1: CD-R duplication", "Route 2: CD replication"], [
|
||||
["What it is", "Blank recordable discs are burned and printed by robotic duplicators. The "
|
||||
"result is a CD-R, playable in almost all players, with full-colour on-disc print.",
|
||||
"Discs are injection-moulded from polycarbonate against a nickel stamper (made by glass "
|
||||
@@ -726,14 +931,19 @@ def blocks():
|
||||
"electroforming skill set and the clean-room discipline of the vinyl galvanics room, but not "
|
||||
"the equipment"],
|
||||
], widths_mm=[24, 68, 78], font_pt=8.5,
|
||||
caption="Estimate throughout. Option B figures are order-of-magnitude and would need a dedicated "
|
||||
caption="Estimate throughout. Route 2 figures are order-of-magnitude and would need a dedicated "
|
||||
"feasibility study."),
|
||||
P("**Recommendation.** Option A is in the launch plant: it is cheap, schedule-neutral, and serves the "
|
||||
"plant's customers. Treat Option B as a separate project with its own market study, because CD "
|
||||
P("**Recommendation.** " + pick(
|
||||
"Route 1 is the CD route for this plant: it is cheap, schedule-neutral, and serves the plant's "
|
||||
"customers; Plan A adds it after launch together with the cassette line. ",
|
||||
"Route 1 is in Plan B from launch: it is cheap, schedule-neutral, and serves the plant's "
|
||||
"customers. ")
|
||||
+ "Treat Route 2 as a separate project with its own market study, because CD "
|
||||
"replication is a mature, competitive, declining business outside Asia's strongholds and would "
|
||||
"add USD 1.5M to 4.0M and a second building to a plan whose vinyl economics do not depend on it. "
|
||||
"If the investor wants Option B, the decision must be taken before the BOI application is filed "
|
||||
"(section 7), and the second building should be designed for it. This plan's totals include "
|
||||
"Option A only; Option B is shown as a separate line."),
|
||||
"If the investor wants Route 2, the decision must be taken before the BOI application is filed "
|
||||
"(section 7), and the second building should be designed for it. " + pick(
|
||||
"Plan A's price includes neither route; Route 1 is a growth step and Route 2 a separate line.",
|
||||
"This plan's totals include Route 1 only; Route 2 is shown as a separate line.")),
|
||||
]
|
||||
return out
|
||||
Reference in new issue
Block a user