Biomass steam in both plans, PV on the factory roof only
Deploy test site / deploy (push) Successful in 49s
Deploy test site / deploy (push) Successful in 49s
User, 17 Oct 2026: "only put solar on the factory, prepare the other buildings for solar, option a and b should operate on biomass". - Steam: two 500 kg/h biomass modules (Getabec class, 6M to 10M THB) plus a fuel store and handling block (1M to 2M, estimate) in both plans; the electric bank becomes the alternative. ~0.67M THB of fuel a year against ~4.9M for electric steam; grid demand ~264 kW instead of ~980 kW. - Solar: ~520 kWp on the factory roof (the biomass-case optimum is ~500 to 550 kWp, hourly sketch in sustainability.md "PV size with biomass steam"); office roof and parking canopies built PV-ready (~120 kWp later). ~87 % used on site, ~61 % of the plant's electricity. - Calculator: biomass default, bFuel row, pvKWp 520, pvSelf 87, iso fills the factory roof first and shows the other roofs as PV-ready. - Numbers: launch plant ~168M / 232M / 296M with contingency; Plan A ~182M (~2M above 180M: the Chinese-route lever priced only electric boilers; a Chinese biomass quote is the way back), Plan B ~217M (label ~215M), ~35M more. Calculator EBITDA A 2.17M, B 2.23M USD. - CSV, total-investment, revenue-model, sustainability, scale, biomass, site-candidates, boi, steam-cooling, construction RFQ (canopies PV-ready), README, roadmap; business plan draft 0.3 rebuilt (A and B 63 pages) with new renders.
This commit is contained in:
1 parent
9ff5feef11
commit
984ced2485
35 files changed
+849
-665
No files matched your search
@@ -29,11 +29,12 @@ def blocks():
|
||||
"snapshots at their file dates, not commitments. Every number in this plan is labelled as quoted, "
|
||||
"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 (~215M THB), builds the same plant and takes none of the levers. ",
|
||||
"included, three presses, with six cost levers taken: labelled ~180M THB, it comes to "
|
||||
"~182M at the midpoint, about 2M above 180M. A second version, Plan B (~215M THB), builds "
|
||||
"the same plant and takes none of the levers. ",
|
||||
"This version is Plan B: the launch plant with the whole chain, cutting and galvanics "
|
||||
"included, three presses, with everything in and none of the cost levers taken, at ~215M "
|
||||
"THB (~216M). A second version, Plan A (~180M THB), builds the same plant with six cost "
|
||||
"THB (~217M). A second version, Plan A (~180M THB), builds the same plant with six cost "
|
||||
"levers. ")
|
||||
+ "The plan price includes the ramp-up reserve and carries no contingency. Cover picture: the "
|
||||
"plant as the plant and business plan calculator draws this plan (schematic, Payap scenario "
|
||||
@@ -84,13 +85,11 @@ def blocks():
|
||||
"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 " + 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, from Thai suppliers) and two 250 kW chiller modules "
|
||||
"(CH-1, CH-2)")
|
||||
+ " installed at launch; further presses add modules, not rooms. The steam fuel (electric or "
|
||||
"biomass) is still open.",
|
||||
"each, with two 500 kg/h biomass boiler modules (B-1, B-2) and two 250 kW chiller modules "
|
||||
"(CH-1, CH-2) installed at launch; further presses add modules, not rooms. **Steam is biomass "
|
||||
"from launch in both versions of this plan**, fired with wood chips from a covered fuel "
|
||||
"store: ~0.67M THB of fuel a year against ~4.9M THB for electric steam (estimates). Electric "
|
||||
"boilers are the alternative, not the plan.",
|
||||
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. ")
|
||||
@@ -98,10 +97,11 @@ def blocks():
|
||||
"(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, "
|
||||
+ pick("solar on every roof and canopy (~640 kWp, estimate) through a solar power purchase "
|
||||
+ pick("solar on the factory roof (~520 kWp, estimate) through a solar power purchase "
|
||||
"agreement (PPA)",
|
||||
"owned solar on every roof and canopy (~640 kWp, estimate) with a battery")
|
||||
+ " and room for a second building.",
|
||||
"owned solar on the factory roof (~520 kWp, estimate) with a battery")
|
||||
+ ", the office roof and the car and scooter canopies built PV-ready for later panels, and "
|
||||
"room for a second building.",
|
||||
"**Open source throughout:** every plant server runs NixOS, declared in one repository in the "
|
||||
"fleet B4L already operates, so any machine is rebuilt from it; ERPNext (no licence fee) is the "
|
||||
"only system of record; and our own code (the factory console, the plant overview, the artist "
|
||||
@@ -120,25 +120,28 @@ def blocks():
|
||||
"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 ~201M to ~162M THB at the midpoint "
|
||||
"before the ramp-up reserve (estimates, section 8): solar on every roof and canopy (~640 kWp) "
|
||||
"and the 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 "
|
||||
"**Six cost levers bring the plant to ~182M THB: labelled ~180M, it is about 2M above 180M "
|
||||
"at the midpoint** (177M with the low end of the ramp-up reserve), from ~201.6M to ~167.1M "
|
||||
"THB at the midpoint before the reserve (estimates, section 8): solar on the factory roof "
|
||||
"(~520 kWp) and the 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, none of the cost levers: ~215M THB**, ~201M THB at the midpoint before the "
|
||||
"ramp-up reserve and ~39M THB more than Plan A (estimates, section 8): owned solar on every "
|
||||
"roof and canopy (~640 kWp) and the battery, so no PPA power bill (~2.3M THB a year in Plan "
|
||||
"A, estimate); the full metrology stack from launch (XRF, "
|
||||
"with frame, runway and machine door kept crane-ready; the compressor through the Chinese "
|
||||
"route. Every press, the cutting room, the galvanics line, the stamper-prep line and the "
|
||||
"biomass boilers stay in. The Chinese route priced only electric boilers; a Chinese biomass "
|
||||
"boiler is not yet quoted, and one ~2M THB or more below the Thai package would bring the "
|
||||
"midpoint back to 180M.",
|
||||
"**Everything in, none of the cost levers: ~215M THB** (~217M at the midpoint with the "
|
||||
"ramp-up reserve, ~201.6M THB before it) and ~35M THB more than Plan A (estimates, section "
|
||||
"8): owned solar on the factory roof (~520 kWp) and the battery, so no PPA power bill (~1.9M "
|
||||
"THB a year in Plan A, estimate); the full metrology stack from launch (XRF, "
|
||||
"laser confocal, wide-area profiler, inline vision, audio station); the visitor corridor and "
|
||||
"accessible entrance, so public tours and the Payap student programmes are possible from the "
|
||||
"start; cassette and CD-R duplication; a bought 5 t overhead crane; boilers and compressor "
|
||||
"from Thai suppliers, with local service. Every press, the cutting room, the galvanics line "
|
||||
"and the stamper-prep line are the same as in Plan A."),
|
||||
"start; cassette and CD-R duplication; a bought 5 t overhead crane; the compressor from a "
|
||||
"Thai supplier, with local service. Every press, the cutting room, the galvanics line, the "
|
||||
"stamper-prep line and the biomass boilers are the same as in Plan A."),
|
||||
]),
|
||||
H2("What makes it top-notch"),
|
||||
P("Four things separate this plant from a pressing shop, and they are the reason it can charge "
|
||||
@@ -164,14 +167,18 @@ def blocks():
|
||||
"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 "
|
||||
"economiser if the boiler is fired, as much condensate back to the feed tank as possible, then a "
|
||||
"heat pump that lifts the presses' ~60 °C cooling return into boiler feedwater. Every roof and "
|
||||
"canopy carries solar: **~640 kWp** on the Payap scenario layout (factory roof ~523 kWp, "
|
||||
"parking canopies ~54 kWp, office roof ~65 kWp), about 900 MWh a year, of which ~85 % is used "
|
||||
"on site (~760 MWh, ~38 % of the launch plant's electricity with electric steam); the rest is "
|
||||
"curtailed, because a factory on PEA's grid runs zero export and is not paid for surplus "
|
||||
"(estimates). On the Mueang Chi hall the roof and canopies hold ~300 kWp, so the rest would be "
|
||||
"ground-mounted or wait for the second building's roof. A 271 kWh battery gives ride-through"
|
||||
"economiser on the biomass boilers, as much condensate back to the feed tank as possible, then "
|
||||
"a heat pump that lifts the presses' ~60 °C cooling return into boiler feedwater. Solar goes on "
|
||||
"the factory roof: **~520 kWp** on the Payap scenario layout, about 730 to 780 MWh a year, of "
|
||||
"which ~87 % is used on site (~633 MWh, ~61 % of the launch plant's ~1,036 MWh a year of "
|
||||
"electricity); the rest is curtailed, because a factory on PEA's grid runs zero export and is "
|
||||
"not paid for surplus. With biomass steam the running load is ~230 kW, and an hourly sketch "
|
||||
"puts the best array for it at ~500 to 550 kWp, so the factory roof sits at that optimum "
|
||||
"(estimates). The office roof (~65 kWp) and the car and scooter canopies (~54 kWp) are built "
|
||||
"PV-ready (structure rated for panels, conduit to the main board) and take panels when the "
|
||||
"load rises with the second Duplex system: ~120 kWp for ~2.4M to 3.1M THB (estimate). On the "
|
||||
"Mueang Chi hall the factory roof takes ~247 kWp and its canopies are PV-ready too. A 271 kWh "
|
||||
"battery gives ride-through"
|
||||
+ pick(
|
||||
"; array and battery come through the solar PPA: the installer owns and finances them, the "
|
||||
"plant buys the power. ",
|
||||
@@ -180,7 +187,8 @@ def blocks():
|
||||
"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 "
|
||||
"steam; the fuel choice is open.",
|
||||
"steam, which is why steam is biomass from launch: it saves ~4.2M THB (~USD 0.13M) a year "
|
||||
"against electric boilers and keeps the grid demand at ~264 kW instead of ~980 kW (estimates).",
|
||||
"**Climate control as product quality.** The whole plant runs at 20 to 26 °C, 35 to 60% "
|
||||
"relative humidity, with particulate filtration sized for Northern Thailand's burning season. "
|
||||
"Moisture and dust are the two classic causes of noisy records; the plant we visited has "
|
||||
@@ -197,23 +205,26 @@ def blocks():
|
||||
"at our planning rates). Second Duplex as a growth step from revenue (section 4.4); 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 "
|
||||
"chiller modules and a covered biomass fuel store, on leased land (~4 rai minimum, "
|
||||
"6 to 8 rai with expansion); second "
|
||||
"building as expansion"],
|
||||
[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 "
|
||||
"**~THB 182M (~USD 5.52M), labelled ~180M THB**: the plan investment, ~THB 167.1M (~USD "
|
||||
"5.06M) 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). **At the midpoint that is about 2M above "
|
||||
"180M**; with the low end of the reserve (~177M) it fits. From the low to the high end of "
|
||||
"every block: ~THB 132M to 233M. Estimates: no quote yet for the Classic, the galvanics line "
|
||||
"(priced at OMS's reference plus 20 %) or the building",
|
||||
"**~THB 216M (~USD 6.53M), rounded to ~215M THB**: the plan investment, ~THB 200.6M (~USD "
|
||||
"6.08M) at the midpoint with everything in, plus a ramp-up reserve of ~THB 10M to 20M (staff "
|
||||
"and overheads before volume covers them); at the midpoint just within the investor's 180M "
|
||||
"THB plus 20 % (216M). From the low to the high end of every block: ~THB 156M to 275M. "
|
||||
"**~THB 217M (~USD 6.56M), labelled ~215M THB**: the plan investment, ~THB 201.6M (~USD "
|
||||
"6.11M) at the midpoint with everything in, plus a ramp-up reserve of ~THB 10M to 20M (staff "
|
||||
"and overheads before volume covers them); at the midpoint ~0.6M above the investor's 180M "
|
||||
"THB plus 20 % (216M), inside 225M. From the low to the high end of every block: ~THB 156M "
|
||||
"to 277M. "
|
||||
"Estimates: no "
|
||||
"quote yet for the Classic, the galvanics line (priced at OMS's reference plus 20 %) or the "
|
||||
"building")],
|
||||
["Not in the plan price", "**No contingency** (at the 15 % used in the cost documents, ~THB "
|
||||
+ pick("24M", "30M") + " at the midpoint): quotes that land high are "
|
||||
+ pick("25M", "30M") + " 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, "
|
||||
@@ -222,24 +233,24 @@ def blocks():
|
||||
"(USD 9k to 30k), section 6.1"],
|
||||
["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 "
|
||||
"57M), operating profit ~USD 1.33M (~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.07M a year in the "
|
||||
"0.41M (~THB 14M); it would need ~1.0M records a year to cover depreciation and the three "
|
||||
"presses make 0.58M at that rate. The solar PPA's power price (~USD 0.06M 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 3.65M (~THB 120M), EBITDA ~USD 1.73M (~THB "
|
||||
"57M), operating profit ~USD 1.24M (~THB 41M); break-even on operating profit at ~0.24M "
|
||||
"records a year. **The adverse case loses money:** EBITDA ~USD 0.23M, operating loss ~USD "
|
||||
"0.54M (~THB 18M); it would need ~1.1M records a year to cover depreciation and the three "
|
||||
"0.55M (~THB 18M); it would need ~1.1M records a year to cover depreciation and the three "
|
||||
"presses make 0.58M at that rate. Cassette, CD-R and tour revenue are not in these figures. "
|
||||
"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 "
|
||||
"~3.2 years on the plan price in the central case (2.3 to 4.1 from the low to the high end of "
|
||||
"the price); ~1.1 years in the favourable case, ~31 years in the adverse case (EBITDA, mature "
|
||||
"year, ramp-up reserve included; estimates)",
|
||||
"~3.8 years on the plan price in the central case (2.7 to 4.8 from the low to the high end of "
|
||||
"the price); ~1.2 years in the favourable case, ~36 years in the adverse case (EBITDA, mature "
|
||||
"~3.8 years on the plan price in the central case (2.7 to 4.9 from the low to the high end of "
|
||||
"the price); ~1.2 years in the favourable case, ~37 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 "
|
||||
@@ -252,10 +263,11 @@ def blocks():
|
||||
"crew, because two shifts still need press, finishing, galvanics, QC and maintenance "
|
||||
"staff (13 to 19 direct production staff in the revenue model)"],
|
||||
["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 216M (~USD 6.53M), the ~215M THB plan, released in tranches against milestones "
|
||||
"~THB 182M (~USD 5.52M), the plan labelled ~180M THB (about 2M above 180M at the midpoint), "
|
||||
"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 46M "
|
||||
"(arithmetic, before financing costs)",
|
||||
"~THB 217M (~USD 6.56M), the ~215M 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 54M (arithmetic, before financing costs)")],
|
||||
]),
|
||||
@@ -267,12 +279,13 @@ def blocks():
|
||||
"presses (one Duplex system and the Classic) and takes six cost levers. ")
|
||||
+ "Both carry the ramp-up reserve and neither carries a contingency, and in both the second Duplex "
|
||||
"system is a growth step from revenue. What decides between them is no longer demand, because both "
|
||||
"make the same records: it is whether the investor funds ~THB 39M (~22 %) more at launch for what "
|
||||
"make the same records: it is whether the investor funds ~THB 35M (~19 %) more at launch for what "
|
||||
"Plan A leases or buys from revenue. Plan B owns its solar array (no PPA power bill), measures "
|
||||
"every stamper fully from the first release, makes tours and the Payap "
|
||||
"programmes possible from the start, sells cassette and CD-R from launch, owns its crane and buys "
|
||||
"its utilities with local service. On the modelled numbers that extra earns little (the same "
|
||||
"EBITDA in the revenue model, ~USD 0.07M a year more in the calculator for the PPA power bill the "
|
||||
"its compressor with local service; both run on biomass steam. On the modelled numbers that extra "
|
||||
"earns little (the same EBITDA in the revenue model, ~USD 0.06M a year more in the calculator for "
|
||||
"the PPA power bill the "
|
||||
"owned array avoids; more depreciation, a longer payback, a deeper adverse case), so Plan A has "
|
||||
"the better modelled return and Plan B the more complete plant. Most of Plan B's items can be added to Plan A "
|
||||
"later from revenue; the corridor is cheaper to build in from the start, and owning the array "
|
||||
@@ -280,27 +293,31 @@ def blocks():
|
||||
"2025, section 7.1), so neither plan earns a tax benefit on the array. "
|
||||
"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 216M (~USD 6.53M); ~156M to 275M from the low to the high end"],
|
||||
["Plan price (ramp-up reserve in, no contingency)", "~THB 182M (~USD 5.52M), ~2M above 180M at "
|
||||
"the midpoint; ~132M to 233M from the low to the high end", "~THB 217M (~USD 6.56M); ~156M to "
|
||||
"277M from the low to the high end"],
|
||||
["Presses", "3: one Duplex system (2 semi-automatic) and one Classic", "The same 3"],
|
||||
["Records a year at 60 % specials", "~0.58M to 0.90M (central 0.74M)", "The same"],
|
||||
["Steam", "Biomass from launch: two 500 kg/h modules and a covered fuel store", "The same"],
|
||||
["EBITDA, central case", "~USD 1.73M (~THB 57M)", "~USD 1.73M (~THB 57M); cassette and CD-R "
|
||||
"not modelled"],
|
||||
["Operating profit, central case", "~USD 1.34M (~THB 44M)", "~USD 1.24M (~THB 41M)"],
|
||||
["Payback on the plan price, central case", "~3.1 years (2.2 to 4.0)", "~3.8 years (2.7 to 4.8)"],
|
||||
["Adverse case", "Loses money: EBITDA ~USD 0.23M, operating loss ~USD 0.39M",
|
||||
"Loses money: EBITDA ~USD 0.23M, operating loss ~USD 0.54M"],
|
||||
["Operating profit, central case", "~USD 1.33M (~THB 44M)", "~USD 1.24M (~THB 41M)"],
|
||||
["Payback on the plan price, central case", "~3.2 years (2.3 to 4.1)", "~3.8 years (2.7 to 4.9)"],
|
||||
["Adverse case", "Loses money: EBITDA ~USD 0.23M, operating loss ~USD 0.41M",
|
||||
"Loses money: EBITDA ~USD 0.23M, operating loss ~USD 0.55M"],
|
||||
["What Plan A gives up, what Plan B buys", "At launch: solar through a PPA (a power bill of "
|
||||
"~USD 0.07M a year instead of owning the array), no confocal or profiler, no visitor corridor "
|
||||
"or tours, no cassette or CD-R, a rented crane; Chinese-made boilers and compressor",
|
||||
"~THB 39M more at launch: owned solar (~640 kWp, every roof and canopy covered) and battery, "
|
||||
"~USD 0.06M a year instead of owning the array), no confocal or profiler, no visitor corridor "
|
||||
"or tours, no cassette or CD-R, a rented crane; a Chinese-made compressor",
|
||||
"~THB 35M more at launch: owned solar (~520 kWp on the factory roof) and battery, "
|
||||
"so no PPA bill, the full "
|
||||
"metrology stack, the visitor corridor and tours, cassette and CD-R, a bought crane; "
|
||||
"Thai-supplied boilers and compressor"],
|
||||
"a Thai-supplied compressor"],
|
||||
], 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. A central EBITDA margin of ~47 % (both plans) is "
|
||||
"far above the 15 to 25 % pressing plants earn; read the adverse case as the honest one."),
|
||||
"far above the 15 to 25 % pressing plants earn; read the adverse case as the honest one. "
|
||||
"The revenue model does not split energy cost by plan or fuel, so the PPA bill and the "
|
||||
"biomass saving show only in the calculator."),
|
||||
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 "
|
||||
@@ -326,31 +343,34 @@ def blocks():
|
||||
"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.",
|
||||
"distributor quotes, a solar PPA offer and a Chinese biomass-boiler quote (one ~2M THB or "
|
||||
"more below the Thai package brings Plan A's midpoint back to 180M).",
|
||||
"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, and metrology "
|
||||
"distributor quotes."),
|
||||
pick(
|
||||
"**Then the Plan A round, ~THB 177M (~USD 5.35M), rounded to ~180M THB**, including the "
|
||||
"**Then the Plan A round, ~THB 182M (~USD 5.52M), labelled ~180M THB**, about 2M above 180M "
|
||||
"at the midpoint, 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 216M (~USD 6.53M), rounded to ~215M THB**, including the "
|
||||
"ramp-up reserve and without contingency, just within the investor's 180M THB plus 20 % "
|
||||
"(216M) at the midpoint, released in tranches against milestones: BOI certificate and lease signed, "
|
||||
"(section 8). From the low to the high end of every block the plan runs from ~THB 132M to "
|
||||
"233M; quotes that land high are funded outside the plan or by scope steps.",
|
||||
"**Then the Plan B round, ~THB 217M (~USD 6.56M), labelled ~215M THB**, including the "
|
||||
"ramp-up reserve and without contingency, at the midpoint ~0.6M above the investor's 180M "
|
||||
"THB plus 20 % (216M) and inside 225M, 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 156M to 275M; quotes that land high are funded "
|
||||
"end of every block the plan runs from ~THB 156M to 277M; 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 (both make the "
|
||||
"same records, so the choice is ~THB 39M more at launch for what Plan A leases or defers; the "
|
||||
"same records, so the choice is ~THB 35M more at launch for what Plan A leases or defers; the "
|
||||
"Classic, Pheenix and EX 35 quotes, the solar PPA offer and the building quote settle the "
|
||||
"numbers); 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", "54M of Plan B's ~216M") + " is equity); CD "
|
||||
"replication, yes or no (it must be in the BOI application from the start); and the steam fuel, "
|
||||
"electric or biomass.",
|
||||
"least ~THB " + pick("46M of Plan A's ~182M", "54M of Plan B's ~217M") + " is equity); and CD "
|
||||
"replication, yes or no (it must be in the BOI application from the start). The steam fuel is "
|
||||
"no longer open: both versions run on biomass steam from launch.",
|
||||
"**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.",
|
||||
@@ -536,9 +556,8 @@ def blocks():
|
||||
"Newbilt Duplex system (2 presses, main + colour extruder) and one Newbilt Classic",
|
||||
pick("Launch plant; second Duplex as growth option", "At launch; second Duplex as growth option")],
|
||||
["Steam, cooling and compressed air engineered locally", "The largest energy loads; efficiency "
|
||||
"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 (Thai suppliers) and 2 x 250 kW chillers") + "; heat recovery designed in",
|
||||
"lives here", "Boiler hall and chiller compound for four modules each; 2 x 500 kg/h biomass "
|
||||
"boilers with a covered fuel store and 2 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 "
|
||||
@@ -566,10 +585,11 @@ def blocks():
|
||||
"mobile shelving (to quote)", LP],
|
||||
["Renewable energy and closed-loop water", "Cost, resilience, brand" + pick(
|
||||
"", "; the owned battery may qualify for BOI as storage"),
|
||||
pick("PV on every roof and canopy (~640 kWp) and a 271 kWh battery through a solar PPA "
|
||||
"(installer-owned), closed cooling loop, zero process discharge",
|
||||
"PV on every roof and canopy (~640 kWp) and a 271 kWh battery (owned), closed cooling "
|
||||
"loop, zero process discharge"),
|
||||
pick("PV on the factory roof (~520 kWp; office roof and canopies PV-ready) and a 271 kWh "
|
||||
"battery through a solar PPA (installer-owned), biomass steam, closed cooling loop, zero "
|
||||
"process discharge",
|
||||
"PV on the factory roof (~520 kWp; office roof and canopies PV-ready) and a 271 kWh "
|
||||
"battery (owned), biomass steam, 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",
|
||||
@@ -721,23 +741,19 @@ def blocks():
|
||||
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. " + 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 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 B buys the boiler "
|
||||
"modules and the compressor from Thai suppliers, with local service. ")
|
||||
"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 biomass 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. The boilers burn wood "
|
||||
"chips from a covered fuel store, in both versions of the plan: ~6M to 10M THB installed with "
|
||||
"fuel feed, grate and dust control, plus ~1M to 2M THB for the fuel store and handling, and "
|
||||
"~0.67M THB of fuel a year (estimates). " + pick(
|
||||
"Plan A buys the compressor through the Chinese route. That route priced only electric "
|
||||
"boilers; Chinese makers also build biomass boilers but none is priced yet, and a quote ~2M "
|
||||
"THB or more below the Thai package would bring Plan A's midpoint back to 180M (section 5.4). ",
|
||||
"Plan B buys the compressor from a Thai supplier, with local service. ")
|
||||
+ "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 "
|
||||
|
||||
@@ -279,23 +279,20 @@ def blocks():
|
||||
"one observation: the steam's job is to heat the moulds and the cooling water's job is to remove "
|
||||
"that same heat again. Roughly 98% of the press cooling load is heat the steam put into the "
|
||||
"moulds, and the press cooling return leaves at about 60 °C. That warm return, the condensate and "
|
||||
"a fired boiler's flue gas are heat the plant reuses before it generates anything new."),
|
||||
"the biomass boilers' flue gas are heat the plant reuses before it generates anything new."),
|
||||
H3("Utilities: backbone once, modules with the presses"),
|
||||
P("Everything that is cheap to oversize now and costly to change in a running plant is built once, "
|
||||
"for the five-press fleet: the boiler hall and the chiller compound with room for four modules "
|
||||
"each, the steam main and condensate return, the cooling mains, the heat-exchanger frame and "
|
||||
"tanks, and hydraulic and compressed-air ring mains with a valved, capped tee at every press "
|
||||
"position. The machines that make steam and cold water come in identical modules: " + pick(
|
||||
"at launch two 500 kg/h boilers (B-1, B-2) for the 450 to 540 kg/h peak and two 250 kW "
|
||||
"air-cooled chillers rated at 40 °C ambient (CH-1, CH-2) for ~391.5 kW, sequenced lead and "
|
||||
"lag by one controller. Either boiler alone carries 93 to 111% of the steam demand; one "
|
||||
"chiller out leaves ~64% of the cooling peak. The boiler bodies come through the Chinese "
|
||||
"route and the compressor from a Chinese brand's Thai office (below). ",
|
||||
"at launch two 500 kg/h boilers (B-1, B-2) for the 450 to 540 kg/h peak and two 250 kW "
|
||||
"air-cooled chillers rated at 40 °C ambient (CH-1, CH-2) for ~391.5 kW, sequenced lead and "
|
||||
"lag by one controller. Either boiler alone carries 93 to 111% of the steam demand; one "
|
||||
"chiller out leaves ~64% of the cooling peak. The boilers and the compressor come from Thai "
|
||||
"suppliers, with local service (below). ") +
|
||||
"position. The machines that make steam and cold water come in identical modules: at launch "
|
||||
"two 500 kg/h biomass boilers (B-1, B-2) for the 450 to 540 kg/h peak (one ~1 t/h package is "
|
||||
"the alternative) and two 250 kW air-cooled chillers rated at 40 °C ambient (CH-1, CH-2) for "
|
||||
"~391.5 kW, sequenced lead and lag by one controller. Either boiler alone carries 93 to 111% of "
|
||||
"the steam demand; one chiller out leaves ~64% of the cooling peak. Both plans make their steam "
|
||||
"from biomass (below); " + pick(
|
||||
"the boilers come from a Thai maker and the compressor from a Chinese brand's Thai office. ",
|
||||
"the boilers and the compressor come from Thai suppliers, with local service. ") +
|
||||
"Identical modules mean one set of spares "
|
||||
"and one service routine, N+1 later is one more module rather than a redesign, and the plant "
|
||||
"never runs one oversized boiler at poor part load. Four boilers carry about eight presses with "
|
||||
@@ -305,7 +302,7 @@ def blocks():
|
||||
"station, ring main) is not costed yet; a Thai hydraulic power unit builder quotes it."),
|
||||
T(["Measure", "What it does", "Effect"], [
|
||||
["1. Flue-gas economizer (fired boilers)", "Recovers stack heat into the boiler feedwater; the "
|
||||
"first measure to investigate on a biomass or LPG bank (an electric boiler has no flue gas)",
|
||||
"first measure to investigate on the biomass bank (an electric boiler has no flue gas)",
|
||||
"Outlet and stack temperatures are vendor figures; rice-husk ash is abrasive, so the RFQ asks "
|
||||
"for cleaning, wear protection and a bypass"],
|
||||
["2. Condensate return", "As much clean, hot condensate back to the feed tank as possible",
|
||||
@@ -344,14 +341,15 @@ def blocks():
|
||||
"weekdays) and 2.6037 THB/kWh off-peak, plus the Ft fuel adjustment (+0.1623 THB/kWh for "
|
||||
"September to December 2026; it resets every four months) and reclaimable VAT. Two shifts put "
|
||||
"about two thirds of process energy into peak hours: a blended ~3.81 THB/kWh before the demand "
|
||||
"charge. For the five-press fleet the backbone is built for" +
|
||||
", without electric steam, that is "
|
||||
"roughly 4.5M to 6.8M THB a year before solar, 0.7M to 1.1M of it demand charge (estimates), on "
|
||||
"an 800 to 1,000 kVA connection. Three design consequences:"),
|
||||
"charge. For the five-press fleet the backbone is built for, on biomass steam with no electric "
|
||||
"boiler on the grid, that is roughly 4.5M to 6.8M THB a year before solar, 0.7M to 1.1M of it "
|
||||
"demand charge, on an 800 to 1,000 kVA connection; the launch plant's peak demand is ~264 kW, "
|
||||
"against ~980 kW had its steam been electric (estimates). Three design consequences:"),
|
||||
B([
|
||||
"**Biomass heat is far cheaper than electric steam** (below): the demand charge follows the "
|
||||
"boiler's full-power draw, and the peak window covers 13 of the 16 production hours.",
|
||||
"**Every roof gets PV, not solar thermal.** Self-consumed PV is worth ~3.7 THB/kWh" + pick(
|
||||
"**Steam comes from biomass in both plans,** because biomass heat is far cheaper than "
|
||||
"electric steam (below): an electric boiler's full-power draw would set the demand charge, and "
|
||||
"the peak window covers 13 of the 16 production hours.",
|
||||
"**The factory roof gets PV, not solar thermal.** Self-consumed PV is worth ~3.7 THB/kWh" + pick(
|
||||
" of grid power displaced, less the PPA price the plant pays for it (below)", "") +
|
||||
"; surplus earns nothing, because a factory on PEA's grid runs zero export (below); and PV "
|
||||
"cannot lower the demand charge, because the peak window runs to 22:00, long after sunset.",
|
||||
@@ -361,37 +359,47 @@ def blocks():
|
||||
]),
|
||||
H3("Renewable energy"),
|
||||
KV([
|
||||
["PV on every roof and canopy", "~640 kWp (decided October 2026: as much roof as possible). In "
|
||||
"the Payap scenario model the calculator draws the factory roof "
|
||||
"at ~523 kWp (901 modules of a generic 580 W placeholder; no "
|
||||
"module chosen yet), the car and scooter canopies at ~54 kWp and "
|
||||
"the office roof at ~65 kWp; the covered link and the utility "
|
||||
"yard are left out. ~900 MWh a year at 1,400 to 1,500 kWh/kWp, "
|
||||
"~85% of it used on site (~760 MWh: two shifts on 300 days, a "
|
||||
"~60 kW base load off-shift and the battery), about 38% of the "
|
||||
"launch plant's ~2,000 MWh a year with electric steam "
|
||||
"(estimates). " + pick(
|
||||
["PV on the factory roof", "~520 kWp (decided October 2026: PV on the factory only, the other "
|
||||
"roofs PV-ready). In the Payap scenario model the calculator draws "
|
||||
"the factory roof at ~523 kWp (901 modules of a generic 580 W "
|
||||
"placeholder; no module chosen yet). ~730 to 780 MWh a year at "
|
||||
"1,400 to 1,500 kWh/kWp, ~87% of it used on site (~633 MWh: two "
|
||||
"shifts on 300 days, a ~60 kW base load off-shift and the "
|
||||
"battery), about 61% of the launch plant's ~1,036 MWh a year of "
|
||||
"electricity with biomass steam (estimates). " + pick(
|
||||
"Taken through a solar PPA (below): the plant pays the PPA price for this power instead of "
|
||||
"buying the array, so its saving is the gap between that price and the ~3.7 THB/kWh of "
|
||||
"grid power it displaces",
|
||||
"Saves ~2.8M to 3.0M THB a year at ~3.7 THB/kWh self-consumed and pays back in ~4.2 to 5.9 "
|
||||
"years at 20 to 26 THB/W installed; the last ~340 kWp beyond the first ~300 pay back in "
|
||||
"~4.9 to 6.3 years, because more of their yield is curtailed on Sundays (estimates)")],
|
||||
["Zero export", "The ~15% the plant cannot use, mostly on Sundays and holidays, is curtailed, not "
|
||||
"Saves ~2.3M to 2.5M THB a year at ~3.7 THB/kWh self-consumed and pays back in ~4.1 to 5.8 "
|
||||
"years at 20 to 26 THB/W installed (estimates)")],
|
||||
["Why ~520 kWp", "With biomass steam the running load is ~230 kW, with no electric boilers. An "
|
||||
"hourly sketch (two shifts on 300 days, ~60 kW off-shift base load, the 271 kWh "
|
||||
"battery, PEA's time-of-use tariff with Ft, 23,000 THB/kWp, 25 years at 8%) "
|
||||
"puts the best array at ~500 to 550 kWp: the net present value peaks there, and "
|
||||
"the kWp above ~550 lose money because more of their yield is curtailed. The "
|
||||
"factory roof's ~520 kWp sits at that optimum (estimates)"],
|
||||
["PV-ready: office roof and canopies", "The office roof (~65 kWp) and the car and scooter canopies "
|
||||
"(~54 kWp: car ~42, scooter ~13) are built ready for panels: structure rated for them (~20 kg/m² "
|
||||
"plus wind uplift), conduit and a cable route to the main board, and a spare way for a later "
|
||||
"inverter. Panels go on when the load rises with the second Duplex system: ~120 kWp for ~2.4M "
|
||||
"to 3.1M THB at 20 to 26 THB/W (estimate). The preparation is small (estimate) and sits in the "
|
||||
"building and site works; the construction RFQ already specifies canopy steel carrying PV"],
|
||||
["Zero export", "The ~13% the plant cannot use, mostly on Sundays and holidays, is curtailed, not "
|
||||
"sold: a factory on PEA's grid runs zero export, with no payment for surplus and "
|
||||
"a zero-export controller (reverse-power relay) as part of the interconnection "
|
||||
"(CapSolar and Sahawatthanakit, 2026)"],
|
||||
["On the Mueang Chi hall", "The 60 × 25 m hall of section 6.2 takes only ~300 kWp: ~247 kWp on "
|
||||
"the 1,523 m² monopitch roof (425 modules) and ~40 to 54 kWp on the "
|
||||
"parking canopies. The rest would need ground mount on the ~70 m of "
|
||||
"plot behind the building (not covered by the rooftop exemption, so "
|
||||
"it may still need a factory permit) or the phase 2 roof (~251 "
|
||||
"kWp)"],
|
||||
["On the Mueang Chi hall", "The factory roof of the 60 × 25 m hall of section 6.2 takes only "
|
||||
"~247 kWp (425 modules on the 1,523 m² monopitch roof), about half "
|
||||
"the optimum; its parking canopies are PV-ready too (~40 to 54 kWp). "
|
||||
"More would need ground mount on the ~70 m of plot behind the "
|
||||
"building (not covered by the rooftop exemption, so it may still "
|
||||
"need a factory permit) or the phase 2 roof (~251 kWp)"],
|
||||
["Battery", "271 kWh Gobel Power LiFePO4 rack (15 stacked 18 kWh packs, 8,000+ cycles), USD "
|
||||
"39,900 to 58,000 listed (battery only; ~2.0M to 3.5M THB installed with enclosure, fire protection and "
|
||||
"controls, estimate), 50 to 60 day lead. Roughly an hour of the chiller bank's "
|
||||
"peak draw: ride-through, not off-grid autonomy"],
|
||||
["Inverters", "Deye three-phase hybrid units (30 to 80 kW class), ~500 kVA in all (estimate); "
|
||||
["Inverters", "Deye three-phase hybrid units (30 to 80 kW class), ~430 kVA in all (about nine 50 kW "
|
||||
"units, estimate); "
|
||||
"Thai distribution via Solar Nicolo; Deye is a supported protocol on the Gobel "
|
||||
"battery management"],
|
||||
["Roof design", "Monopitch at 10° falling toward ESE puts the whole roof on one plane at ~98% "
|
||||
@@ -400,7 +408,7 @@ def blocks():
|
||||
"burning-season dust"],
|
||||
["Permits", "Since Ministerial Regulation No. 3 B.E. 2567 (in force 28 December 2024) rooftop "
|
||||
"solar outside industrial estates is not a factory, so it needs no Ror.Ngor. 4 "
|
||||
"licence at any size. At ~500 kVA of inverters, under the 1,000 kVA line of the "
|
||||
"licence at any size. At ~430 kVA of inverters, under the 1,000 kVA line of the "
|
||||
"Energy Regulatory Commission (ERC), an ERC exemption notification replaces a "
|
||||
"generation licence. PEA approves the interconnection with zero-export control in 3 "
|
||||
"to 6 months, filed in parallel with procurement (CapSolar, 2026); the roof load is "
|
||||
@@ -410,12 +418,13 @@ def blocks():
|
||||
"against PVGIS before committing" + pick("; the PPA offer itself, price and "
|
||||
"terms", "")],
|
||||
pick(["Solar PPA (this plan)", "An installer owns and finances the PV and the battery, and the "
|
||||
"plant buys the power at a price still to quote. The PPA covers the full ~640 kWp; the "
|
||||
"calculator carries 3.0 THB/kWh (estimate) for the ~760 MWh used on site, ~2.3M THB or "
|
||||
"~0.07M USD a year on the energy line. That keeps the PV EPC (USD 388k to 504k, 12.8M to "
|
||||
"16.6M THB at 20 to 26 THB/W) and the battery (USD 61k to 106k) out of the capital round: "
|
||||
"~17.5M THB less at the midpoint, one of the six levers in section 8. The launch plant's "
|
||||
"power bill (~0.75M THB a month before solar, estimate) is well above the 100,000 THB a "
|
||||
"plant buys the power at a price still to quote. The PPA covers the ~520 kWp factory "
|
||||
"roof; the calculator carries 3.0 THB/kWh (estimate) for the ~633 MWh used on site, ~1.9M "
|
||||
"THB or ~0.06M USD a year on the energy line. That keeps the PV EPC (USD 315k to 410k, "
|
||||
"10.4M to 13.5M THB at 20 to 26 THB/W) and the battery (USD 61k to 106k) out of the capital "
|
||||
"round: ~14.7M THB less at the midpoint, one of the six levers in section 8. The launch "
|
||||
"plant's power bill (~0.36M THB a month before solar with biomass steam: ~1,036 MWh at the "
|
||||
"blended ~3.81 THB/kWh plus the demand charge, estimate) is well above the 100,000 THB a "
|
||||
"month CapSolar asks of a PPA site; PPA discounts run 10 to 15 % off the tariff at MEAei "
|
||||
"and 10 to 30 % at CapSolar, so the calculator's ~21 % is to be quoted. Leasing gives up no BOI benefit on the array: BOI stopped promoting solar "
|
||||
"installations on 1 July 2025 (Announcement 3/2568, section 7.1). A PPA developer selling "
|
||||
@@ -424,77 +433,94 @@ def blocks():
|
||||
"above and, if the PPA includes the battery, the battery's possible BOI eligibility as "
|
||||
"storage (to confirm with the BOI consultant). The PPA offer is asked against the "
|
||||
"specification above"],
|
||||
["Owned (this plan)", "The plant buys the array and the battery: PV EPC USD 388k to 504k "
|
||||
"(12.8M to 16.6M THB for ~640 kWp, 20 to 26 THB/W installed with inverters at Thai 2026 "
|
||||
"market prices; the canopy steel is in the building and site works) and the battery, "
|
||||
"installed, USD 61k to 106k (2.0M to 3.5M THB): ~17.5M THB together at the midpoint, "
|
||||
"estimates, section 8. Owning them saves the power bill a PPA would carry: at the "
|
||||
"calculator's 3.0 THB/kWh (estimate, to quote) for the ~760 MWh used on site, ~2.3M THB "
|
||||
"or ~0.07M USD a year. A solar PPA (an installer owns and finances them, the plant buys "
|
||||
"the power at a price still to quote) would take ~17.5M THB out of the capital round at "
|
||||
"the midpoint at the cost of that bill. The array itself carries no BOI benefit: BOI "
|
||||
["Owned (this plan)", "The plant buys the array and the battery: PV EPC USD 315k to 410k "
|
||||
"(10.4M to 13.5M THB for ~520 kWp on the factory roof, 20 to 26 THB/W installed with "
|
||||
"inverters at Thai 2026 market prices; the PV-ready canopy steel and conduit are in the "
|
||||
"building and site works) and the battery, installed, USD 61k to 106k (2.0M to 3.5M THB): "
|
||||
"~14.7M THB together at the midpoint, estimates, section 8. Owning them saves the power bill "
|
||||
"a PPA would carry: at the calculator's 3.0 THB/kWh (estimate, to quote) for the ~633 MWh "
|
||||
"used on site, ~1.9M THB or ~0.06M USD a year. A solar PPA (an installer owns and finances "
|
||||
"them, the plant buys the power at a price still to quote) would take ~14.7M THB out of the "
|
||||
"capital round at the midpoint at the cost of that bill. The array itself carries no BOI benefit: BOI "
|
||||
"stopped promoting solar installations on 1 July 2025 (Announcement 3/2568, section "
|
||||
"7.1); the owned battery may still qualify as storage (to confirm with the BOI "
|
||||
"consultant)"]),
|
||||
]),
|
||||
H3("Steam: the open engineering choice"),
|
||||
P("The boilers' fuel is still open; the modular bank works with either. There is no natural gas "
|
||||
"pipeline in Northern Thailand, so gas means a bulk LPG tank on site with hazardous-storage "
|
||||
"separation and licensing, and diesel means a fuel tank with price exposure. The two routes "
|
||||
"without a fossil tank, compared for the same heat (~1,120 to 1,280 MWh a year at about 1.0 "
|
||||
"million records, the top of the plant's range; estimates):"),
|
||||
T(["", "Electric boiler bank (~98%)", "Biomass boiler bank (~80%)"], [
|
||||
["Price of heat", "~3.9 THB/kWh, plus the demand charge", "~0.5 to 0.9 THB/kWh at 1.35 to 2 "
|
||||
"THB/kg delivered (reported market prices, October 2026; no supplier quote yet)"],
|
||||
["Running cost, mature two shifts", "~5.2M to 6.0M THB a year, including 0.8M to 1.0M of extra "
|
||||
"demand charge for the five-press bank", "~0.6M to 1.2M THB a year of fuel, plus handling "
|
||||
"and ash"],
|
||||
["Boiler package, 2 × 500 kg/h", pick("~2.8M to 5.5M THB through the Chinese route, the "
|
||||
"plan's price (4.5M to 7M from Thai suppliers)",
|
||||
"4.5M to 7M THB (Thai suppliers); the plan's price"),
|
||||
"~6M to 10M THB, plus the fuel store"],
|
||||
["Grid", "Peak ~950 to 1,330 kW: PEA Schedule 4, 1,250 to 1,600 kVA", "Unchanged, ~800 to "
|
||||
"1,000 kVA"],
|
||||
["Also", "Cleanest permitting, no fuel logistics, no stack", "Fuel contracts, a dry store sized "
|
||||
"for the monsoon, ash handling, a 14 m stack and its emissions"],
|
||||
], widths_mm=[36, 64, 70], font_pt=8.5),
|
||||
H3("Steam: biomass in both plans"),
|
||||
P("Both plans make their steam from biomass (decided October 2026): two 500 kg/h biomass modules "
|
||||
"(B-1, B-2) or one ~1 t/h package, Getabec class, 6M to 10M THB installed with the fuel feed, "
|
||||
"grate and dust control, plus a fuel store and handling block of 1.0M to 2.0M THB (a covered "
|
||||
"store, a chip bay, ash bins and a compact loader; utilities CSV, estimates). The electric boiler "
|
||||
"bank (4.5M to 7M THB from Thai suppliers, 2.8M to 5.5M through the Chinese route) is now the "
|
||||
"alternative, not the plan. There is no natural gas pipeline in Northern Thailand, so gas would "
|
||||
"mean a bulk LPG tank on site with hazardous-storage separation and licensing, and diesel a fuel "
|
||||
"tank with price exposure. The two routes without a fossil tank, compared for the launch plant "
|
||||
"at ~850k records a year (~1,403 t of steam, ~954 MWh of heat; estimates):"),
|
||||
T(["", "Biomass boiler bank (~80%): the plan", "Electric boiler bank (~98%): the alternative"], [
|
||||
["Price of heat", "~0.5 to 0.9 THB/kWh at 1.35 to 2 THB/kg delivered (reported market prices, "
|
||||
"October 2026; no supplier quote yet), ~0.7 planned", "~3.9 THB/kWh, plus the demand charge"],
|
||||
["Running cost, launch plant", "~0.67M THB a year of fuel at ~0.7 THB/kWh: about 300 t of "
|
||||
"air-dry wood or ~460 t of fresh chips, plus handling and ash", "~4.9M THB a year: ~973 MWh at "
|
||||
"the blended ~3.81 THB/kWh plus the demand charge on 2 × 360 kW of boilers"],
|
||||
["Boiler package, 2 × 500 kg/h", "~6M to 10M THB installed, plus 1.0M to 2.0M for the fuel "
|
||||
"store and handling", "4.5M to 7M THB from Thai suppliers, ~2.8M to 5.5M through the Chinese "
|
||||
"route"],
|
||||
["Grid", "Launch plant peak demand ~264 kW; 800 to 1,000 kVA for the five-press backbone",
|
||||
"~980 kW at launch; the five presses ~950 to 1,330 kW, PEA Schedule 4, 1,250 to 1,600 kVA"],
|
||||
["Also", "Fuel contracts and a monsoon stock, ash handling, a 14 m flue stack with a dust "
|
||||
"collector, more maintenance, a certified boiler attendant, emission limits in the permit",
|
||||
"Cleanest permitting, no fuel logistics, no stack"],
|
||||
], widths_mm=[32, 70, 68], font_pt=8.5),
|
||||
P("**Reading it.** The electric boiler is the more efficient machine; biomass is by far the cheaper "
|
||||
"heat. At maturity the fuel saving of ~4.0M to 5.4M THB a year repays the biomass premium in "
|
||||
"under a year (estimate), so the earlier staged path (start electric, add biomass later) is a "
|
||||
"permitting and fuel-logistics choice, not a cost one: every year on electric steam costs roughly "
|
||||
"1.4M to 5.4M THB more. The site can decide it too: next to the pharmaceutical facility on Payap "
|
||||
"land a biomass stack would be a hard sell, which favours electric or LPG there (section 6.1)."),
|
||||
P("**Fuel.** A biomass bank burns roughly 350 to 400 tonnes of air-dry wood a year at about 1.0 "
|
||||
"million records (~540 to 620 t as fresh chips, which is what the store and the monsoon stock are "
|
||||
"sized for). Lamphun alone produces more than 900,000 t of farm residues a year (Maejo "
|
||||
"University), so supply is not the constraint; price is. Reported prices follow diesel, so the "
|
||||
"fuel contract gets a diesel clause and sources within ~50 km. The local price-setter is Ratch "
|
||||
"Pathana's biomass buying centre at Pa Sak, Mueang Lamphun, which feeds a 9.6 MW cogeneration "
|
||||
"plant and competes for the same fuel. The team's own 60 rai of forestry-classified land could "
|
||||
"supply 80 to 135 t a year as short-rotation coppice once its title is checked; at market prices "
|
||||
"that is worth only ~0.1M to 0.25M THB a year, so its value is supply security and the story "
|
||||
"('records pressed with steam from our own trees'), not the fuel bill. Next step: written quotes "
|
||||
"from Pa Sak and two or three chip suppliers, priced by moisture, before the boiler decision."),
|
||||
P("**Where the boilers come from.** " + pick(
|
||||
"The plan buys the two modules through the Chinese route: boiler bodies from a Chinese maker "
|
||||
"with Thai references (ZOZEN, Sitong, Fangkuai, Taiguo), installed with the feed tank, pumps, "
|
||||
"header, controls and piping by a Thai boiler contractor, for roughly 2.8M to 5.5M THB "
|
||||
"installed against 4.5M to 7M from Thai suppliers, about 1.6M THB less at the midpoint. The "
|
||||
"compressor is a Chinese brand bought through its Thai office (Kaishan and Denair have one), "
|
||||
"so service stays local; with it the route saves ~1.9M THB at the midpoint (estimates from "
|
||||
"listings, not quotes). ",
|
||||
"The plan buys the two modules and the compressor from Thai suppliers (4.5M to 7M THB "
|
||||
"installed for the boilers). Chinese makers with Thai references (ZOZEN, Sitong, Fangkuai, "
|
||||
"Taiguo) could supply the boilers for roughly 2.8M to 5.5M THB installed, about 1.6M THB "
|
||||
"less at the midpoint, and with a Chinese compressor brand bought through its Thai office "
|
||||
"~1.9M less (estimates from listings, not quotes): a step if quotes land high. ") +
|
||||
"The specification is a 1.25 MPa design to ASME Section I with the S stamp; most Chinese packaged "
|
||||
"electric units are rated 0.4 to 0.8 MPa and cannot deliver 10 bar. An imported boiler must meet "
|
||||
"TIS, ASME, JIS, EN or an equivalent standard and be verified by a certification body registered "
|
||||
"with the Department of Industrial Works (DIW), engaged before the order (section 7). No mainland "
|
||||
"maker has a verified Thai service partner, so a Thai boiler contractor and the certification "
|
||||
"body are the service layer either way. Chillers and air conditioning, the larger blocks, have "
|
||||
"not been checked for a Chinese route yet."),
|
||||
"heat. At launch biomass saves **~4.2M THB (~0.13M USD) a year** against electric steam, so it "
|
||||
"repays its higher price and the fuel store (~3.8M to 5.4M THB more at the midpoints than a Thai "
|
||||
"or a Chinese electric bank) in about a year (estimates). Without electric boilers the plant's "
|
||||
"demand stays at ~264 kW instead of ~980 kW, which also means a smaller transformer and PEA "
|
||||
"deposit (not re-priced; an upside). The earlier staged path (start electric, add biomass later) "
|
||||
"is dropped: each year on electric steam would cost about that ~4.2M THB more. The site still "
|
||||
"matters: next to the pharmaceutical facility on Payap land a biomass stack is a hard sell, so "
|
||||
"the GMP-neighbour check (section 6.1) asks about it before any design work, and the electric "
|
||||
"bank is the fall-back there."),
|
||||
P("**What biomass brings with it.** Fuel contracts and a dry stock for the monsoon: the 42 m² store "
|
||||
"drawn in the utility yard holds ~6 to 7 weeks of fresh chips, and a 3-month monsoon stock needs "
|
||||
"~80 m² (estimates). Ash to handle and dispose of. The 14 m flue stack and the dust collector, "
|
||||
"already drawn in the utility yard. More maintenance than an electric bank, and a certified boiler "
|
||||
"attendant from the maintenance team as the licensed boiler controller (section 7.2). Boiler "
|
||||
"registration and the air-emission limits for a solid-fuel boiler in the permit work (to confirm, "
|
||||
"section 7.2). And a visible point source in Chiang Mai's burning season (February to April): dust "
|
||||
"control matters for the story as much as for the permit, and buying farm residues that would "
|
||||
"otherwise be burned in the fields is the other half of that story."),
|
||||
P("**Fuel.** The launch plant burns about 300 t of air-dry wood or ~460 t of fresh chips a year at "
|
||||
"~850k records; the five-press fleet at about 1.0 million records would burn 350 to 400 t air-dry "
|
||||
"(~540 to 620 t as fresh chips; estimates). Lamphun alone produces more than 900,000 t of farm "
|
||||
"residues a year (Maejo University), so supply is not the constraint; price is. Reported prices "
|
||||
"follow diesel, so the fuel contract gets a diesel clause and sources within ~50 km. The local "
|
||||
"price-setter is Ratch Pathana's biomass buying centre at Pa Sak, Mueang Lamphun, which feeds a "
|
||||
"9.6 MW cogeneration plant and competes for the same fuel. The team's own 60 rai of "
|
||||
"forestry-classified land could supply 80 to 135 t a year as short-rotation coppice, an upside "
|
||||
"once its title is checked; at market prices that is worth only ~0.1M to 0.25M THB a year, so its "
|
||||
"value is supply security and the story ('records pressed with steam from our own trees'), not "
|
||||
"the fuel bill. Next step: written quotes from Pa Sak and two or three chip suppliers, priced by "
|
||||
"moisture, before the boiler order."),
|
||||
P("**Where the boilers come from.** Both plans price the biomass modules from a Thai maker with "
|
||||
"Thai fabrication and service (Getabec class, 6M to 10M THB installed; utilities CSV, estimate). "
|
||||
"Chinese makers build biomass boilers too (ZOZEN DZL, Sitong DZL and SZL, Taiguo, Yongxing), but "
|
||||
"none is priced yet: the Chinese route checked so far priced only electric boilers. " + pick(
|
||||
"That makes a Chinese biomass quote a decision point for this plan: one ~2M THB or more below "
|
||||
"the Thai package would bring Plan A back under 180M THB at the midpoint. What this plan takes "
|
||||
"through the Chinese route is the compressor, a Chinese brand bought through its Thai office "
|
||||
"(Kaishan and Denair have one) so service stays local, ~0.25M THB less at the midpoint "
|
||||
"(estimate from listings, not a quote). ",
|
||||
"A Chinese biomass quote is a step if quotes land high, and so is a Chinese compressor brand "
|
||||
"bought through its Thai office (Kaishan and Denair have one), ~0.25M THB less at the midpoint "
|
||||
"(estimate from listings, not a quote); this plan buys the compressor from a Thai supplier. ") +
|
||||
"Any module, Thai or imported, is specified as a 1.25 MPa design to ASME Section I with the S "
|
||||
"stamp (most Chinese packaged electric units are rated 0.4 to 0.8 MPa and cannot deliver 10 bar). "
|
||||
"An imported boiler must meet TIS, ASME, JIS, EN or an equivalent standard and be verified by a "
|
||||
"certification body registered with the Department of Industrial Works (DIW), engaged before the "
|
||||
"order (section 7). No mainland maker has a verified Thai service partner, so for an imported "
|
||||
"boiler a Thai boiler contractor and the certification body would be the service layer. Chillers "
|
||||
"and air conditioning, the larger blocks, have not been checked for a Chinese route yet."),
|
||||
H3("Water"),
|
||||
P("Water arriving is still open: no source is confirmed for the candidate site (PWA mains, a "
|
||||
"licensed deep well, or both), and a water analysis comes before the boiler and chiller RFQs "
|
||||
@@ -522,12 +548,13 @@ def blocks():
|
||||
"acceptable the cost drops materially, and that question is on the RFQ list."),
|
||||
CALL("Efficiency in one paragraph, for the investor", "Steam and cooling are built once as a "
|
||||
"backbone and filled with identical modules as presses arrive; heat is recovered from the "
|
||||
"flue gas, the condensate and the press returns before more is generated; every roof and "
|
||||
"canopy carries PV" + pick(" through a solar PPA", "") + " (~640 kWp, over a third of the "
|
||||
"launch plant's electricity even with electric steam, estimate), with a battery for "
|
||||
"ride-through; no "
|
||||
"process water is discharged; a fifth of the plastic is reclaimed; and biomass steam, if "
|
||||
"chosen, costs a quarter to a tenth of electric steam. The same choices push the energy line "
|
||||
"flue gas, the condensate and the press returns before more is generated; steam comes from "
|
||||
"biomass in both plans, at about a seventh of what electric steam would cost (~0.67M against "
|
||||
"~4.9M THB a year at launch, estimate); the factory roof carries PV" +
|
||||
pick(" through a solar PPA", "") + " (~520 kWp, ~61% of the launch plant's electricity, "
|
||||
"estimate), with the office roof and the canopies ready for more panels and a battery for "
|
||||
"ride-through; no process water is discharged; and a fifth of the plastic is reclaimed. The "
|
||||
"same choices push the energy line "
|
||||
"toward its low end and hedge Thai tariff rises; the heat recovery and automation can count "
|
||||
"toward BOI's Smart and Sustainable Industry measure" + pick(
|
||||
"", " and the owned battery may qualify as storage") + " (section 7.1; BOI no longer "
|
||||
@@ -688,7 +715,8 @@ def blocks():
|
||||
"the same land"],
|
||||
], widths_mm=[28, 44, 44, 54], font_pt=8.5),
|
||||
P("**Galvanics now raises the bar for every site.** With the electroplating line in the plan, a "
|
||||
"plot has to permit record pressing with a steam boiler **and** electroplating from day "
|
||||
"plot has to permit record pressing with a biomass-fired steam boiler **and** electroplating "
|
||||
"from day "
|
||||
"one, not in a later phase. That favours the industrial estate (licensing through the estate, "
|
||||
"shared effluent treatment) and makes zoning the first check everywhere else."),
|
||||
P("**Payap University** approached the project and is interested in leasing land next to a "
|
||||
@@ -706,11 +734,12 @@ def blocks():
|
||||
"could back the PVC lab. Any Payap plot is checked in this order, before any design work:"),
|
||||
N([
|
||||
"**Zoning:** the plot's zone in the Chiang Mai city plan allows a record-pressing factory with a "
|
||||
"steam boiler and electroplating (the neighbour's pharmaceutical permit proves little).",
|
||||
"biomass-fired steam boiler and electroplating (the neighbour's pharmaceutical permit proves "
|
||||
"little).",
|
||||
"**Lease-ability:** Chanote title, university council approval, and whether campus land of a "
|
||||
"private university can be leased commercially; with Thai counsel, together with the lease "
|
||||
"terms below.",
|
||||
"**The GMP neighbour:** a pharmaceutical plant is sensitive to the boiler stack, galvanics "
|
||||
"**The GMP neighbour:** a pharmaceutical plant is sensitive to the biomass boiler's stack, galvanics "
|
||||
"extraction, extrusion fumes, noise and trucks; emission and buffer rules go into the lease, "
|
||||
"not after the first complaint.",
|
||||
"**Flooding:** Payap describes the land as low-lying when bought; check the plot against the "
|
||||
@@ -743,9 +772,9 @@ def blocks():
|
||||
"figure.",
|
||||
]),
|
||||
P("Land requirements: ~4 rai minimum, 6 to 8 rai comfortable with expansion; truck access and "
|
||||
"turning, parking, the detached utility yard, a separated battery enclosure, and a medium-voltage "
|
||||
"connection from PEA (800 to 1,000 kVA for the five-press backbone without electric steam, 1,250 "
|
||||
"to 1,600 kVA with it)."),
|
||||
"turning, parking, the detached utility yard with truck access for biomass deliveries, a "
|
||||
"separated battery enclosure, and a medium-voltage connection from PEA (800 to 1,000 kVA for the "
|
||||
"five-press backbone on biomass steam; electric steam would need 1,250 to 1,600 kVA)."),
|
||||
|
||||
H2("6.2 The building"),
|
||||
P("The main building is a single-storey steel portal frame (pre-engineered) of **60 × 25 m "
|
||||
@@ -791,12 +820,14 @@ def blocks():
|
||||
"figures and their source."),
|
||||
IMG(pick("renders/calculator/plan-a-iso-roof.png", "renders/calculator/plan-b-iso-roof.png"), 170,
|
||||
"Figure 8. The site from above, " + label() + " preset of the plant and business plan calculator: "
|
||||
"every roof and canopy carries PV, ~640 kWp on the factory, the office and the car and scooter "
|
||||
"parking" + pick(", supplied through the solar PPA (the battery is drawn too; whether a PPA offer "
|
||||
"includes it is open)", ", owned with the battery") +
|
||||
"; the utility yard (boiler hall and chiller compound built for four modules each, pump and "
|
||||
"heat-exchanger room, transformer, water treatment, PVC silos) and the phase 2 reserve. Schematic render of the Payap scenario model (docs/fleet-calculator.html); "
|
||||
"positions and envelopes are estimates."),
|
||||
"PV on the factory roof, ~520 kWp" + pick(", supplied through the solar PPA (the battery is drawn "
|
||||
"too; whether a PPA offer includes it is open)",
|
||||
", owned with the battery") +
|
||||
", with the office roof and the car and scooter canopies PV-ready and without panels; the "
|
||||
"utility yard (biomass boiler hall and chiller compound built for four modules each, the "
|
||||
"biomass fuel store, the flue stack and dust collector, pump and heat-exchanger room, "
|
||||
"transformer, water treatment, PVC silos) and the phase 2 reserve. Schematic render of the "
|
||||
"Payap scenario model (docs/fleet-calculator.html); positions and envelopes are estimates."),
|
||||
IMG(pick("renders/calculator/plan-a-iso-gf.png", "renders/calculator/plan-b-iso-gf.png"), 170,
|
||||
"Figure 9. Ground floor with the roofs cut away, " + label() + " preset: from the west end the "
|
||||
"staff entry, workshop, galvanics (PASU, PPPU, PDPU, PMPB), Sibert stamper prep, metrology" +
|
||||
@@ -810,12 +841,14 @@ def blocks():
|
||||
IMG(pick("renders/calculator/plan-a-iso-hall.png", "renders/calculator/plan-b-iso-hall.png"), 170,
|
||||
"Figure 10. The press hall close up, " + label() + " preset: " + pick(
|
||||
"Duplex system 1 (two HRP 12 presses with their extruders) and the Classic; the dashed "
|
||||
"outlines are the free Duplex bays and Classic positions for growth. In the yard, boiler "
|
||||
"modules B-1 and B-2 and chillers CH-1 and CH-2, with B-3, B-4, CH-3 and CH-4 free",
|
||||
"outlines are the free Duplex bays and Classic positions for growth. In the yard, biomass "
|
||||
"boiler modules B-1 and B-2 with the fuel store, flue stack and dust collector, and chillers "
|
||||
"CH-1 and CH-2, with B-3, B-4, CH-3 and CH-4 free",
|
||||
"Duplex system 1 (two HRP 12 presses with their extruders) and the Classic, in a hall laid "
|
||||
"out for five Duplex bays and four Classic positions; the dashed outlines are the free bays "
|
||||
"and positions for growth. In the yard, boiler modules B-1 and B-2 and chillers CH-1 and "
|
||||
"CH-2, with B-3, B-4, CH-3 and CH-4 free; the 5 t crane over the hall, the visitor corridor "
|
||||
"and positions for growth. In the yard, biomass boiler modules B-1 and B-2 with the fuel "
|
||||
"store, flue stack and dust collector, and chillers CH-1 and CH-2, with B-3, B-4, CH-3 and "
|
||||
"CH-4 free; the 5 t crane over the hall, the visitor corridor "
|
||||
"and the cassette and CD-R rooms are in place") +
|
||||
". Schematic, estimates."),
|
||||
H3("Crane, workshop and visitor corridor"),
|
||||
@@ -873,17 +906,18 @@ def blocks():
|
||||
])),
|
||||
H3("Utility yard and water-treatment building"),
|
||||
T(["Detached utility yard (decided October 2026)", "Size (estimate)"], [
|
||||
["Boiler hall, four 500 kg/h module positions (B-1 and B-2 at launch)", "~162 m² (18 × 9 m), "
|
||||
["Boiler hall, four 500 kg/h biomass module positions (B-1 and B-2 at launch)", "~162 m² (18 × 9 m), "
|
||||
"6.0 m high"],
|
||||
["Biomass fuel store", "42 m²"],
|
||||
["Biomass fuel store (~6 to 7 weeks of fresh chips; ~80 m² would hold a 3-month monsoon "
|
||||
"stock)", "42 m² drawn"],
|
||||
["Chiller compound, open and screened, four pads (CH-1 and CH-2"
|
||||
" at launch)", "~135 m² (12.5 × "
|
||||
"10.8 m)"],
|
||||
["Cooling pump and heat-exchanger room", "~40 m² (8 × 5 m)"],
|
||||
["Flue stack", "14 m"],
|
||||
["Flue stack, with the dust collector and fans along the boiler hall's back wall", "14 m"],
|
||||
["**Yard in all**", "**~379 m²**, against 178 m² before the four-module decision"],
|
||||
], widths_mm=[110, 60],
|
||||
caption="The fired case sets the boiler hall (an electric bank would need about half). No "
|
||||
caption="The biomass bank of both plans sets the boiler hall (an electric bank would need about half). No "
|
||||
"cooling tower: the chillers are air-cooled. The rooms are built once for four modules "
|
||||
"and the plant goes in one module at a time; the yard sits outside the main building "
|
||||
"because the boiler must have its own room and biomass deliveries need yard access."),
|
||||
@@ -904,8 +938,8 @@ def blocks():
|
||||
H3("Site works and the second building"),
|
||||
P("On the Mueang Chi parcel the site works are a ~444 m perimeter wall, one 10 m sliding gate with "
|
||||
"a guard house, 4,387 m² of paving in two classes (1,608 m² heavy-duty for trucks, 2,779 m² "
|
||||
"general), roofed parking for 10 cars and 30 scooters with its canopies fully covered in PV (~54 "
|
||||
"kWp; ~40 kWp in the construction RFQ), a ring foundation "
|
||||
"general), roofed parking for 10 cars and 30 scooters under PV-ready canopies (steel for ~40 "
|
||||
"kWp of panels in the construction RFQ; panels later), a ring foundation "
|
||||
"for a 9 m fire-water tank with its pump house and one for a 5 m raw-water tank, a fire ring main "
|
||||
"and hydrants, stormwater drainage and domestic sanitation. With the buildings, ~6,549 m² or 68% "
|
||||
"of the modelled plot is sealed, so stormwater attenuation, quite possibly a detention pond, may "
|
||||
@@ -930,7 +964,9 @@ def blocks():
|
||||
"utility yard with floors, pads and plinths for all four positions; a lump sum for the rest of "
|
||||
"the site works; and the foundation assumption behind all of it. It excludes process machinery, "
|
||||
"PV, air conditioning, boilers, chillers and tanks, sprinklers, fit-out and the PEA transformer, "
|
||||
"and asks whether permit drawings for the building permit and the factory licence are included."),
|
||||
"and asks whether permit drawings for the building permit and the factory licence are included. "
|
||||
"The PV-ready provisions (the canopy steel it already specifies, roof loads for panels, conduit to "
|
||||
"the main board and a spare way for a later inverter) belong to the same works."),
|
||||
H3("What the building costs, and what is not known"),
|
||||
T(["Block", "USD", "THB", "Basis"], [
|
||||
["Building ~1,500 m² plus civil and site works", "650k to 1,100k", "21.4M to 36.3M",
|
||||
@@ -948,7 +984,8 @@ def blocks():
|
||||
["Visitor corridor and accessible entrance", "67k to 148k", "2.2M to 4.9M", "estimate; "
|
||||
"building it later would take ~3.6M THB out at the midpoint"]),
|
||||
["Utility yard for four boiler and four chiller modules", "73k to 122k", "2.4M to 4.0M",
|
||||
"estimate at the building rate"],
|
||||
"estimate at the building rate; the biomass fuel store and handling (1.0M to 2.0M THB) sit in "
|
||||
"the utilities block"],
|
||||
["Water-treatment building next to galvanics", "52k to 87k", "1.7M to 2.9M", "estimate at the "
|
||||
"building rate"],
|
||||
pick(["**Together**", "**~0.84M to 1.48M**", "**~28M to 49M**", "sum of the blocks; the plan "
|
||||
@@ -979,8 +1016,8 @@ def blocks():
|
||||
"decontamination procedures, eyewash and emergency shower at the line, and a hard-wired "
|
||||
"interlock (no extraction, no plating). A machine is lifted only after lockout (power isolated, "
|
||||
"steam vented, hydraulics depressurised including the accumulator) and with a lift plan; hot work "
|
||||
"stays in the workshop under a permit; the boilers run under a licensed boiler controller "
|
||||
"(section 7)."),
|
||||
"stays in the workshop under a permit; the biomass boilers run under a licensed boiler "
|
||||
"controller, a certified attendant from the maintenance team (section 7.2)."),
|
||||
P("Decided in October 2026: every member of staff, office included, gets group health insurance "
|
||||
"(inpatient and outpatient) and a yearly check-up on top of social security, plus the "
|
||||
"occupational checks Thai law requires for risk-factor work (press-floor heat and noise, "
|
||||
@@ -1060,8 +1097,8 @@ def blocks():
|
||||
"machinery and raw materials lives, from the first capex invoice."),
|
||||
P("**Process:** file via the e-Investment system and present at an analyst meeting. BOI quotes "
|
||||
"about 40 working days to a decision for projects under THB 200M and 60 to 90 working days for "
|
||||
"larger tiers; at " + pick("~127M to 226M THB with the ramp-up reserve (~177M at the midpoint)",
|
||||
"~156M to 275M THB with the ramp-up reserve (~216M at the midpoint)") +
|
||||
"larger tiers; at " + pick("~132M to 233M THB with the ramp-up reserve (~182M at the midpoint)",
|
||||
"~156M to 277M THB with the ramp-up reserve (~217M at the midpoint)") +
|
||||
" the plan sits around that line, so the consultant "
|
||||
"confirms which applies. In practice it is roughly 4 to 6 months end to end to the certificate; "
|
||||
"the company is incorporated under it; machinery is imported within a window commonly 30 months "
|
||||
@@ -1071,7 +1108,8 @@ def blocks():
|
||||
"directly."),
|
||||
H2("7.2 Factory licence, galvanics and boilers"),
|
||||
P("BOI promotion does not replace the factory licence (Ror.Ngor. 4), hazardous-substance "
|
||||
"registration for the plating chemistry, wastewater permitting or the boiler rules. **Galvanics "
|
||||
"registration for the plating chemistry, wastewater permitting, the boiler rules or the air-emission "
|
||||
"limits for the biomass boiler's stack. **Galvanics "
|
||||
"is in the plant from launch, so the electroplating line, its chemistry and its zero-discharge "
|
||||
"effluent system are in the first factory licence application**, not a later amendment. The "
|
||||
"earlier plan to keep galvanics out of the first licence to protect the schedule no longer "
|
||||
@@ -1079,7 +1117,7 @@ def blocks():
|
||||
"sits on the path to the first paying release:"),
|
||||
B([
|
||||
"**The site must permit plating from day one** (section 6.1): zoning has to allow a "
|
||||
"record-pressing factory with a steam boiler and an electroplating line. The industrial "
|
||||
"record-pressing factory with a biomass-fired steam boiler and an electroplating line. The industrial "
|
||||
"estate's licensing and shared effluent treatment are the easiest path; on Mueang Chi the "
|
||||
"permit is ours; on Payap land the lessor's written consent comes on top.",
|
||||
"**Zero discharge is the design, and the application says so:** rinse water through the ZLD "
|
||||
@@ -1100,13 +1138,16 @@ def blocks():
|
||||
"reported to DIW within 30 days; **a licensed boiler controller on site**; and **inspection at "
|
||||
"least once a year**. The relief for small once-through units does not apply at ~10.5 bar (our "
|
||||
"reading), and the labour-side regulation of 2021 adds licensed-engineer installation and "
|
||||
"testing and a feedwater standard. " + pick(
|
||||
"**This plan's two boiler bodies come from a Chinese maker, so they take the imported-boiler "
|
||||
"route of the notification:** verification by a registered certification body with the full "
|
||||
"dossier, and an ASME Section I design at 1.25 MPa with the S stamp, because a boiler built "
|
||||
"to the Chinese GB code would rest on 'or equivalent' with no precedent found. ",
|
||||
"The plan's modules come from Thai suppliers to the same ASME specification; a Chinese "
|
||||
"boiler built to the Chinese GB code would rest on 'or equivalent' with no precedent found. ") +
|
||||
"testing and a feedwater standard. Both plans price the biomass modules from a Thai maker to the "
|
||||
"ASME specification of section 5.4. A Chinese biomass boiler" + pick(
|
||||
" (the open decision point of section 5.4)", "") + " would take the imported-boiler route of "
|
||||
"the notification: verification by a registered certification body with the full dossier, and an "
|
||||
"ASME Section I design at 1.25 MPa with the S stamp, because a boiler built to the Chinese GB code "
|
||||
"would rest on 'or equivalent' with no precedent found. **Biomass adds to the permit work** (to "
|
||||
"confirm with the permit engineer before the RFQ): the boiler registered with DIW; the air-emission "
|
||||
"limits for a solid-fuel boiler met at the 14 m stack, with the dust collector in the boiler "
|
||||
"package; the fuel store and ash handling in the factory licence drawings; and the licensed "
|
||||
"boiler controller, a certified attendant from the maintenance team. " +
|
||||
"DIW has announced a "
|
||||
"revision of the boiler, pressure-vessel and refrigeration rules, so they are rechecked before "
|
||||
"the RFQ, and a certification body is engaged before any boiler order."),
|
||||
|
||||
@@ -48,29 +48,36 @@ def _block_rows():
|
||||
"station", "350k to 810k", "11.6M to 26.7M", "Estimate; all of it at launch (Plan A buys the laser "
|
||||
"confocal and the wide-area profiler from revenue)"]),
|
||||
["PVC lab, day-one tier", "55k to 150k", "1.8M to 5.0M", "Estimate"],
|
||||
pick(["Steam, cooling and compressed air: two 500 kg/h boiler modules (priced electric), cooling "
|
||||
"backbone for four modules (plate heat exchanger, tanks, pumps, mains), two 250 kW chiller "
|
||||
"modules (CH-1, CH-2), screw compressor, dryer and receiver", "239k to 416k", "7.9M to 13.7M",
|
||||
"Researched: utilities rows; boilers and compressor through the Chinese route (lever 6): "
|
||||
"ASME-stamped 1.25 MPa boiler bodies installed by a Thai contractor, the compressor from a "
|
||||
"Chinese brand's Thai office"],
|
||||
["Steam, cooling and compressed air: two 500 kg/h boiler modules (priced electric), cooling "
|
||||
"backbone for four modules (plate heat exchanger, tanks, pumps, mains), two 250 kW chiller "
|
||||
"modules (CH-1, CH-2), screw compressor, dryer and receiver", "296k to 470k", "9.8M to 15.5M",
|
||||
"Researched: utilities rows; boilers and compressor from Thai suppliers, with local service"]),
|
||||
["Steam: two 500 kg/h biomass boiler modules (B-1, B-2; Getabec class), installed with fuel feed, "
|
||||
"grate and dust control", "182k to 303k", "6.0M to 10.0M", "Researched: utilities rows, the biomass "
|
||||
"package for ~1 t/h (engineering estimate); both plans run on biomass (decided 17 October 2026); the "
|
||||
"electric bank (Thai 4.5M to 7.0M, Chinese route 2.8M to 5.5M) is the alternative, not the plan"],
|
||||
["Biomass fuel store and handling: covered fuel store, chip bay, ash bins, a compact loader",
|
||||
"30k to 61k", "1.0M to 2.0M", "Estimate, utilities rows: 42 m² store drawn (~6 to 7 weeks of fresh "
|
||||
"chips), ~80 m² for a 3-month monsoon stock"],
|
||||
pick(["Cooling and compressed air: cooling backbone for four modules (plate heat exchanger, tanks, "
|
||||
"pumps, mains), two 250 kW chiller modules (CH-1, CH-2), screw compressor, dryer and receiver",
|
||||
"153k to 248k", "5.05M to 8.2M", "Researched: utilities rows; the compressor through the Chinese "
|
||||
"route (lever 6), from a Chinese brand's Thai office"],
|
||||
["Cooling and compressed air: cooling backbone for four modules (plate heat exchanger, tanks, "
|
||||
"pumps, mains), two 250 kW chiller modules (CH-1, CH-2), screw compressor, dryer and receiver",
|
||||
"159k to 258k", "5.25M to 8.5M", "Researched: utilities rows; the compressor from a Thai supplier, "
|
||||
"with local service"]),
|
||||
["Whole-factory HVAC, clean-room adder for galvanics and the cutting room, softener, loop treatment, "
|
||||
"racking", "297k to 627k", "9.8M to 20.7M", "Researched: utilities rows"],
|
||||
]
|
||||
if not a:
|
||||
rows.append(["Solar PV (EPC) on every roof and canopy, ~640 kWp, and the 271 kWh Gobel battery, owned",
|
||||
"449k to 610k", "14.8M to 20.1M",
|
||||
"Researched: utilities rows; PV at 20 to 26 THB/W installed, inverters included (12.8M to "
|
||||
"16.6M), battery 2.0M to 3.5M; ~85 % of the yield used on site under zero export (estimate); "
|
||||
rows.append(["Solar PV (EPC) on the factory roof, ~520 kWp, and the 271 kWh Gobel battery, owned (the "
|
||||
"office roof and the canopies PV-ready, panels later)",
|
||||
"376k to 516k", "12.4M to 17.0M",
|
||||
"Researched: utilities rows; PV at 20 to 26 THB/W installed, inverters included (10.4M to "
|
||||
"13.5M), battery 2.0M to 3.5M; ~87 % of the yield used on site under zero export (estimate); "
|
||||
"owned, so the plant keeps the whole bill saving (no BOI promotion for solar installations "
|
||||
"since 1 July 2025, section 8.4)"])
|
||||
rows += [
|
||||
["Building ~1,500 m² plus civil and site works", "650k to 1,100k", "21.4M to 36.3M", "Estimate at "
|
||||
"12,000 to 20,000 THB/m² plus ~20 % site works; soil is the main variable"],
|
||||
"12,000 to 20,000 THB/m² plus ~20 % site works; soil is the main variable; includes making the office "
|
||||
"roof and the canopies PV-ready (structure, conduit; small, estimate)"],
|
||||
pick(["Crane rented for the installations (mobile crane); frame, runway and machine door stay "
|
||||
"crane-ready", "39k to 91k", "1.3M to 3.0M", "Estimate: 40 % of the crane block (lever 5)"],
|
||||
["Overhead crane, runway, frame premium, machine door", "97k to 227k", "3.2M to 7.5M", "Estimate"]),
|
||||
@@ -95,22 +102,22 @@ def _block_rows():
|
||||
"4.5M to 9.7M", "Estimate; land is leased, so no land purchase"],
|
||||
]
|
||||
if a:
|
||||
rows.append(["Not bought at launch (levers, section 8.2): solar PV on every roof and canopy (~640 kWp) "
|
||||
rows.append(["Not bought at launch (levers, section 8.2): solar PV on the factory roof (~520 kWp) "
|
||||
"and the battery (solar PPA), visitor corridor, cassette and CD-R duplication", "none", "none", "The PPA installer owns and "
|
||||
"finances the array; the rest are growth steps from revenue"])
|
||||
rows += [
|
||||
pick(["**Subtotal, plan investment**", "**~3.56M to 6.25M**", "**~117.4M to 206.1M**",
|
||||
"**Midpoint ~161.7M THB (~4.90M USD)**"],
|
||||
["**Subtotal, plan investment**", "**~4.42M to 7.73M**", "**~145.9M to 255.2M**",
|
||||
"**Midpoint ~200.6M THB (~6.08M USD)**"]),
|
||||
pick(["**Subtotal, plan investment**", "**~3.68M to 6.44M**", "**~121.6M to 212.6M**",
|
||||
"**Midpoint ~167.1M THB (~5.06M USD)**"],
|
||||
["**Subtotal, plan investment**", "**~4.42M to 7.79M**", "**~146.0M to 257.1M**",
|
||||
"**Midpoint ~201.6M THB (~6.11M USD)**"]),
|
||||
["Ramp-up reserve: staff hired before first revenue, overheads until volume covers them",
|
||||
"~0.30M to 0.61M", "10M to 20M", "Estimate; cash the investor puts in, so it is in the plan price"],
|
||||
pick(["**Plan A price**", "**~3.86M to 6.85M**", "**~127M to 226M**",
|
||||
"**Midpoint ~177M THB (~5.35M USD): ~180M THB**"],
|
||||
["**Plan B price**", "**~4.72M to 8.34M**", "**~156M to 275M**",
|
||||
"**Midpoint ~216M THB (~6.53M USD): ~215M THB**"]),
|
||||
pick(["**Plan A price**", "**~3.99M to 7.05M**", "**~132M to 233M**",
|
||||
"**Midpoint ~182M THB (~5.52M USD): ~180M THB, ~2M above 180M**"],
|
||||
["**Plan B price**", "**~4.73M to 8.40M**", "**~156M to 277M**",
|
||||
"**Midpoint ~217M THB (~6.56M USD): ~215M THB**"]),
|
||||
["Contingency: not in the plan price", "", "", pick(
|
||||
"For information: at 15 %, ~24M THB at the midpoint",
|
||||
"For information: at 15 %, ~25M THB at the midpoint",
|
||||
"For information: at 15 %, ~30M THB at the midpoint")],
|
||||
]
|
||||
return rows
|
||||
@@ -119,28 +126,30 @@ def _block_rows():
|
||||
def _levers_table():
|
||||
"""Plan A: the six levers from the launch plant with every block, midpoints, no contingency."""
|
||||
return T(["Step", "Saves", "Subtotal after it", "What it gives up"], [
|
||||
["Launch plant, every block, no contingency", "", "~200.6M THB (~6.08M USD)", ""],
|
||||
["1. Solar on every roof and canopy (~640 kWp) and the battery through a solar PPA (the installer owns "
|
||||
"and finances the array; the plant buys the power)", "~17.5M", "~183.1M", "Owned solar and its whole "
|
||||
"bill saving: adds the PPA power price to the energy bill, ~0.07M USD (~2.3M THB) a year in the "
|
||||
"calculator for ~760 MWh used on site at 3.0 THB/kWh (estimate, to quote)"],
|
||||
["Launch plant, every block, no contingency", "", "~201.6M THB (~6.11M USD)", ""],
|
||||
["1. Solar on the factory roof (~520 kWp) and the battery through a solar PPA (the installer owns "
|
||||
"and finances the array; the plant buys the power)", "~14.7M", "~186.9M", "Owned solar and its whole "
|
||||
"bill saving: adds the PPA power price to the energy bill, ~0.06M USD (~1.9M THB) a year in the "
|
||||
"calculator for ~633 MWh used on site at 3.0 THB/kWh (estimate, to quote)"],
|
||||
["2. Metrology launch tier: XRF, inline vision and audio station at launch; laser confocal and "
|
||||
"wide-area profiler (USD 180k to 350k) bought from revenue", "~8.8M", "~174.4M", "Every stamper and "
|
||||
"wide-area profiler (USD 180k to 350k) bought from revenue", "~8.8M", "~178.1M", "Every stamper and "
|
||||
"record is still measured (XRF, inline vision on the presses, audio station); the confocal and the "
|
||||
"profiler come later"],
|
||||
["3. Visitor corridor built later", "~3.6M", "~170.8M", "No public tours at first: the tour route and "
|
||||
["3. Visitor corridor built later", "~3.6M", "~174.5M", "No public tours at first: the tour route and "
|
||||
"the Payap programmes around it start later"],
|
||||
["4. Cassette and CD-R duplication later", "~4.0M", "~166.8M", "No cassette or CD-R at launch; a growth "
|
||||
["4. Cassette and CD-R duplication later", "~4.0M", "~170.5M", "No cassette or CD-R at launch; a growth "
|
||||
"step"],
|
||||
["5. Crane rented for the installations (mobile crane)", "~3.2M", "~163.6M", "No overhead crane at "
|
||||
["5. Crane rented for the installations (mobile crane)", "~3.2M", "~167.3M", "No overhead crane at "
|
||||
"first; frame, runway and machine door stay crane-ready, so it can be bought later if needed"],
|
||||
["6. Boilers and compressor through the Chinese route", "~1.9M", "**~161.7M (~4.90M USD)**",
|
||||
"Imported boilers take the Thai route (Ministry of Industry boiler notification B.E. 2549: design "
|
||||
"and import rules, a certification body registered with the Department of Industrial Works) with an "
|
||||
"ASME S stamp at 1.25 MPa"],
|
||||
["6. Compressor through the Chinese route (a Chinese brand's Thai office)", "~0.25M",
|
||||
"**~167.1M (~5.06M USD)**", "A Chinese brand's screw compressor (Kaishan or Denair, both with Thai "
|
||||
"offices) instead of a Thai supplier's. The route priced only electric boilers; Chinese biomass "
|
||||
"boilers (ZOZEN, Sitong, Taiguo, Yongxing) are not priced yet, and a quote ~2M THB or more below the "
|
||||
"Thai biomass package would put Plan A back under 180M"],
|
||||
["Ramp-up reserve", "", "+10M to 20M", ""],
|
||||
["**Plan A**", "", "**~177M THB (~5.35M USD)**", "~127M to 226M from the low to the high end of every "
|
||||
"block"],
|
||||
["**Plan A**", "", "**~182M THB (~5.52M USD)**", "**~2M above 180M at the midpoint** (177M to 187M "
|
||||
"with the reserve's 10M to 20M); ~132M to 233M from "
|
||||
"the low to the high end of every block"],
|
||||
], widths_mm=[56, 16, 32, 66], font_pt=8.5,
|
||||
caption="Midpoint values without contingency, estimates; docs/finance/total-investment.md 'Two plans'. "
|
||||
"The levers keep every machine of the launch plant.")
|
||||
@@ -149,10 +158,11 @@ def _levers_table():
|
||||
def _keeps_table():
|
||||
"""Plan B: what it keeps that Plan A's six levers move off the launch budget, midpoints, no contingency."""
|
||||
return T(["In at launch in Plan B", "What it gives the plant", "THB, midpoint (Plan A's lever)"], [
|
||||
["Solar PV on every roof and canopy (~640 kWp) and the 271 kWh battery, owned (EPC and Gobel battery)",
|
||||
"No PPA power bill: the whole saving on the ~760 MWh used on site (~2.8M to 3.0M THB a year) stays "
|
||||
"with the plant instead of ~2.3M THB (~0.07M USD) a year going to a PPA installer; payback ~4.2 to "
|
||||
"5.9 years (estimates)", "~17.5M"],
|
||||
["Solar PV on the factory roof (~520 kWp; the office roof and the canopies PV-ready) and the 271 kWh "
|
||||
"battery, owned (EPC and Gobel battery)",
|
||||
"No PPA power bill: the whole saving on the ~633 MWh used on site (~2.3M to 2.5M THB a year) stays "
|
||||
"with the plant instead of ~1.9M THB (~0.06M USD) a year going to a PPA installer; payback ~4.1 to "
|
||||
"5.8 years (estimates)", "~14.7M"],
|
||||
["Metrology, full stack: XRF, laser confocal, wide-area profiler, inline vision, audio station",
|
||||
"Every stamper measured fully from the first release, the core of the traceability pitch", "~8.8M"],
|
||||
["Visitor corridor and accessible entrance", "Public tours and the Payap programmes possible from the "
|
||||
@@ -161,47 +171,44 @@ def _keeps_table():
|
||||
["5 t overhead crane, runway, frame premium, machine door, bought", "Its own crane over the press "
|
||||
"hall; no mobile crane to rent for "
|
||||
"the installations", "~3.2M"],
|
||||
["Boilers and compressor from Thai suppliers", "Local service; no import route for the boilers",
|
||||
"~1.9M"],
|
||||
["**Together**", "", "**~39M (200.6M minus Plan A's 161.7M)**"],
|
||||
["Launch plant, every block, no contingency: Plan B's subtotal", "", "~200.6M (~6.08M USD)"],
|
||||
["Screw compressor from a Thai supplier", "Local service", "~0.25M"],
|
||||
["**Together**", "", "**~34.5M (201.6M minus Plan A's 167.1M)**"],
|
||||
["Launch plant, every block, no contingency: Plan B's subtotal", "", "~201.6M (~6.11M USD)"],
|
||||
["Ramp-up reserve", "", "+10M to 20M"],
|
||||
["**Plan B**", "", "**~216M THB (~6.53M USD)**; ~156M to 275M from the low to the high end"],
|
||||
["**Plan B**", "", "**~217M THB (~6.56M USD)**; ~156M to 277M from the low to the high end"],
|
||||
], widths_mm=[62, 70, 38], font_pt=8.5,
|
||||
caption="Midpoint values without contingency, estimates; docs/finance/total-investment.md 'Two plans'. "
|
||||
"Each figure is what the matching Plan A lever saves; rounded, the six add to ~39.0M, and the "
|
||||
"two subtotals differ by ~38.9M.")
|
||||
"Each figure is what the matching Plan A lever saves; rounded, the six add to ~34.6M, and the "
|
||||
"two subtotals differ by ~34.5M. Steam is biomass in both plans, so the boilers are not a "
|
||||
"difference between them.")
|
||||
|
||||
|
||||
def _tranches():
|
||||
return T(["Tranche", "Trigger", "Covers", "Approx. share, THB"], [
|
||||
["0", "Now", "Phase 0 work (section 14.1)", "The Phase 0 block, ~1.3M to 2.6M (1 to 2 %)"],
|
||||
["1", "BOI certificate issued; lease signed; zoning and soil confirmed; pricing validated",
|
||||
pick("Deposits on every long-lead order: Pheenix galvanics line, Sillitoe lathe, Sibert line, Newbilt "
|
||||
"Duplex system and Classic; building design and permit; first boiler and chiller modules "
|
||||
"(boilers and compressor through the Chinese route)",
|
||||
"Deposits on every long-lead order: Pheenix galvanics line, Sillitoe lathe, Sibert line, Newbilt "
|
||||
"Duplex system and Classic; building design and permit; first boiler and chiller modules "
|
||||
"(boilers and compressor from Thai suppliers)"),
|
||||
pick("20 to 30 % (~32M to 49M)", "20 to 30 % (~40M to 60M)")],
|
||||
"Deposits on every long-lead order: Pheenix galvanics line, Sillitoe lathe, Sibert line, Newbilt "
|
||||
"Duplex system and Classic; building design and permit; the two biomass boiler modules and the first "
|
||||
"two chiller modules",
|
||||
pick("20 to 30 % (~33M to 50M)", "20 to 30 % (~40M to 60M)")],
|
||||
["2", "Building permit; vendor build dates confirmed in writing",
|
||||
"Construction, water-treatment building, utility yard, utilities, balance payments as machines are "
|
||||
"built",
|
||||
pick("35 to 45 % (~57M to 73M)", "35 to 45 % (~70M to 90M)")],
|
||||
pick("35 to 45 % (~58M to 75M)", "35 to 45 % (~71M to 91M)")],
|
||||
["3", "Building watertight; first machinery shipped",
|
||||
pick("Fit-out, HVAC and clean zones, ZLD and DI water, the rented crane for the installations, the "
|
||||
"metrology launch tier, factory software and ERPNext, the launch team",
|
||||
"Fit-out, HVAC and clean zones, ZLD and DI water, solar PV on every roof and canopy and the "
|
||||
"Fit-out, HVAC and clean zones, ZLD and DI water, solar PV on the factory roof and the "
|
||||
"battery, crane, visitor corridor, the full metrology stack, factory software and ERPNext, cassette and CD-R lines, the "
|
||||
"launch team"),
|
||||
pick("15 to 20 % (~24M to 32M)", "15 to 20 % (~30M to 40M)")],
|
||||
pick("15 to 20 % (~25M to 33M)", "15 to 20 % (~30M to 40M)")],
|
||||
["4", "Cutting room and galvanics commissioned; first stampers made", "Working capital, PVC stock, "
|
||||
"spares, first-year rent; the ramp-up reserve (10M to 20M THB, in the plan price) is drawn from here "
|
||||
"on", pick("8 to 12 % (~13M to 19M), plus the reserve", "8 to 12 % (~16M to 24M), plus the reserve")],
|
||||
"on", pick("8 to 12 % (~13M to 20M), plus the reserve", "8 to 12 % (~16M to 24M), plus the reserve")],
|
||||
], widths_mm=[14, 46, 78, 32], font_pt=8.5,
|
||||
caption=pick("Shares of Plan A's investment before the reserve (~161.7M THB at the midpoint); the THB "
|
||||
caption=pick("Shares of Plan A's investment before the reserve (~167.1M THB at the midpoint); the THB "
|
||||
"figures are the shares applied to it (arithmetic, estimates).",
|
||||
"Shares of Plan B's investment before the reserve (~200.6M THB at the midpoint); the THB "
|
||||
"Shares of Plan B's investment before the reserve (~201.6M THB at the midpoint); the THB "
|
||||
"figures are the shares applied to it (arithmetic, estimates)."))
|
||||
|
||||
|
||||
@@ -218,11 +225,11 @@ def _operating_table():
|
||||
["**Total contribution**", "**0.68M**", "**2.06M**", "**3.99M**"],
|
||||
["Cash overheads", "0.45M", "0.33M", "0.20M"],
|
||||
["**EBITDA**", "**0.23M**", "**1.73M**", "**3.79M**"],
|
||||
["Depreciation", "0.62M", "0.39M", "0.24M"],
|
||||
["**Operating profit**", "**-0.39M**", "**1.34M**", "**3.55M**"],
|
||||
["Depreciation", "0.64M", "0.40M", "0.25M"],
|
||||
["**Operating profit**", "**-0.41M**", "**1.33M**", "**3.54M**"],
|
||||
["Revenue", "2.28M (~75M THB)", "3.65M (~120M THB)", "5.41M (~179M THB)"],
|
||||
["Payback on the plan price (EBITDA, mature year)", "~30 yr", "~3.1 yr (2.2 to 4.0 on 3.86M to "
|
||||
"6.85M)", "~1.0 yr"],
|
||||
["Payback on the plan price (EBITDA, mature year)", "~31 yr", "~3.2 yr (2.3 to 4.1 on 3.99M to "
|
||||
"7.05M)", "~1.1 yr"],
|
||||
]
|
||||
else:
|
||||
rows = [
|
||||
@@ -235,11 +242,11 @@ def _operating_table():
|
||||
["**Total contribution**", "**0.68M**", "**2.06M**", "**3.99M**"],
|
||||
["Cash overheads", "0.45M", "0.33M", "0.20M"],
|
||||
["**EBITDA**", "**0.23M**", "**1.73M**", "**3.79M**"],
|
||||
["Depreciation", "0.77M", "0.49M", "0.29M"],
|
||||
["**Operating profit**", "**-0.54M**", "**1.24M**", "**3.50M**"],
|
||||
["Depreciation", "0.78M", "0.49M", "0.29M"],
|
||||
["**Operating profit**", "**-0.55M**", "**1.24M**", "**3.50M**"],
|
||||
["Revenue", "2.28M (~75M THB)", "3.65M (~120M THB)", "5.41M (~179M THB)"],
|
||||
["Payback on the plan price (EBITDA, mature year)", "~36 yr", "~3.8 yr (2.7 to 4.8 on 4.72M to "
|
||||
"8.34M)", "~1.2 yr"],
|
||||
["Payback on the plan price (EBITDA, mature year)", "~37 yr", "~3.8 yr (2.7 to 4.9 on 4.73M to "
|
||||
"8.40M)", "~1.2 yr"],
|
||||
]
|
||||
return T(["USD per year, mature", "Adverse", "Central", "Favourable"], rows, widths_mm=[50, 36, 48, 36],
|
||||
caption="Estimates, docs/finance/revenue-model.md 'Operating pictures of Plan A and Plan B (October "
|
||||
@@ -257,15 +264,15 @@ def _risk_rows():
|
||||
]
|
||||
rows += [
|
||||
["High", "No contingency in the plan price", pick(
|
||||
"Quotes landing high are not covered: at 15 % a contingency would be ~24M THB at the midpoint, "
|
||||
"and the high end of every block comes to ~226M with the reserve",
|
||||
"Quotes landing high are not covered: at 15 % a contingency would be ~25M THB at the midpoint, "
|
||||
"and the high end of every block comes to ~233M with the reserve",
|
||||
"Quotes landing high are not covered: at 15 % a contingency would be ~30M THB at the midpoint, "
|
||||
"and the high end of every block comes to ~275M with the reserve"),
|
||||
"and the high end of every block comes to ~277M with the reserve"),
|
||||
"The requests that settle most of the band come before commitment (section 8.4); tranche release; "
|
||||
"how overruns are funded (outside the plan price or by scope steps) agreed with the investor up "
|
||||
"front"],
|
||||
["High", "Utilisation and price", pick(
|
||||
"The cost structure is mostly fixed; the adverse case loses money: it needs ~0.9M records to cover "
|
||||
"The cost structure is mostly fixed; the adverse case loses money: it needs ~1.0M records to cover "
|
||||
"depreciation and the three presses make 0.58M at that rate; at 60 % specials the Duplex rate and "
|
||||
"the extra cost of specials decide volume and margin",
|
||||
"The cost structure is mostly fixed; the adverse case loses money: it needs ~1.1M records to cover "
|
||||
@@ -298,18 +305,18 @@ def _risk_rows():
|
||||
]
|
||||
if a:
|
||||
rows.append(["Medium", "Solar PPA price", "The PPA gives up owning the bill saving and adds a power "
|
||||
"price, ~0.07M USD (~2.3M THB) a year in the calculator at 3.0 THB/kWh, an estimate to "
|
||||
"price, ~0.06M USD (~1.9M THB) a year in the calculator at 3.0 THB/kWh, an estimate to "
|
||||
"quote. No BOI benefit is lost: the BOI dropped solar installations from its promotion on "
|
||||
"1 July 2025 (Announcement 3/2568); a PPA developer may itself be promoted (activity 7.1.2, "
|
||||
"an 8-year corporate income tax exemption), which may or may not show in its price",
|
||||
"PPA offers next to the purchase quote in phase 0, the developer's BOI promotion raised in "
|
||||
"the price negotiation; buying the array, as Plan B does, stays the alternative"])
|
||||
else:
|
||||
rows.append(["Medium", "The extra ~39M THB earns little in the model", "Plan B's operating picture is "
|
||||
"Plan A's (same presses, records, revenue and EBITDA; the calculator puts it ~0.07M USD a "
|
||||
"year ahead, the PPA bill its owned array avoids): the ~39M THB more at launch adds "
|
||||
"depreciation, so central operating profit is 1.24M against 1.34M USD, payback ~3.8 against "
|
||||
"~3.1 years and the adverse corner deeper; its case rests on that bill and on what the "
|
||||
rows.append(["Medium", "The extra ~35M THB earns little in the model", "Plan B's operating picture is "
|
||||
"Plan A's (same presses, records, revenue and EBITDA; the calculator puts it ~0.06M USD a "
|
||||
"year ahead, the PPA bill its owned array avoids): the ~35M THB more at launch adds "
|
||||
"depreciation, so central operating profit is 1.24M against 1.33M USD, payback ~3.8 against "
|
||||
"~3.2 years and the adverse corner deeper; its case rests on that bill and on what the "
|
||||
"table leaves out (cassette and CD-R sales, tours and the Payap programmes, full stamper "
|
||||
"metrology for the traceability pitch)", "Phase 0 prices each item against its lever (PPA "
|
||||
"offer next to the purchase quote, cassette and CD-R quotes); most items can also come "
|
||||
@@ -325,18 +332,22 @@ def _risk_rows():
|
||||
"water-treatment building from the "
|
||||
"start; industrial estate option; "
|
||||
"lessor's consent on Payap land"],
|
||||
["Medium", "Utilities fuel choice open", "Biomass heat costs a quarter to a tenth of electric steam "
|
||||
"at reported fuel prices; electric steam needs a larger grid connection, biomass a secured fuel "
|
||||
"supply", "Decide before the boiler request and the grid application; quote electric and fired "
|
||||
"variants of the same modules"],
|
||||
["Medium", "Boiler import compliance (DIW)", pick(
|
||||
"This plan imports its boiler modules from China: an imported boiler must meet ASME, JIS, EN or "
|
||||
"equivalent and be verified by a DIW-registered certification body; the modules run above the "
|
||||
"once-through relief",
|
||||
"An imported boiler must meet ASME, JIS, EN or equivalent and be verified by a DIW-registered "
|
||||
"certification body; the modules run above the once-through relief"),
|
||||
"ASME Section I design with the S stamp and the full dossier; certification body engaged before the "
|
||||
"order; the same for a Thai-bought boiler"],
|
||||
["Medium", "Biomass steam: fuel, permits and the burning season", "Fuel price and supply set the "
|
||||
"steam cost (planning price 1.35 to 2 THB/kg delivered; ~460 t of fresh chips a year at ~850k "
|
||||
"records, ~0.67M THB, estimate); boiler registration and the air-emission limits for a solid-fuel "
|
||||
"boiler come into the permit work (to confirm); the stack is a visible point source in Chiang Mai's "
|
||||
"burning season", "Fuel contracts and a 3-month monsoon stock (~80 m² of covered store); the team's "
|
||||
"60 rai of own fuelwood later, after the land-title check; the dust collector and the 14 m stack "
|
||||
"drawn from the start, dust control part of the plant's story; a certified boiler attendant from "
|
||||
"the maintenance team; electric modules stay the fallback" + pick(
|
||||
"; a Chinese biomass boiler quote ~2M THB or more below the Thai package would bring Plan A back "
|
||||
"under 180M", "")],
|
||||
["Medium", "Boiler registration and import rules (DIW)", "Every steam boiler is registered with the "
|
||||
"Department of Industrial Works and run by a certified attendant; a boiler bought abroad must also "
|
||||
"meet ASME, JIS, EN or equivalent and be verified by a DIW-registered certification body" + pick(
|
||||
", which applies if Plan A takes a Chinese biomass boiler", ""),
|
||||
"A Thai-fabricated biomass package (Getabec class) as the base; for an import, ASME Section I design "
|
||||
"with the S stamp and the full dossier, the certification body engaged before the order"],
|
||||
["Medium", "Single press vendor (Newbilt)", "All three presses, the extruders and the hydraulic "
|
||||
"aggregates come from one small German manufacturer; build time and order book unknown",
|
||||
"Spares and service terms in the re-quote; the Pheenix automatic press stays the comparison if the "
|
||||
@@ -368,7 +379,7 @@ def _risk_rows():
|
||||
"warranty move to the installer, but the plant still depends on the array", "Engineering checks "
|
||||
"of the installer's design in phase 0; large float"],
|
||||
["Low", "Solar and battery integration", "Rack voltage vs inverter window; unpublished "
|
||||
"certifications; mixed-vendor warranty; under PEA's zero export ~15 % of the ~640 kWp array's "
|
||||
"certifications; mixed-vendor warranty; under PEA's zero export ~13 % of the ~520 kWp array's "
|
||||
"yield is curtailed (estimate)", "Engineering checks and certificate requests in phase 0; PEA "
|
||||
"interconnection approval (3 to 6 months) filed alongside procurement; large float"]),
|
||||
["Low", "Cassette supply chain", pick("Blank tape and shells come from few suppliers, once the lines "
|
||||
@@ -389,11 +400,13 @@ def blocks():
|
||||
"This chapter prices **Plan A (~180M THB)**: the launch plant decided in October 2026, one Newbilt "
|
||||
"Duplex system and one Classic with the whole chain from the cutting room to the shrink wrapper, "
|
||||
"in one capital round and commissioned in sequence, brought down with six cost levers that keep "
|
||||
"every machine. ",
|
||||
"every machine. At the midpoint that is ~182M THB, **~2M above 180M** (section 8.2). ",
|
||||
"This chapter prices **Plan B (~215M THB)**: the launch plant decided in October 2026, one Newbilt "
|
||||
"Duplex system and one Classic with the whole chain from the cutting room to the shrink wrapper, "
|
||||
"in one capital round and commissioned in sequence, with everything in: none of Plan A's six cost "
|
||||
"levers taken. ") +
|
||||
"In both plans the steam comes from biomass and PV sits on the factory roof only (~520 kWp; the "
|
||||
"office roof and the canopies are built PV-ready), as decided on 17 October 2026. "
|
||||
"The plan price carries the ramp-up reserve, because that is cash the investor puts in, and **no "
|
||||
"contingency**. Blocks marked 'estimate' have no vendor confirmation; the rest trace to quotes, "
|
||||
"published prices or researched ranges. Treat all figures as budgetary with a wide margin (plus or "
|
||||
@@ -416,7 +429,7 @@ def blocks():
|
||||
"The second Duplex system and further Classics are growth options with room reserved (hall "
|
||||
"floor, utility module positions, ring-main tees), not part of this plan.")),
|
||||
P("**Not in the plan price:** a contingency (the blocks are budgetary, so the plan carries no buffer "
|
||||
"for quotes landing high; at 15 % it would be " + pick("~24M", "~30M") + " THB at the midpoint); CD "
|
||||
"for quotes landing high; at 15 % it would be " + pick("~25M", "~30M") + " THB at the midpoint); CD "
|
||||
"replication (section 4.10); financing costs; currency moves; the mobile shelving for the father and "
|
||||
"mother archive (to quote); and the central hydraulic plant around the Newbilt aggregates (standby "
|
||||
"pump set, accumulator station, ring main), not costed yet, for a Thai hydraulic power unit builder "
|
||||
@@ -424,37 +437,41 @@ def blocks():
|
||||
"promotion: without it, ~5 % duty on ~2.3M USD of imported machinery (~0.11M USD, the launch "
|
||||
"plant's estimate) comes on top, plus ~0.17M USD of import VAT paid at the border and reclaimed "
|
||||
"later (estimates)" + pick(
|
||||
". Plan A imports its boiler modules and buys less metrology at launch; the estimate is not "
|
||||
"re-sized for either.",
|
||||
". Plan A buys less metrology at launch; the estimate is not re-sized for it.",
|
||||
". Plan B is the launch plant that estimate was made for.")),
|
||||
|
||||
H2("8.2 Two versions of this plan"),
|
||||
P("The lead investor asked in October 2026 whether the plant can be built for **180M THB (~5.45M USD), "
|
||||
"possibly up to 20 % more**. The answer is two versions of this plan, built from the same documents, "
|
||||
"both priced without contingency and with the ramp-up reserve: **Plan A** keeps every machine of "
|
||||
"the launch plant and brings it to ~180M THB with six cost levers; **Plan B** builds the same "
|
||||
"launch plant with everything in, none of the levers taken, at ~215M THB, just within 180M plus "
|
||||
"20 % (216M). "
|
||||
"the launch plant and brings it to ~180M THB with six cost levers, ~182M at the midpoint, which is "
|
||||
"**~2M above 180M** (the low end of the reserve, 177M, fits); **Plan B** builds the same launch plant "
|
||||
"with everything in, none of the levers taken, at ~215M THB: ~217M at the midpoint, ~0.6M above "
|
||||
"180M plus 20 % (216M) and inside 225M. Both burn biomass for steam and carry PV on the factory roof "
|
||||
"only. "
|
||||
"This document is " + label() + ". How the two differ (estimates):"),
|
||||
T(["Midpoints, estimates", "Plan A" + pick(" (this plan)", ""), "Plan B" + pick("", " (this plan)")], [
|
||||
["Plan price: ramp-up reserve in, no contingency", "~177M THB (~5.35M USD): ~180M",
|
||||
"~216M THB (~6.53M USD): ~215M"],
|
||||
["Low to high end of every block", "~127M to 226M THB", "~156M to 275M THB"],
|
||||
["Plan price: ramp-up reserve in, no contingency", "~182M THB (~5.52M USD): ~180M, ~2M above "
|
||||
"180M at the midpoint",
|
||||
"~217M THB (~6.56M USD): ~215M"],
|
||||
["Low to high end of every block", "~132M to 233M THB", "~156M to 277M THB"],
|
||||
["Presses", "3: Duplex system 1 (two HRP 12) and one Classic", "The same 3"],
|
||||
["Steam and solar", "Biomass steam (two 500 kg/h modules); ~520 kWp on the factory roof through a "
|
||||
"solar PPA", "Biomass steam, the same; the ~520 kWp array and the battery owned"],
|
||||
["Records a year at 60 % specials", "~0.58 to 0.90M, central 0.74M (Duplex-limited)", "The same"],
|
||||
["Revenue, central", "3.65M USD (~120M THB)", "The same (cassette and CD-R not modelled)"],
|
||||
["EBITDA, central", "1.73M USD", "1.73M USD (calculator: 2.12M against Plan A's 2.05M, no PPA "
|
||||
["EBITDA, central", "1.73M USD", "1.73M USD (calculator: 2.23M against Plan A's 2.17M, no PPA "
|
||||
"power bill)"],
|
||||
["Operating profit, adverse case", "-0.39M USD: loses money", "-0.54M USD: loses more (more "
|
||||
["Operating profit, adverse case", "-0.41M USD: loses money", "-0.55M USD: loses more (more "
|
||||
"depreciation on the same EBITDA)"],
|
||||
["Payback on the plan price, central (EBITDA, mature year)", "~3.1 yr (2.2 to 4.0)",
|
||||
"~3.8 yr (2.7 to 4.8; calculator: 2.9 yr against Plan A's 2.4)"],
|
||||
["What it gives up or takes on", "Six levers: solar through a PPA (a power bill of ~0.07M USD a "
|
||||
["Payback on the plan price, central (EBITDA, mature year)", "~3.2 yr (2.3 to 4.1)",
|
||||
"~3.8 yr (2.7 to 4.9; calculator: 2.7 yr against Plan A's 2.3)"],
|
||||
["What it gives up or takes on", "Six levers: solar through a PPA (a power bill of ~0.06M USD a "
|
||||
"year), confocal and profiler from revenue, no tours at first, cassette and CD-R later, a "
|
||||
"rented crane, Chinese boilers and compressor; the second Duplex waits for revenue", "No levers: "
|
||||
"buys at launch what Plan A leases or defers, ~39M THB more (owned solar and battery, ~640 kWp on "
|
||||
"every roof and canopy with no PPA bill, the full metrology stack, the visitor corridor, cassette "
|
||||
"and CD-R, a bought crane, Thai boilers and compressor); the second Duplex waits for revenue"],
|
||||
"rented crane, a Chinese compressor; the second Duplex waits for revenue", "No levers: "
|
||||
"buys at launch what Plan A leases or defers, ~35M THB (~19 %) more (owned solar and battery, "
|
||||
"~520 kWp on the factory roof with no PPA bill, the full metrology stack, the visitor corridor, "
|
||||
"cassette and CD-R, a bought crane, a Thai compressor); the second Duplex waits for revenue"],
|
||||
], widths_mm=[46, 62, 62], font_pt=8.5,
|
||||
caption="Estimates: docs/finance/total-investment.md 'Two plans' and docs/finance/revenue-model.md "
|
||||
"'Operating pictures of Plan A and Plan B'. Section 9 has this plan's operating picture."),
|
||||
@@ -462,11 +479,11 @@ def blocks():
|
||||
[P("**Plan A: six levers, every machine kept.** From the launch plant with every block, no "
|
||||
"contingency, midpoint values:"),
|
||||
_levers_table(),
|
||||
P("Plan B takes none of these levers: it buys at launch what they lease or defer, ~39M THB more "
|
||||
"at the midpoint, so ~200.6M THB before the reserve and ~216M (~215M THB) with it.")]
|
||||
P("Plan B takes none of these levers: it buys at launch what they lease or defer, ~34.5M THB more "
|
||||
"at the midpoint, so ~201.6M THB before the reserve and ~217M (~215M THB) with it.")]
|
||||
if a else
|
||||
[P("**Plan B: the launch plant with everything in, no levers.** What Plan B keeps that Plan A's six "
|
||||
"cost levers lease, defer or source abroad, midpoint values:"),
|
||||
"cost levers lease, defer or buy through the Chinese route, midpoint values:"),
|
||||
_keeps_table(),
|
||||
P("The plant itself is Plan A's: the same three presses, the same output and the same operating "
|
||||
"picture (section 9). The second Duplex system is a growth step from revenue in both plans, on a "
|
||||
@@ -475,18 +492,21 @@ def blocks():
|
||||
CALL("What decides between Plan A and Plan B", [
|
||||
"**No longer demand.** Both plans are the same three presses making the same ~0.58 to 0.90 million "
|
||||
"records a year (central 0.74 million); market validation (section 14.1, item 1) gates both alike.",
|
||||
"**~39M THB more at launch, for what Plan A leases or buys from revenue.** Plan B owns its array "
|
||||
"**~35M THB more at launch, for what Plan A leases or buys from revenue.** Plan B owns its array "
|
||||
"and keeps the whole bill saving (no PPA bill), measures every stamper fully from the first release "
|
||||
"(the traceability pitch), opens tours and the Payap programmes from day one, sells cassette and "
|
||||
"CD-R from the start, owns its crane and buys utilities with local service.",
|
||||
"CD-R from the start, owns its crane and buys its compressor with local service. Steam is biomass "
|
||||
"in both.",
|
||||
"**On the modelled numbers the extra earns little.** The same EBITDA in the revenue model (the "
|
||||
"calculator puts Plan B ~0.07M USD a year ahead, the PPA bill its owned array avoids), more "
|
||||
"depreciation, a longer payback (~3.8 against ~3.1 years) and a deeper adverse corner: Plan A has the better modelled "
|
||||
"calculator puts Plan B ~0.06M USD a year ahead, the PPA bill its owned array avoids), more "
|
||||
"depreciation, a longer payback (~3.8 against ~3.2 years) and a deeper adverse corner: Plan A has the better modelled "
|
||||
"return, Plan B the more complete plant. Most of Plan B's items can be added to Plan A later from "
|
||||
"revenue; the corridor is cheaper to have from the start, and every year the array is leased "
|
||||
"costs the PPA bill.",
|
||||
"**The quotes.** The Newbilt re-quote for the Classic and the EX 35, the Pheenix quote against the "
|
||||
"OMS reference, the building quote with the soil test, and, for Plan A, the solar PPA offer.",
|
||||
"OMS reference, the building quote with the soil test, and, for Plan A, the solar PPA offer and a "
|
||||
"Chinese biomass boiler quote: ~2M THB or more below the Thai package would put Plan A back under "
|
||||
"180M.",
|
||||
"**Neither price carries a contingency.** Quotes landing high are funded outside the plan price or "
|
||||
"by scope steps (section 8.4).",
|
||||
"**The second Duplex stays a growth step.** Its floor, utility module positions and ring-main "
|
||||
@@ -496,10 +516,11 @@ def blocks():
|
||||
" preset, contingency kept out of the total as in this plan."),
|
||||
IMG(pick("renders/calculator/plan-a-budget.png", "renders/calculator/plan-b-budget.png"), 160,
|
||||
"Figure 11. Budget card of the plant and business plan calculator, " + pick(
|
||||
"Plan A preset: 161.7M THB at the midpoint without contingency, 171.7M to 181.7M with the "
|
||||
"ramp-up reserve of 10M to 20M, inside 180M at the midpoint",
|
||||
"Plan B preset: 200.6M THB at the midpoint without contingency, 210.6M to 220.6M with the "
|
||||
"ramp-up reserve of 10M to 20M, 9.4M to spare under the 225M mark (180M plus 25 %)") +
|
||||
"Plan A preset: 167.1M THB at the midpoint without contingency, 177.1M to 187.1M with the "
|
||||
"ramp-up reserve of 10M to 20M; against 180M it is 2.1M over at the midpoint, and it fits 225M "
|
||||
"with 42.9M to spare",
|
||||
"Plan B preset: 201.6M THB at the midpoint without contingency, 211.6M to 221.6M with the "
|
||||
"ramp-up reserve of 10M to 20M, 8.4M to spare under the 225M mark (180M plus 25 %)") +
|
||||
". Bars: the investment at the low end, the midpoint and the high end of every block, the reserve "
|
||||
"hatched, against 180M and 225M THB. Calculator figures (docs/fleet-calculator.html), estimates."),
|
||||
|
||||
@@ -514,10 +535,11 @@ def blocks():
|
||||
H2("8.4 What moves the number"),
|
||||
B([
|
||||
"**No contingency in the price.** " + pick(
|
||||
"Plan A's ~177M THB is the midpoint of every block with the ramp-up reserve and no buffer: at "
|
||||
"15 % a contingency would add ~24M THB, and the high end of every block comes to ~226M. ",
|
||||
"Plan B's ~216M THB is the midpoint of every block with the ramp-up reserve and no buffer: at "
|
||||
"15 % a contingency would add ~30M THB, and the high end of every block comes to ~275M. ") +
|
||||
"Plan A's ~182M THB is the midpoint of every block with the ramp-up reserve and no buffer, ~2M "
|
||||
"above 180M: at 15 % a contingency would add ~25M THB, and the high end of every block comes to "
|
||||
"~233M. ",
|
||||
"Plan B's ~217M THB is the midpoint of every block with the ramp-up reserve and no buffer: at "
|
||||
"15 % a contingency would add ~30M THB, and the high end of every block comes to ~277M. ") +
|
||||
"Quotes landing above the midpoint are funded outside the plan price or by scope steps; how they are "
|
||||
"funded is a decision for the investor before commitment (section 14.2).",
|
||||
"**The quotes that decide it.** The Classic has no Newbilt price (its band is a placeholder "
|
||||
@@ -526,7 +548,8 @@ def blocks():
|
||||
"the EX 35 is priced only as the expired 2024 quote's second-extruder option; the building "
|
||||
"depends on the soil; and the solar PPA lever depends on an offer. The Newbilt re-quote, the "
|
||||
"Pheenix quote, the building request with a soil test, the metrology distributor quotes and "
|
||||
"the PPA offers settle most of the band.",
|
||||
"the PPA offers settle most of the band; a Chinese biomass boiler quote decides whether Plan A "
|
||||
"comes back under 180M.",
|
||||
"the EX 35 is priced only as the expired 2024 quote's second-extruder option; and the building "
|
||||
"depends on the soil. The Newbilt re-quote, the Pheenix quote, the building request with a soil "
|
||||
"test, the metrology distributor quotes and the solar and battery purchase quotes settle most of "
|
||||
@@ -549,32 +572,56 @@ def blocks():
|
||||
"**The ground.** Soft paddy soil under the building, paving and fill platform is the single largest "
|
||||
"cost variable in the building package, and the cheapest to resolve: a soil boring test costs "
|
||||
"THB 30k to 50k.",
|
||||
pick("**Chinese suppliers: taken where they pay.** Plan A buys the boiler modules and the "
|
||||
"compressor through the Chinese route (~1.9M THB at the midpoint, about 1 % of the price); the "
|
||||
"Newbilt hydraulic aggregates stay Newbilt's. Chillers and HVAC, the larger blocks, are not "
|
||||
"checked yet; that is the next Chinese lever to test.",
|
||||
"**Chinese suppliers: ~1 %.** Plan B prices Thai-supplied utilities. The Chinese route for the "
|
||||
"boiler modules and the compressor would take ~1.9M THB off at the midpoint (Plan A takes "
|
||||
"it); chillers and HVAC, the larger blocks, are not checked yet."),
|
||||
pick("**Solar PPA.** The largest single lever (~17.5M THB at the midpoint) moves the array, ~640 kWp "
|
||||
"on every roof and canopy, and the battery off the capital budget and adds a power price to the "
|
||||
"energy line instead: ~760 MWh a year used on site at 3.0 THB/kWh, ~2.3M THB or ~0.07M USD a "
|
||||
"**Biomass steam in both plans.** Steam comes from two 500 kg/h biomass modules (Getabec class, "
|
||||
"6M to 10M THB installed with fuel feed, grate and dust control) and a fuel store with handling "
|
||||
"(1.0M to 2.0M THB); the electric bank (Thai 4.5M to 7.0M, Chinese route 2.8M to 5.5M) is the "
|
||||
"alternative, not the plan. At ~850k records the boilers burn ~460 t of fresh chips (or ~300 t of "
|
||||
"air-dry wood) a year, ~0.67M THB at ~0.7 THB/kWh of heat, where electric steam would cost ~4.9M "
|
||||
"THB in power and demand charge: **biomass saves ~4.2M THB (~0.13M USD) a year** (estimates; "
|
||||
"biomass.md planning price 1.35 to 2 THB/kg delivered). Without electric boilers the grid demand "
|
||||
"falls from ~980 kW to ~264 kW, so the transformer and the PEA deposit can be smaller (not "
|
||||
"re-priced, an upside). It brings fuel contracts and a monsoon stock, ash handling, the 14 m flue "
|
||||
"stack and dust collector, more maintenance and a certified boiler attendant (section 13). The "
|
||||
"revenue model does not split energy by fuel; the calculator does (section 9.4).",
|
||||
pick("**Chinese suppliers: the compressor now, a biomass boiler quote next.** Plan A buys the "
|
||||
"compressor through a Chinese brand's Thai office (~0.25M THB at the midpoint). The Chinese "
|
||||
"route priced only electric boiler modules; Chinese makers build biomass boilers too (ZOZEN "
|
||||
"DZL, Sitong DZL/SZL, Taiguo, Yongxing), none priced yet. **A quote ~2M THB or more below the "
|
||||
"Thai biomass package would put Plan A back under 180M**, so it is the first utilities request "
|
||||
"(section 14.1, item 10). The Newbilt hydraulic aggregates stay Newbilt's. Chillers and HVAC, "
|
||||
"the larger blocks, are not checked yet; that is the next Chinese lever to test.",
|
||||
"**Chinese suppliers: small so far.** Plan B prices Thai-supplied utilities. The Chinese route "
|
||||
"for the compressor would take ~0.25M THB off at the midpoint (Plan A takes it); Chinese "
|
||||
"biomass boilers are not priced yet; chillers and HVAC, the larger blocks, are not checked "
|
||||
"yet."),
|
||||
pick("**Solar PPA.** The largest single lever (~14.7M THB at the midpoint) moves the array, ~520 kWp "
|
||||
"on the factory roof, and the battery off the capital budget and adds a power price to the "
|
||||
"energy line instead: ~633 MWh a year used on site at 3.0 THB/kWh, ~1.9M THB or ~0.06M USD a "
|
||||
"year in the calculator, an estimate to quote (~21 % off the tariff; MEAei names 10 to 15 % as "
|
||||
"usual, CapSolar 10 to 30 %). The plant's bill (~0.75M THB a month before solar, estimate) "
|
||||
"is well above the 100,000 THB a month CapSolar asks of a PPA site.",
|
||||
"**Solar bought, not leased.** Plan B owns the array, ~640 kWp on every roof and canopy, and "
|
||||
"the 271 kWh battery: 14.8M to 20.1M THB (PV at 20 to 26 THB/W installed, inverters included; "
|
||||
"battery 2.0M to 3.5M). Factories on PEA's grid run zero export, so ~85 % of the ~900 MWh a "
|
||||
"year is used on site and the rest curtailed; the array saves ~2.8M to 3.0M THB a year and "
|
||||
"pays back in ~4.2 to 5.9 years (estimates). A solar PPA would take ~17.5M THB off the price "
|
||||
"at the midpoint and add a power price to the energy line instead: owned, the ~760 MWh used on "
|
||||
"site save the full ~3.8 THB/kWh; through a PPA at ~3.0 THB/kWh (estimate, to quote) only ~0.8 "
|
||||
"THB/kWh, so the PPA bill is ~2.3M THB (~0.07M USD) a year."),
|
||||
"**The array follows the site.** ~640 kWp is what every roof and canopy carries on the Payap "
|
||||
"scenario plot the calculator draws (factory roof ~523 kWp, office roof ~65 kWp, car and scooter "
|
||||
"canopies ~54 kWp); on the Mueang Chi hall of section 6.2 the roof and canopies take ~300 kWp, and "
|
||||
"the rest would need ground mount behind the building (which the rooftop permit exemption does not "
|
||||
"cover) or the phase 2 roof (estimates).",
|
||||
"usual, CapSolar 10 to 30 %). The plant's bill with biomass steam (~0.36M THB a month before "
|
||||
"solar: ~1,036 MWh a year and ~264 kW of demand at the PEA tariff, our arithmetic, estimate) is "
|
||||
"well above the 100,000 THB a month CapSolar asks of a PPA site.",
|
||||
"**Solar bought, not leased.** Plan B owns the array, ~520 kWp on the factory roof, and the "
|
||||
"271 kWh battery: 12.4M to 17.0M THB (PV at 20 to 26 THB/W installed, inverters included, 10.4M "
|
||||
"to 13.5M; battery 2.0M to 3.5M). Factories on PEA's grid run zero export, so ~87 % of the ~730 "
|
||||
"to 780 MWh a year is used on site (~633 MWh in the calculator) and the rest curtailed; that "
|
||||
"covers ~61 % of the "
|
||||
"launch plant's ~1,036 MWh a year of electricity, saves ~2.3M to 2.5M THB a year and pays back "
|
||||
"in ~4.1 to 5.8 years (estimates). A solar PPA would take ~14.7M THB off the price at the "
|
||||
"midpoint and add a power price to the energy line instead: owned, the ~633 MWh used on site "
|
||||
"save the full ~3.7 THB/kWh; through a PPA at ~3.0 THB/kWh (estimate, to quote) only ~0.7 "
|
||||
"THB/kWh, so the PPA bill is ~1.9M THB (~0.06M USD) a year."),
|
||||
"**The array is sized to the load, not to the roof area.** With biomass steam the plant's running "
|
||||
"load is ~230 kW; an hourly sketch (two shifts on 300 days, ~60 kW off-shift base, the 271 kWh battery, the "
|
||||
"PEA time-of-use tariff with Ft, 23,000 THB/kWp, 25 years at 8 %) puts the best array at **~500 to "
|
||||
"550 kWp**: above ~550 kWp more of the yield is curtailed under zero export and the extra panels "
|
||||
"lose money. The factory roof on the Payap scenario plot the calculator draws carries ~520 kWp "
|
||||
"(~523 kWp in the site model), so PV goes there only. The office roof (~65 kWp) and the car and "
|
||||
"scooter canopies (~54 kWp) are built PV-ready (structure rated for the panels, conduit to the "
|
||||
"main board, a spare way for a later inverter), and ~120 kWp go on them when the load rises with "
|
||||
"the second Duplex system, for ~2.4M to 3.1M THB at 20 to 26 THB/W. On the Mueang Chi hall of "
|
||||
"section 6.2 the factory roof takes ~247 kWp, its canopies PV-ready too. ~430 kVA of inverters "
|
||||
"stays under the ERC's 1,000 kVA line (estimates).",
|
||||
"**Every band narrows only with quotes.** The supplier map in the planning repository lists who to "
|
||||
"ask, and the re-quotes are phase 0 work (section 14).",
|
||||
]),
|
||||
@@ -723,21 +770,21 @@ def blocks():
|
||||
"the opposite; central takes midpoints. Cash overheads (admin, sales, insurance, facility running, "
|
||||
"IT, professional fees, marketing, the land lease) are estimated at USD 0.20M to 0.45M a year and "
|
||||
"paired high-to-adverse. Depreciation is on this plan's blocks: " + pick(
|
||||
"the high end (6.25M USD) over 10 years (adverse), the midpoint (4.90M USD) over 12.5 years "
|
||||
"(central) and the low end (3.56M USD) over 15 years (favourable). Payback is counted on the "
|
||||
"whole plan price including the ramp-up reserve (3.86M / 5.35M / 6.85M USD from the low to the "
|
||||
"the high end (6.44M USD) over 10 years (adverse), the midpoint (5.06M USD) over 12.5 years "
|
||||
"(central) and the low end (3.68M USD) over 15 years (favourable). Payback is counted on the "
|
||||
"whole plan price including the ramp-up reserve (3.99M / 5.52M / 7.05M USD from the low to the "
|
||||
"high end).",
|
||||
"the high end (7.73M USD) over 10 years (adverse), the midpoint (6.08M USD) over 12.5 years "
|
||||
"the high end (7.79M USD) over 10 years (adverse), the midpoint (6.11M USD) over 12.5 years "
|
||||
"(central) and the low end (4.42M USD) over 15 years (favourable). Payback is counted on the "
|
||||
"whole plan price including the ramp-up reserve (4.72M / 6.53M / 8.34M USD from the low to the "
|
||||
"whole plan price including the ramp-up reserve (4.73M / 6.56M / 8.40M USD from the low to the "
|
||||
"high end).")),
|
||||
_operating_table(),
|
||||
CALL("Reading this table honestly", pick([
|
||||
"**The central case works on ~177M THB.** EBITDA ~1.7M USD (~57M THB) and operating profit ~1.3M "
|
||||
"**The central case works on ~182M THB.** EBITDA ~1.7M USD (~57M THB) and operating profit ~1.3M "
|
||||
"USD (~44M THB) a year once the plant runs at volume. It breaks even on operating profit at about "
|
||||
"**0.2 million records a year, about a quarter of its central output**. Against the earlier ~20 % "
|
||||
"specials share (0.84M records, EBITDA 1.63M) more specials earn a higher price on fewer records.",
|
||||
"**The adverse case loses money.** It would need ~0.9 million records to cover depreciation, and "
|
||||
"**The adverse case loses money.** It would need ~1.0 million records to cover depreciation, and "
|
||||
"the three presses make 0.58 million at that rate. It stacks the low price, the high cost, the high "
|
||||
"capital and the high overheads at once. At the central cost and volume the price that covers "
|
||||
"depreciation is ~2.7 USD (~88 THB) a record (arithmetic on the table), below the low price "
|
||||
@@ -748,18 +795,18 @@ def blocks():
|
||||
"above the reject allowance, sales commissions and the extra cost of specials. **Treat the adverse "
|
||||
"column as the honest one until those lines exist.** The plan price carries no contingency either.",
|
||||
"**This is a sensitivity, not a forecast.** The plant and business plan calculator's Plan A preset, "
|
||||
"with its own cost build-up (it adds electric steam heat, the cutting engineer and the PPA power "
|
||||
"price, ~0.07M USD a year, which this table leaves out) and the team's faster Duplex planning rate, "
|
||||
"at which the three presses are not Duplex-limited, gives at 850k records and 60 % specials: "
|
||||
"revenue ~4.14M, EBITDA 2.05M USD, payback 2.4 years on the 161.7M THB investment in a mature "
|
||||
"year; with a ramp of 35, 70 and 90 % in the first three years and the reserve in year 0, cash "
|
||||
"payback in year ~3.9, ~25 % IRR and an NPV of ~4.9M USD over ten years, pre-tax and "
|
||||
"pre-financing (estimates). Not modelled here: cassette and CD-R lines (later in Plan A), stamper "
|
||||
"with its own cost build-up (it adds the biomass fuel for the steam, ~0.67M THB a year, the cutting "
|
||||
"engineer, and the PPA power price of ~0.06M USD a year, which this table leaves out) and the "
|
||||
"team's faster Duplex planning rate, at which the three presses are not Duplex-limited, gives at "
|
||||
"850k records and 60 % specials: revenue ~4.14M, EBITDA 2.17M USD, payback 2.3 years on the "
|
||||
"167.1M THB investment in a mature year; with a ramp of 35, 70 and 90 % in the first three years "
|
||||
"and the reserve in year 0, cash payback in year ~3.8, ~26 % IRR and an NPV of ~5.4M USD over ten "
|
||||
"years, pre-tax and pre-financing (estimates). Not modelled here: cassette and CD-R lines (later in Plan A), stamper "
|
||||
"supply to other plants, automation services and the open plant stack for other pressing plants "
|
||||
"(section 5.6), dropshipping fees, and the ramp year. BOI tax exemptions shield part of "
|
||||
"early-year profits where there are any.",
|
||||
], [
|
||||
"**The central case works on ~216M THB.** EBITDA ~1.73M USD (~57M THB) and operating profit ~1.24M "
|
||||
"**The central case works on ~217M THB.** EBITDA ~1.73M USD (~57M THB) and operating profit ~1.24M "
|
||||
"USD (~41M THB) a year once the plant runs at volume. It breaks even on operating profit at about "
|
||||
"**0.24 million records a year, about a third of its central output**. Against the earlier ~20 % "
|
||||
"specials share (0.84M records, EBITDA 1.63M) more specials earn a higher price on fewer records.",
|
||||
@@ -769,33 +816,33 @@ def blocks():
|
||||
"cost and volume the price that covers depreciation is ~2.8 USD (~92 THB) a record (arithmetic on "
|
||||
"the table), below the low price assumed: price realisation and utilisation decide solvency, not "
|
||||
"upside.",
|
||||
"**What the extra ~39M THB buys is not in this table.** Plan B is Plan A's plant with the six levers "
|
||||
"**What the extra ~35M THB buys is not in this table.** Plan B is Plan A's plant with the six levers "
|
||||
"not taken, so revenue, direct cost and EBITDA are Plan A's; only the depreciation (0.49M against "
|
||||
"Plan A's 0.39M USD at the centre) and the payback (~3.8 against ~3.1 years) move. Not modelled: "
|
||||
"Plan A's 0.40M USD at the centre) and the payback (~3.8 against ~3.2 years) move. Not modelled: "
|
||||
"cassette and CD-R revenue, tour and Payap revenue, stamper supply to other plants, automation "
|
||||
"services and the open plant stack for other pressing plants (section 5.6), and the PPA power bill "
|
||||
"the owned array avoids (~0.07M USD a year in the calculator).",
|
||||
"the owned array avoids (~0.06M USD a year in the calculator).",
|
||||
"**The central margin is too good to trust yet.** A central EBITDA margin of ~47 % is far above "
|
||||
"the 15 to 25 % pressing plants earn. The direct cost table counts only per-record consumables and "
|
||||
"direct payroll and leaves out indirect labour (supervision, planning, warehouse), freight, scrap "
|
||||
"above the reject allowance, sales commissions and the extra cost of specials. **Treat the adverse "
|
||||
"column as the honest one until those lines exist.** The plan price carries no contingency either.",
|
||||
"**This is a sensitivity, not a forecast.** The plant and business plan calculator's Plan B preset, "
|
||||
"with its own cost build-up (it adds electric steam heat and the cutting engineer, which this "
|
||||
"table leaves out) and the team's faster Duplex planning rate, at which the three presses are not "
|
||||
"Duplex-limited, gives at 850k records and 60 % specials: revenue ~4.14M, EBITDA 2.12M USD, "
|
||||
"payback 2.9 years on the 200.6M THB investment in a mature year; with a ramp of 35, 70 and 90 % in "
|
||||
"the first three years and the reserve in year 0, cash payback in year ~4.4, ~21 % IRR and an NPV "
|
||||
"of ~4.1M USD over ten years, pre-tax and pre-financing (estimates). Its EBITDA is 0.07M above "
|
||||
"Plan A's 2.05M because the owned array carries no PPA power price. Not modelled here: cassette "
|
||||
"with its own cost build-up (it adds the biomass fuel for the steam, ~0.67M THB a year, and the "
|
||||
"cutting engineer, which this table leaves out) and the team's faster Duplex planning rate, at "
|
||||
"which the three presses are not Duplex-limited, gives at 850k records and 60 % specials: revenue "
|
||||
"~4.14M, EBITDA 2.23M USD, payback 2.7 years on the 201.6M THB investment in a mature year; with a "
|
||||
"ramp of 35, 70 and 90 % in the first three years and the reserve in year 0, cash payback in year "
|
||||
"~4.2, ~22 % IRR and an NPV of ~4.7M USD over ten years, pre-tax and pre-financing (estimates). Its "
|
||||
"EBITDA is 0.06M above Plan A's 2.17M because the owned array carries no PPA power price. Not modelled here: cassette "
|
||||
"and CD-R lines, stamper supply to other plants, automation services and the open plant stack for "
|
||||
"other pressing plants (section 5.6), dropshipping fees, and the ramp year. BOI tax "
|
||||
"exemptions shield part of early-year profits where there are any.",
|
||||
])),
|
||||
IMG(pick("renders/calculator/plan-a-cash.png", "renders/calculator/plan-b-cash.png"), 160,
|
||||
"Figure 12. Ten years of cash in the plant and business plan calculator, " + pick(
|
||||
"Plan A preset: cash payback in year ~3.9, IRR ~25 %, NPV ~4.9M USD at 10 %",
|
||||
"Plan B preset: cash payback in year ~4.4, IRR ~21 %, NPV ~4.1M USD at 10 %") +
|
||||
"Plan A preset: cash payback in year ~3.8, IRR ~26 %, NPV ~5.4M USD at 10 %",
|
||||
"Plan B preset: cash payback in year ~4.2, IRR ~22 %, NPV ~4.7M USD at 10 %") +
|
||||
". Year 0 is the midpoint investment plus the ramp-up reserve; years 1 to 3 sell 35, 70 and 90 % of "
|
||||
"the mature year's output. Pre-tax, pre-financing, no BOI tax holiday, no terminal value. The "
|
||||
"calculator's own cost build-up and faster Duplex planning rate, not the table above "
|
||||
@@ -892,7 +939,8 @@ def blocks():
|
||||
["Factory licence (Ror.Ngor. 4) with galvanics in the first licence", "First production, Q4 2028",
|
||||
"~4 months", "Galvanics effluent and hazardous-substance registration are now in the first "
|
||||
"licence scope: the most likely regulatory friction point; ZLD design in the application from "
|
||||
"the start"],
|
||||
"the start; the biomass boiler's registration and its air-emission limits go into the same permit "
|
||||
"work (to confirm)"],
|
||||
pick(["Solar through the PPA (the installer builds and owns the array)", "Fit-out, ~Q2 2028",
|
||||
"Large", "Not a risk; the PPA offer is phase 0 work; PEA interconnection approval takes 3 to "
|
||||
"6 months, filed alongside procurement; battery lead time is 50 to 60 days"],
|
||||
@@ -913,9 +961,7 @@ def blocks():
|
||||
P("**BOI windows are comfortable** on the August calendar: machinery clears customs ~Q3 2028 against a "
|
||||
"30-month import window ending ~Q4 2029 (~15 months of margin), and first production ~Q4 2028 "
|
||||
"against a ~36-month full-operation deadline (~18 months). The launch plant puts four vendors' "
|
||||
"machines, not one, inside the import window" + pick(
|
||||
", and Plan A adds the Chinese boiler modules. ",
|
||||
". ") +
|
||||
"machines, not one, inside the import window. " +
|
||||
"The margin is consumed by exactly one scenario: filing early to start the clock and then discovering "
|
||||
"the site does not work. Verify zoning before filing."),
|
||||
P("**The one lever worth six to nine months** is the BOI sequencing question in section 7: the duty "
|
||||
@@ -947,18 +993,16 @@ def blocks():
|
||||
"between the Mueang Chi lease, other Payap land and the industrial estate; resolve the 35 % vs "
|
||||
"45 % humidity floor", "BOI filed"],
|
||||
["2. Commit", "Incorporate under the certificate; sign the lease; order every long-lead item: "
|
||||
"Pheenix galvanics line, Sillitoe lathe, Sibert line, " + pick(
|
||||
"Newbilt Duplex and Classic, first two boiler and chiller modules (boilers through the Chinese "
|
||||
"route)",
|
||||
"Newbilt Duplex and Classic, first two boiler and chiller modules (boilers and compressor "
|
||||
"from Thai suppliers)"), "BOI certificate and validated pricing"],
|
||||
"Pheenix galvanics line, Sillitoe lathe, Sibert line, Newbilt Duplex and Classic, the two "
|
||||
"biomass boiler modules and the first two chiller modules", "BOI certificate and validated "
|
||||
"pricing"],
|
||||
["3. Build and commission (~6 to 12 months after commitment)", pick(
|
||||
"Construction, water-treatment building, utilities, HVAC, clean zones, security, the "
|
||||
"crane-ready frame (a mobile crane for the installations); the solar array built by the PPA "
|
||||
"installer; machinery installation and vendor commissioning; traceability and ERPNext live "
|
||||
"Construction, water-treatment building, utilities (the biomass boilers and fuel store), HVAC, "
|
||||
"clean zones, security, the crane-ready frame (a mobile crane for the installations); the "
|
||||
"factory-roof solar array built by the PPA installer; machinery installation and vendor commissioning; traceability and ERPNext live "
|
||||
"before the machines; hire and train",
|
||||
"Construction, water-treatment building, utilities, HVAC, clean zones, solar and battery, "
|
||||
"security, crane, visitor corridor; machinery installation and vendor commissioning; "
|
||||
"Construction, water-treatment building, utilities (the biomass boilers and fuel store), HVAC, "
|
||||
"clean zones, factory-roof solar and battery, security, crane, visitor corridor; machinery installation and vendor commissioning; "
|
||||
"traceability and ERPNext live before the machines; hire and train"),
|
||||
"Building permit, vendor build dates confirmed"],
|
||||
["4. Launch (the whole chain in-house)", "Commission in sequence (table below); test pressings, QC "
|
||||
@@ -966,11 +1010,12 @@ def blocks():
|
||||
"compound", "Commissioning complete"],
|
||||
["5. Expand (revenue-gated)", pick(
|
||||
"Second Duplex system; further Classics; the laser confocal and wide-area profiler; the visitor "
|
||||
"corridor and public tours; cassette and CD-R duplication; an owned crane if needed; the "
|
||||
"biomass boiler if steam starts electric; the phase 2 building; CD replication if chosen",
|
||||
"corridor and public tours; cassette and CD-R duplication; an owned crane if needed; PV on "
|
||||
"the PV-ready office roof and canopies when the load rises; the phase 2 building; CD "
|
||||
"replication if chosen",
|
||||
"Second Duplex system, then further Duplex systems and Classics (the hall is laid out for five "
|
||||
"Duplex bays and four Classic positions); the biomass boiler if steam starts electric; the "
|
||||
"phase 2 building; CD replication if chosen"),
|
||||
"Duplex bays and four Classic positions); PV on the PV-ready office roof and canopies when the "
|
||||
"load rises; the phase 2 building; CD replication if chosen"),
|
||||
"Revenue and, for CD replication, a separate decision"],
|
||||
], widths_mm=[42, 96, 32], font_pt=8.5),
|
||||
H2("11.1 Commissioning sequence"),
|
||||
@@ -980,7 +1025,7 @@ def blocks():
|
||||
"First lacquers, fathers, mothers and stampers, and the metal archive "
|
||||
"from the first title"],
|
||||
["2", "Newbilt Duplex system (two HRP 12, EX 50 and EX 35), with the steam and cooling plant "
|
||||
"(boiler modules B-1, B-2; chiller modules CH-1, CH-2)",
|
||||
"(biomass boiler modules B-1, B-2 with the fuel store; chiller modules CH-1, CH-2)",
|
||||
"The semi-automatic presses suit the colour, splatter and boutique runs that carry the premiums, "
|
||||
"and they teach the crews the process"],
|
||||
["3", "Newbilt Classic, fully automatic", "Volume runs once the metal path and the press process "
|
||||
@@ -1017,24 +1062,25 @@ def blocks():
|
||||
"the start, and on Payap land the lessor's consent as well."],
|
||||
["**The cutting room is a smaller decision than it was.** The Sillitoe SDMS lists at USD 125k with "
|
||||
"automation in the box, and the Payap programmes in mastering and lathe cutting need a working "
|
||||
"room.", pick("**More capital up front.** ~127M to 226M THB in one round (~177M at the "
|
||||
"room.", pick("**More capital up front.** ~132M to 233M THB in one round (~182M at the "
|
||||
"midpoint), against ~57M to 95M THB for the superseded phased entry; more of it is "
|
||||
"committed before the market has validated the price.",
|
||||
"**More capital up front.** ~156M to 275M THB in one round (~216M at the midpoint), "
|
||||
"**More capital up front.** ~156M to 277M THB in one round (~217M at the midpoint), "
|
||||
"against ~57M to 95M THB for the superseded phased entry; more of it is committed "
|
||||
"before the market has validated the price.")],
|
||||
pick(["**Six levers, no machine dropped.** The levers bring the whole chain to ~180M THB, and the "
|
||||
pick(["**Six levers, no machine dropped.** The levers bring the whole chain to ~180M THB (~182M at "
|
||||
"the midpoint, ~2M above 180M; a Chinese biomass boiler quote could close the gap), and the "
|
||||
"second Duplex waits for demand and revenue on a reserved floor.",
|
||||
"**What the levers give up.** Owned solar (a PPA bill of ~0.07M USD a year instead), public tours "
|
||||
"at first, cassette and CD-R at launch, a bought crane; the boilers are imported from China "
|
||||
"under the Thai boiler rules. The adverse case still loses money."],
|
||||
["**Everything in at launch.** Owned solar on every roof and canopy (~640 kWp) with no PPA "
|
||||
"**What the levers give up.** Owned solar (a PPA bill of ~0.06M USD a year instead), public tours "
|
||||
"at first, cassette and CD-R at launch, a bought crane, a Thai-serviced compressor. The adverse "
|
||||
"case still loses money."],
|
||||
["**Everything in at launch.** Owned solar on the factory roof (~520 kWp) with no PPA "
|
||||
"bill, the full metrology stack "
|
||||
"from the first release, tours and the Payap programmes from day one, cassette and CD-R, its "
|
||||
"own crane and locally serviced utilities; the second Duplex waits for demand and revenue on a "
|
||||
"own crane and a locally serviced compressor; the second Duplex waits for demand and revenue on a "
|
||||
"reserved floor.",
|
||||
"**~39M THB more that the model does not repay.** The same EBITDA as Plan A with more "
|
||||
"depreciation and a longer payback (~3.8 against ~3.1 years); the adverse case still loses "
|
||||
"**~35M THB more that the model does not repay.** The same EBITDA as Plan A with more "
|
||||
"depreciation and a longer payback (~3.8 against ~3.2 years); the adverse case still loses "
|
||||
"money."]),
|
||||
], widths_mm=[85, 85], font_pt=8.5),
|
||||
P("**How the plan answers the risks:** commission the metal path first and measure it before the "
|
||||
@@ -1087,7 +1133,7 @@ def blocks():
|
||||
"whose incentives are aligned with the plant's schedule and quality, within the same province.",
|
||||
"**Debt-to-equity no higher than 3:1**, maintained for the life of the BOI privileges, which sets "
|
||||
"the floor on equity in the financing mix: at least a quarter of the funding, " + pick(
|
||||
"~44M THB of Plan A's ~177M", "~54M THB of Plan B's ~216M") +
|
||||
"~46M THB of Plan A's ~182M", "~54M THB of Plan B's ~217M") +
|
||||
" (arithmetic, before financing costs).",
|
||||
"**A shareholders' agreement** covering board composition, reserved matters (capital calls and "
|
||||
"tranche releases, the growth options such as a second Duplex, CD replication), pre-emption and transfer, information rights, and the founders' roles and "
|
||||
@@ -1133,7 +1179,8 @@ def blocks():
|
||||
"Payap R&D", "Simona", "USD 5k to 15k",
|
||||
"Sequencing, scope"],
|
||||
["3", "Thai counsel: lease heads of terms (term, renewal, building ownership, assignment) and zoning "
|
||||
"of the chosen plot for pressing, a steam boiler and electroplating; company and shareholder "
|
||||
"of the chosen plot for pressing, a biomass steam boiler (with its air-emission limits) and "
|
||||
"electroplating; company and shareholder "
|
||||
"structure including Ploy Printing", "Simona, counsel", "USD 5k to 15k", "Zoning, lease, "
|
||||
"ownership"],
|
||||
["4", "Soil boring test on the chosen plot", "Alexander", "THB 30k to 50k", "Ground risk"],
|
||||
@@ -1148,32 +1195,37 @@ def blocks():
|
||||
["8", "Sibert itemised quotation and order terms against the USD 250k budget: lead time, "
|
||||
"installation time, spares, shipping, travel", "Alexander", "Free", "Stamper prep, schedule"],
|
||||
["9", "Building request for quotation to two or three Thai pre-engineered building contractors, "
|
||||
"with the soil result", "Alexander", "Free", "Building estimate"],
|
||||
"with the soil result and the office roof and canopies PV-ready", "Alexander", "Free",
|
||||
"Building estimate"],
|
||||
["10", pick(
|
||||
"Utility requests: Chinese boiler makers for the plan's boiler modules (ZOZEN, Sitong, Fangkuai, "
|
||||
"Taiguo; 1.25 MPa, ASME S stamp, electric and fired variants) with a Thai installer; compressors "
|
||||
"from Kaishan and Denair's Thai offices; Thai suppliers for the rest; chillers and HVAC, Chinese "
|
||||
"makers included; the 35 % vs 45 % humidity floor; a Thai hydraulic builder for the central "
|
||||
"plant",
|
||||
"Utility requests: Thai suppliers; Chinese boiler makers (ZOZEN, Sitong, Fangkuai, Taiguo; "
|
||||
"1.25 MPa, ASME S stamp, electric and fired variants) and compressors from Kaishan and Denair's "
|
||||
"Thai offices for comparison; chillers and HVAC, Chinese makers included; the 35 % vs 45 % "
|
||||
"humidity floor; a Thai hydraulic builder for the central plant"),
|
||||
"Alexander", "Free", "Utilities band, fuel choice"],
|
||||
"Utility requests: biomass boiler packages from Getabec and from Chinese makers (ZOZEN, Sitong, "
|
||||
"Taiguo, Yongxing; ASME S stamp, with a Thai installer), the Chinese quote first, because ~2M "
|
||||
"THB or more below the Thai package puts Plan A back under 180M; electric modules as the "
|
||||
"fallback quote; fuel supply offers (chips and wood, delivered price, a monsoon stock); "
|
||||
"compressors from Kaishan and Denair's Thai offices; Thai suppliers for the rest; chillers and "
|
||||
"HVAC, Chinese makers included; the 35 % vs 45 % humidity floor; a Thai hydraulic builder for "
|
||||
"the central plant",
|
||||
"Utility requests: biomass boiler packages from Getabec and, for comparison, Chinese makers "
|
||||
"(ZOZEN, Sitong, Taiguo, Yongxing); electric modules as the fallback quote; fuel supply offers "
|
||||
"(chips and wood, delivered price, a monsoon stock); Thai suppliers for the rest, compressors "
|
||||
"from Kaishan and Denair's Thai offices for comparison; chillers and HVAC, Chinese makers "
|
||||
"included; the 35 % vs 45 % humidity floor; a Thai hydraulic builder for the central plant"),
|
||||
"Alexander", "Free", "Utilities band, fuel supply"],
|
||||
["11", pick("Metrology distributor quotes (XRF, inline vision, audio station; confocal and profiler "
|
||||
"for later)", "Metrology distributor quotes (XRF, confocal, profiler, inline vision, "
|
||||
"audio station)"), "Alexander", "Free", "Metrology band"],
|
||||
["12", pick("Solar PPA offers (the plan's lever) next to a purchase quote; the installer's battery "
|
||||
"and inverter design checked", "Solar and battery purchase quotes, with a PPA offer for "
|
||||
"comparison; battery and inverter engineering "
|
||||
"checks"), "Alexander", "Free",
|
||||
["12", pick("Solar PPA offers for the ~520 kWp factory roof (the plan's lever) next to a purchase "
|
||||
"quote; the installer's battery and inverter design checked", "Solar and battery purchase "
|
||||
"quotes for the ~520 kWp factory roof, with a PPA offer for comparison; battery and "
|
||||
"inverter engineering checks"), "Alexander", "Free",
|
||||
pick("Solar lever, PPA price", "Solar block")],
|
||||
["13", pick("Cassette and CD-R equipment quotes from two vendors each, for the growth step; tape and "
|
||||
"shell supply", "Cassette and CD-R equipment quotes from two vendors each; tape and "
|
||||
"shell supply"), "Alexander", "Free", "New-scope estimates"],
|
||||
["14", "Search for the galvanics process engineer and the cutting engineer; next meeting with Payap "
|
||||
"on the programmes", "Simona, Alexander", "None yet", "Skills risk"],
|
||||
["15", "60 rai title check for the coppice plan", "Simona", "Small", "Biomass path"],
|
||||
["15", "60 rai title check for own fuelwood (the coppice plan)", "Simona", "Small",
|
||||
"Own fuel later, an upside"],
|
||||
["16", "Optional: vinyl manufacturing consultancy for a layout and installation review",
|
||||
"Alexander", "GBP 10k to 20k", "Layout risk"],
|
||||
["17", "Archive the Thai invoices and tour notes with this plan", "Simona", "None", "Evidence base"],
|
||||
@@ -1183,44 +1235,46 @@ def blocks():
|
||||
["Now", "Approval of Phase 0 spending of ~USD 40k to 80k (~1.3M to 2.6M THB, part of the plan "
|
||||
"price), so the quotes, the soil test, the BOI consultant and counsel can start."],
|
||||
["On the gates clearing", pick(
|
||||
"A commitment in principle to **Plan A at ~180M THB** (~177M at the midpoint, the ramp-up "
|
||||
"A commitment in principle to **Plan A at ~180M THB** (~182M at the midpoint, the ramp-up "
|
||||
"reserve of 10M to 20M included, no contingency), released in the tranches of section 8.3, "
|
||||
"with the financing mix set to hold debt-to-equity at or below 3:1 (equity of at least ~44M "
|
||||
"THB). Told plainly: the price carries no contingency (at 15 % it would be ~24M THB more at "
|
||||
"the midpoint), and from the low to the high end of every block the plan comes to ~127M to "
|
||||
"226M THB. The Newbilt re-quote, the Pheenix quote, the building quote with the soil test, "
|
||||
"the metrology quotes and the solar PPA offer decide where in that range it lands.",
|
||||
"A commitment in principle to **Plan B at ~215M THB** (~216M at the midpoint, the ramp-up "
|
||||
"with the financing mix set to hold debt-to-equity at or below 3:1 (equity of at least ~46M "
|
||||
"THB). Told plainly: at the midpoint the plan is **~2M above 180M** (177M to 187M with the "
|
||||
"reserve's 10M to 20M); the price carries no contingency (at 15 % it would be ~25M THB more at "
|
||||
"the midpoint), and from the low to the high end of every block the plan comes to ~132M to "
|
||||
"233M THB. The Newbilt re-quote, the Pheenix quote, the building quote with the soil test, "
|
||||
"the metrology quotes, the solar PPA offer and a Chinese biomass boiler quote decide where in "
|
||||
"that range it lands and whether it comes back under 180M.",
|
||||
"A commitment in principle to **Plan B at ~215M THB** (~217M at the midpoint, the ramp-up "
|
||||
"reserve of 10M to 20M included, no contingency), released in the tranches of section 8.3, "
|
||||
"with the financing mix set to hold debt-to-equity at or below 3:1 (equity of at least ~54M "
|
||||
"THB). Told plainly: the price carries no contingency (at 15 % it would be ~30M THB more at "
|
||||
"the midpoint), and from the low to the high end of every block the plan comes to ~156M to "
|
||||
"275M THB. The Newbilt re-quote, the Pheenix quote, the building quote with the soil test, "
|
||||
"277M THB. The Newbilt re-quote, the Pheenix quote, the building quote with the soil test, "
|
||||
"the metrology quotes and the solar and battery purchase quotes decide where in that range it "
|
||||
"lands.")],
|
||||
["Decisions", pick(
|
||||
"The equity and debt mix, and how quotes landing above the plan price are funded; the six "
|
||||
"levers, the solar PPA first (~17.5M THB off the price for a power bill of ~0.07M USD a year); "
|
||||
"CD replication, "
|
||||
"yes or no, before the BOI application is finalised; the steam fuel (electric or biomass); "
|
||||
"levers, the solar PPA first (~14.7M THB off the price for a power bill of ~0.06M USD a year); "
|
||||
"whether to buy a Chinese biomass boiler if its quote brings the plan under 180M; CD "
|
||||
"replication, yes or no, before the BOI application is finalised; the biomass fuel contracts; "
|
||||
"the shareholder structure with Ploy Printing and the founders; hedging of the EUR orders.",
|
||||
"The equity and debt mix, and how quotes landing above the plan price are funded; the ~39M "
|
||||
"THB of items Plan A leases or defers (owned solar on every roof and canopy with no PPA bill, "
|
||||
"the full "
|
||||
"metrology stack, the visitor corridor, cassette and CD-R, the bought crane, Thai boilers and "
|
||||
"The equity and debt mix, and how quotes landing above the plan price are funded; the ~35M "
|
||||
"THB of items Plan A leases or defers (owned solar on the factory roof with no PPA bill, the "
|
||||
"full metrology stack, the visitor corridor, cassette and CD-R, the bought crane, the Thai "
|
||||
"compressor), each weighed against its lever; CD replication, yes or no, before the BOI "
|
||||
"application is finalised; the steam fuel (electric or biomass); the shareholder structure "
|
||||
"application is finalised; the biomass fuel contracts; the shareholder structure "
|
||||
"with Ploy Printing and the founders; hedging of the EUR orders.")],
|
||||
["Later", pick(
|
||||
"Revenue-funded growth: the second Duplex system (~USD 230k to 300k for the press system; "
|
||||
"~15.4M THB at the midpoint with its chiller module, freight and working capital, estimate), "
|
||||
"the laser confocal and wide-area profiler (USD 180k to 350k), the visitor "
|
||||
"corridor, cassette and CD-R, an owned crane if needed, further Classics, the biomass boiler "
|
||||
"if steam starts electric, and the phase 2 building.",
|
||||
"corridor, cassette and CD-R, an owned crane if needed, further Classics, PV on the PV-ready "
|
||||
"office roof and canopies (~120 kWp, ~2.4M to 3.1M THB, estimate), and the phase 2 building.",
|
||||
"Revenue-funded growth: the second Duplex system (~USD 230k to 300k for the press system; "
|
||||
"~15.4M THB at the midpoint with its chiller module, freight and working capital, estimate), "
|
||||
"then further Duplex systems and Classics in the hall laid out for five Duplex bays and four "
|
||||
"Classic positions; the biomass boiler if steam starts electric; and the phase 2 building.")],
|
||||
"Classic positions; PV on the PV-ready office roof and canopies (~120 kWp, ~2.4M to 3.1M THB, "
|
||||
"estimate); and the phase 2 building.")],
|
||||
], widths_mm=[38, 132]),
|
||||
P("The next version of this plan should carry: the Newbilt, Pheenix, Sillitoe and Sibert quotes with "
|
||||
"their build times in place of the placeholder and estimated blocks; the building quote with the "
|
||||
@@ -1228,7 +1282,8 @@ def blocks():
|
||||
"its price; ",
|
||||
"the BOI consultant's reading on the battery (battery storage, capped at 12M THB "
|
||||
"per MW); ") +
|
||||
"the negotiated lease; a buyer-side price data point; the investor's CD and fuel decisions; how "
|
||||
"the negotiated lease; a buyer-side price data point; the investor's CD decision; the biomass boiler "
|
||||
"quotes (Getabec and a Chinese maker) and fuel supply offers; how "
|
||||
"overruns are funded, since the price carries no contingency; a calendar re-drawn for the launch "
|
||||
"plant with the metal-path commissioning in it; a year-by-year cash model for the ramp; and the "
|
||||
"shareholder terms. Each of those is a phase 0 output."),
|
||||
@@ -1252,8 +1307,10 @@ def blocks():
|
||||
["finance/revenue-model.md", "Pricing, the Thai market data and factory tour, the Record Industry "
|
||||
"benchmark, direct cost, the launch-plant operating picture and the "
|
||||
"operating pictures of Plan A and Plan B"],
|
||||
["finance/utilities-investment.csv", "Thai supplier candidates and budgetary ranges for steam, "
|
||||
"cooling, air, water, HVAC, solar and battery"],
|
||||
["finance/utilities-investment.csv", "Thai supplier candidates and budgetary ranges for steam "
|
||||
"(the biomass package and the fuel store; the electric bank "
|
||||
"as the alternative), cooling, air, water, HVAC, solar and "
|
||||
"battery"],
|
||||
["finance/phase1-construction-rfq.md", "Contractor price request with quantities from the "
|
||||
"parametric model"],
|
||||
["fleet-calculator.html", "Plant and business plan calculator: target output and specials share to "
|
||||
@@ -1272,8 +1329,9 @@ def blocks():
|
||||
"contacts"],
|
||||
["suppliers/making-vinyl-europe-2026-exhibitors.md", "Making Vinyl Europe 2026 briefing and what "
|
||||
"came after the show"],
|
||||
["suppliers/china-utilities.md", "Chinese boilers, compressed air and hydraulics; Thai rules for "
|
||||
"imported boilers; what the Chinese route saves"],
|
||||
["suppliers/china-utilities.md", "Chinese boilers (electric priced; biomass makers named, not "
|
||||
"priced), compressed air and hydraulics; Thai rules for imported "
|
||||
"boilers; what the Chinese route saves"],
|
||||
["digital-factory.md (demos plant-operation.html, factory-console.html)", "Data platform: ERPNext "
|
||||
"as the only system of record, machine data, the factory application, the "
|
||||
"NixOS fleet; the plant overview and factory console demos (Figures 2 to 4)"],
|
||||
@@ -1291,11 +1349,18 @@ def blocks():
|
||||
"stage, lead times and the repress path"],
|
||||
["traceability.md, quality-automation.md", "The traceability specification; metrology, layered "
|
||||
"record QC, the materials lab"],
|
||||
["sustainability.md, biomass.md, steam-cooling.html", "Solar, heat recovery, water, zero discharge, "
|
||||
"the grid tariff; the biomass fuel strategy; "
|
||||
"the steam and cooling plant"],
|
||||
["sustainability.md ('What ~640 kWp means on the grid'), finance/utilities-investment.csv (solar "
|
||||
"rows), boi.md", "Solar on every roof and canopy (~640 kWp) and its sources: the installed price of "
|
||||
["sustainability.md, steam-cooling.html", "Solar, heat recovery, water, zero discharge, the grid "
|
||||
"tariff; the steam and cooling plant"],
|
||||
["biomass.md", "Biomass steam for both plans: what the boilers burn (~300 t of air-dry wood or ~460 t "
|
||||
"of fresh chips a year at ~850k records), the fuel prices (1.35 to 2 THB/kg delivered, "
|
||||
"0.5 to 0.9 THB/kWh of heat; sources in finance/biomass/), the northern fuel market, "
|
||||
"the 60 rai of own fuelwood and its title check, logistics on site (fuel store, ash)"],
|
||||
["sustainability.md ('PV size with biomass steam', the hourly PV sizing sketch), "
|
||||
"finance/utilities-investment.csv "
|
||||
"(solar rows), boi.md", "PV on the factory roof (~520 kWp; the office roof and the canopies "
|
||||
"PV-ready) and its sources: the hourly sizing sketch (two shifts, 300 days, the 271 kWh battery, "
|
||||
"PEA time-of-use with Ft, 23,000 THB/kWp over 25 years at 8 %: best array ~500 to 550 kWp, "
|
||||
"estimate); the installed price of "
|
||||
"20 to 26 THB/W (DEDE's Thailand PV Status survey, CapSolar 2026, Saimai Solar's 2026 list); zero "
|
||||
"export for factories on PEA's grid (CapSolar, rooftop solar regulations, 2026; Sahawatthanakit, "
|
||||
"2026); the permits (Ministerial Regulation No. 3 B.E. 2567, in force 28 December 2024; ERC's "
|
||||
|
||||
Reference in new issue
Block a user