User, October 2026: option to enter base salaries; the company should
provide proper extra health care with check-ups for all staff.
- worker-safety.md: new "Health care for all staff" policy (decided
October 2026): group health insurance (inpatient and outpatient) and a
yearly check-up for everyone, office included, on top of social
security; the occupational checks Thai law requires for risk-factor
work (Ministerial Regulation B.E. 2547: within 30 days, then yearly, by
an occupational physician, records kept 2 years after the job ends) for
the press floor, galvanics and maintenance; planning costs with sources
checked October 2026 (group insurance ~8,000 to 18,006 THB a head a
year, plan ~15,000; Rajavej Chiang Mai check-ups 1,290 to 5,990 THB,
plan ~2,500 plus ~1,500 risk-factor tests, estimates); social security
5 % up to the 17,500 THB ceiling since 1 January 2026.
- revenue-model.md: cutting engineer 50,000 THB is base salary; health
care on top of the x1.3 (~0.35M THB a year at the start fleet); what the
x1.3 is made of.
- Fleet calculator: base salaries per role (the revenue model loaded
rates / 1.3; cutting engineer 50,000), employer social security 5 %
capped at 17,500, 25 % overtime, bonus and PPE, health insurance and
check-ups for all staff incl. 4 office staff (scale.md 3 to 5), risk-
factor tests for the press floor, galvanics and maintenance; all as
editable assumptions; people table gains office and all-staff rows.
Defaults: labour 5.25M THB (was 4.67M loaded), direct cost 1.90 USD a
record, EBITDA 2.19M USD.
Team figures, October 2026:
- revenue-model.md: a lacquer blank costs about 70 EUR, one per side, so
~160 USD a two-sided title before recuts; a cutting engineer costs about
50,000 THB a month;
- fleet calculator: the lacquer assumption is now in EUR (70, one per
side, converted at 1.155 USD per EUR; styli and recuts not included)
and the cutting engineer 50,000 THB a month, both marked as team
figures instead of estimates. At the defaults lacquers come to ~54k USD
a year and direct cost to 1.88 USD a record (was 1.86).
User, October 2026: add calculation for material cost, PVC, carton,
chemicals, labour etc. and revenue from sales.
New "Money a year" card (and a "Prices and money" input card):
- revenue: standard records at the standard price, specials with the
premium, title services per title (revenue-model.md 3.50 to 4.60
blended, +0.60 to 1.70, 580 to 1,730 USD a title);
- materials and packaging: PVC from the compound tonnage (rejects in,
trim back as regrind), labels per pressed record, inner sleeves,
printed jackets, shrink wrap, shipping cartons (estimate), maintenance;
- stamper making: lacquer blanks and styli per side (estimate), nickel,
silver and chemistry per electroformed part (revenue model: 60 to 150
USD a three-generation set);
- energy from the fleet: machines, chiller and compressors at the hours
run plus an estimated base load, roof PV off, PEA 3.2.2 blended rate and
demand charge; steam from the presses running time at the biomass heat
price (biomass.md); the start fleet lands in scale.md 4.3 to 6.4M THB;
- loaded labour per role (revenue-model.md wages; cutting engineer an
estimate), headcount now also counts QC, maintenance and cutting;
- overheads, EBITDA, depreciation of capex (total-investment.md start
fleet plan plus or minus each Duplex system and Classic), operating
profit, payback; per-record cost bar;
- Adverse / Central / Favourable presets from the revenue model ranges,
USD / THB / EUR display; ladder gains revenue and EBITDA columns.
At the defaults (1 M records, 20 % specials): revenue 4.42M USD, direct
cost 1.86 USD a record (revenue model central 1.94), EBITDA 2.23M.
README bullet; revenue-model.md links the calculator from its operating
picture.
The current plan (user decision, October 2026) replaces the 50/50 target
(two semi-automatic presses and two Pheenix AD12s) with an all-Newbilt
fleet of five presses: two Duplex systems in Newbilt's two-extruder
configuration (two HRP 12 presses, an extruder each, one hydraulic unit)
and one Classic fully automatic press.
- pressing-line.md: new "Current plan" section (fleet table, what it
means, phasing from the Single 2.1 as the first half of system 1,
re-quote questions); site requirements per Duplex system.
- scale.md: capacity table and basis (368 to 448 records/h, ~1.06 to 1.5M
a year on two shifts, same range as before); pressing electrical row;
steam and cooling flagged, not re-based: five presses draw ~750 to 900
kg/h of steam and up to ~625 kW of cooling at Newbilt's per-press
figures, against the 400 kg/h / 250 kW sized for one Duplex.
- total-investment.md: fleet change as an added-scope row (system 2
~230k-300k and the Classic ~290k-460k, estimates; -60k / -160k against
the two blocks it replaces); headline unchanged until the re-base.
- roadmap items 4, 5 and 24, revenue model mature row, crane doc (the
Classic's weight now decides 5 t or 3.2 t), vendor landscape (AD12 is
the comparison for the Classic), README.
The business plan docx is not regenerated.
New docs/artist-platform.md: upload master and artwork with automatic
audio, artwork and rights checks; an itemised price calculator for every
customer (per-title vs per-copy lines, price-per-copy curve, lead time
from the production-timeline quote table, versioned price list); and
fan-funded campaigns that press and dropship per fan once the goal is
reached, refund otherwise. Covers goal maths, payments (charge into a
ring-fenced account, CNX as seller of record, legal opinion first; the
Qrates failure as the design rule), repress pre-orders, architecture on
the cnx-factory stack with the public side on a fleet machine, PDPA,
phasing (calculator public early as a run-size probe, campaigns only
after first releases ship), cost and open decisions.
Backlinks from README, process flow, production timeline, revenue model,
digital factory and roadmap items 1 and 20; total investment added-scope
table gains the platform line.
The project has a standing style rule against em dashes that was missed
when these docs were written. This removes the 42 occurrences where the
substitution is mechanical and cannot change meaning:
- table cells using an em dash as a placeholder, now a hyphen
- em dashes immediately followed by a conjunction or subordinator
(but, and, or, so, though, while, which, where, because, since),
where a comma is simply correct
115 remain. Those join independent clauses, where a comma would create a
splice and a colon often reads wrong, so each needs a judgement call
rather than a pattern. A blanket regex over them was attempted and
reverted: it produced double colons and broken sentences.
Both were flagged in the review and deferred; fixing them properly
changes what the model says.
Labour
- The 0.23-0.40 USD/record line implied 44,000-63,000 THB per head per
month, far above northern Thai production rates.
- Rebuilt from headcount and wages: 13-19 direct production staff
(operators, galvanics, QC, maintenance) at loaded northern Thai rates
gives 3.7M-5.4M THB/yr, or 0.08-0.16 USD per record. Build-up shown.
- Mastering and cutting engineers excluded as title-services labour;
admin and sales moved to overheads where they belong.
- Stamper amortisation widened to 0.03-0.12 to match the in-house
marginal cost assumed elsewhere on the page.
- Direct cost total is now 1.30-2.58 USD (43-85 THB).
Operating roll-up
- The old EBITDA and operating-profit figures did not reconcile with
their own components and showed no loss case anywhere. Replaced with
a three-scenario table built from the components, each column
internally consistent, with cash overheads and depreciation separated.
- The adverse case is EBITDA-positive but does NOT cover depreciation:
operating profit -0.32M USD at 1.0M records on the low price and high
cost. The previous figures quoted 0.6-1.2M and hid this entirely.
Utilisation and price realisation decide solvency, not just upside.
- The favourable case is not credible and that is a finding about the
cost table rather than the business: 69% EBITDA margin against
industry norms of 15-25%, and 47% even at the centre. The direct cost
table counts only per-record consumables and direct payroll. Named
what is missing (indirect labour, scrap above the reject allowance,
water and effluent, inbound freight, inventory carrying, sales
commission) and marked the adverse column as the honest one until
those lines exist.
- Payback restated per scenario: never / 2.3-4.4 yr / 1.0-1.8 yr. The
old "5 to 8 years" came from the pre-correction margin.
- FX sensitivity and the utilisation bullet updated to match.
The table is a sensitivity, not a forecast, and now says so.
A four-agent review audited arithmetic, cross-document consistency,
epistemic honesty and style. It found substantially more than the
manual pass in the previous commit. Errors that changed conclusions,
not decimals:
Arithmetic
- production-timeline: the headline lead times did not reconcile with
the stage table on the same page. Launch is 22-49 days (was 21-39),
mature 11.5-22 (was 14-20), repress 6.5-11.5. Including gates,
launch is 6-17 weeks, not 8-14.
- Consequence: at 17 weeks the launch configuration is at parity with
EU/US plants, not ahead of them. The page now compares quote to
quote rather than a stage sum to a quoted lead time, and says so.
- The galvanics turnaround saving is 1.5-5 weeks, not 3-5.
- scale.md Duplex capacity 300-600k/yr did not reproduce from its own
stated basis; corrected to 175-540k. production-timeline disagreed
with scale.md on the same fleet; both now agree.
- "300 units is under an hour of pressing" was out by an order of
magnitude on the semi-auto line: 5-8 hours.
- project-timeline carried two totals for the same quantity. Now
27-33 months throughout, with the Gantt's two ordering breaks fixed.
- scale.md: 300 kWp covers 28-45% of consumption, not 20-35%; roof PV
stated as both 150-200 and 247 kWp for the same roof; parking canopy
dimensions and PV disagreed with the RFQ.
- RFQ: fire tank stated 200 m3 where both its geometry (254 m3) and
its own mass (250 t) say 250. Drainage now gives total sealed area
66%, not the 46% paving figure, since that is what attenuation needs.
- Galvanics payback used only the top of the saving range: 1-5 years,
not 1-4.
Inference marked as inference
- The 22,000 THB stamper figure is an invoice RESIDUAL. It carries
lacquer cutting, test pressings, setup and margin, so it is an upper
bound on the stamper component, not a measurement. Everything derived
from it now says so, and a line-itemised invoice is the top question.
- The saving was also benchmarked against the wrong supplier: CNX buys
from Stamper Discs, not a Thai reseller. Stated as 175-665 USD until
that quote exists.
- The stamper-bottleneck hypothesis now names its alternatives. Jacket
print runs would produce the same symptom and would constrain CNX
equally, which would remove the competitive read entirely.
- Competitor capacity relabelled as nameplate times an assumed OEE,
with the assumed shift pattern stated; all rows on one 300-day basis.
- The fixed/variable decomposition keeps the shape and drops the point
estimates: the solve point inside the flat 1000-3000 tier is
arbitrary and moves the fixed component by nearly half.
- "Nobody in Thailand plates" reduced to "we have found no evidence",
with a desk check named as the action.
- Cut the USD 450-700k valuation of a competitor's presses entirely.
It extrapolated a semi-auto quote onto a different machine, ignored
the used market, and supported no decision.
- The collaboration payback divided capex by revenue where the same
page uses contribution elsewhere: 5-10 years, not 1-3.
Missing caveats added
- No financing is committed or modelled anywhere in this repo;
project-timeline previously asserted money was not a constraint.
- Leasing cannot pull the launch forward on its own, since the press
chain governs and construction has float against it.
- The whole competitive analysis is one buyer, one plant, one
afternoon, and the primary evidence is not archived in the repo.
- ResurRec is a competitor and may decline to buy from a new entrant.
Currency
- Base currency moves from EUR to USD and THB throughout. Rates at
5 Aug 2026: 1 USD = 33 THB, 1 EUR = 1.155 USD, 1 GBP = 1.35 USD.
EUR/THB lands at ~38, so existing THB research needed no change.
- Vendor quotes keep their original currency with a USD/THB equivalent
alongside, so they stay checkable against the source PDFs.
- Full vision ~4.7-8.9M USD; phased entry ~1.7-2.9M USD.
New documents
- production-timeline.md: order turnaround stage by stage. Launch
8-14 weeks, mature 5-10, repress 2-3. Quantifies the in-house
galvanics turnaround claim the repo had asserted without a number,
and flags artwork as an unmodelled fourth approval gate.
- project-timeline.md: calendar to first paying release, ~Q4 2028.
Critical path is BOI certificate to press order to build to
commissioning. Two findings: Newbilt build time is absent from the
repo yet carries ~40% of the schedule, and the BOI rule may be
over-serialised since duty exemption attaches at importation rather
than at contract signature.
First market data (ResurRec, Bangkok)
- Invoice-derived prices, a factory tour, and a confirmed fleet of one
Newbilt Classic 12" automatic plus one semi-automatic.
- Price ladder recorded at 300/500/1000-3000/3000+ units. Decomposes
to roughly 34-50k THB fixed per title and 535-780 THB variable per
unit, which is 4-7x the price this model assumes.
- The incumbent presses 230-350k records/yr but buys every stamper as
an import. That single constraint plausibly explains their 150-unit
floor, their flat discount ladder and their large-run lead time, and
it is what an in-house galvanics line attacks. Logged as an open
question on whether galvanics should move from phase 5 to phase 1.
- Inferences are marked as inferences; the whole set is one buyer and
one plant, and the model is deliberately left unrebased until a
second data point exists.
Corrections
- Gross margin arithmetic did not follow from its own inputs. Restated
as ~1.95 USD at the midpoint with the 0.75-3.15 spread shown; the
previous "40 to 55%" was not supported.
- Direct cost low total 1.50 to 1.45 USD; contingency THB high 40M
to 38M.
- README indexes the construction RFQ, which was missing.