Stage: Proposal sent → Zanoni intro (June 8-9) | Updated: 2026-06-08
Proposal (9 Giugno): adapttoai-eurocomponents.pages.dev/pre-proposal-external-v3
UI Mockup: eurocomponents-rfq-mockup.pages.dev/index-live.html | GitHub: Adapt-to-AI-B2B/eurocomponents-rfq-mockup
Updated Jun 8 — Delta since Call 3
- Pricing restructured — milestone-based: €1K avvio + €1.75K Phase 1 + €3.9K Phase 2 + €1.3K/mo. Old flat impl fee dropped. Rationale in Section 3.
- Technical clarifications from Calls 4–6 — CLS/Lamierino + Posa required on descrittivo header; flag-to-source linking mandatory; output languages locked to IT/EN/FR/DE; supplier pricing formula confirmed; Swiss withholding tax. See Section 2 addendum.
- Pipeline status — proposal sent to Maurizio. Zanoni intro meeting June 8-9. NDA likely required before Zanoni sees full pricing.
| Phase | Who | What happens | Time today | Scope |
|---|---|---|---|---|
| 1 — Capitolato triage | Back-office | Receive raw project bundle (1–150pp PDFs + drawings + specs, IT/DE/FR/EN). Filter for bathroom-relevant content. Identify pod typologies + quantities. | 30 min – 3 hrs | v1 ✅ |
| 2 — Descrittivo | Back-office | Build the structured Excel per typology: 40+ columns, every material line, EC shell standards applied (CLS type, orientation, dimensions). Italian throughout. | 10 min – 4 hrs | v1 ✅ |
| 3 — Split / Preventivo | Preventivista | Price every line: supplier catalog − (50%+10%) = base cost, +34% spese generali, +K markup. Per-typology subtotals. Swiss projects: +2.5% withholding. | ~3 hrs | v2 🔲 |
| 4 — Offerta | Back-office + Commerciale | Format final client offer in input language (Word→PDF), add commercial margin, send. ~12-13pp per project. | 1–2 hrs | v2 🔲 |
TODAY (all manual, ~6-12 hr per project, throughput-limited)
─────────────────────────────────────────────────────────────────
RFQ ──► [BO triage]──►[BO descrittivo]──►[Preventivista]──►[BO+Comm offer]──► Client
30 min-3 hr 10 min-4 hr ~3 hr 1-2 hr
v1 (AI replaces phases 1+2)
─────────────────────────────────────────────────────────────────
RFQ ──► [AI: triage + extract + standardize + translate + apply reg rules]
│
▼
[Human-in-loop QA UI] ← back-office confirms,
(flags linked to source PDF) every flag → exact page
│
▼
Clean descrittivo Excel
│
▼ (HubSpot notification → preventivista)
│
[Preventivista split + pricing] ──► [BO+Comm offer] ──► Client
unchanged ~3 hr unchanged 1-2 hr
v2 (extends the platform)
─────────────────────────────────────────────────────────────────
+ Phase 3: split pricing engine (supplier lookup + formula automation)
+ Article code resolution: capitolato → supplier lists (two-stage lookup)
+ Swiss withholding tax (2.5%) handling
+ Auto-photo pickup from supplier sites (Maurizio's #1 ask)
+ NO/SE input parsing + additional country coverage
| Artifact | Link | What it shows |
|---|---|---|
| Live proposal (9 Giugno) | adapttoai-eurocomponents.pages.dev/… | What Maurizio + Zanoni see: scope, milestones, pricing |
| Clickable UI mockup (v0.6) | eurocomponents-rfq-mockup.pages.dev/index-live.html | Back-office flow, fully clickable. RFQ upload → triage → human review → descrittivo export. Alpine.js + Tailwind. |
| Mockup source code | github.com/Adapt-to-AI-B2B/eurocomponents-rfq-mockup | Annotated HTML — reference for UI flows, component breakdown, and QA review screens |
These files are currently on Giuseppe's Mac only. Giuseppe needs to share the folder before you can open them. Ask him to send via iCloud Drive / Google Drive / WeTransfer — the folder is ~/Downloads/Mauri & Giuse/ (~50MB total, 4 complete projects).
Once you have the folder, here is exactly what's inside and what each file is for:
Mauri & Giuse/
│
├── EuroComponents_flussocommerciale_AI.pdf ← START HERE
│ Maurizio's own 4-phase workflow diagram. The spec for what we're building.
│
├── 025-26 Residenziale Hardess Yard - Brixton (UK)/ ← PRIMARY TEST CASE (read this end-to-end)
│ ├── 00_DISEGNI E SPECIFICHE/
│ │ └── 00_DOCUMENTI CLIENTE/
│ │ ├── ...-34000-Typical Bathroom Pod.pdf ← CAD drawing, typology 01
│ │ ├── ...-34001-Accessible Shower Pod.pdf ← CAD drawing, typology accessible
│ │ ├── ...-34002-Adaptable Shower Pod.pdf ← CAD drawing
│ │ ├── ...-34003-Typical Bathroom Pod Type 2.pdf ← CAD drawing, typology 02
│ │ └── ...-18000-Accommodation Schedule.pdf ← SOURCE of typology counts (75/213/32)
│ ├── 01_DESCRITTIVO OFFERTA/
│ │ └── 025-26 Rev 00 Descrittivo.xlsx ← THE CANONICAL SCHEMA (40 cols × 76 rows)
│ │ This is what we output. Open this first.
│ ├── 02_SPLIT/
│ │ ├── Split 25-26 tip 01.pdf ← Cost-build per pod, typology 01 (~€7,953/pod)
│ │ ├── Split 25-26 tip 02.pdf ← Same for typology 02
│ │ └── Split 25-26 tip 03.pdf ← Same for typology 03
│ └── 03_OFFERTA/
│ ├── 025-26 Rev. 00 Hardess Yard ... Brixton.pdf ← FINAL OFFER (12pp, what the client sees)
│ ├── 025-26 Calcolo prezzo_08-04-2026.xlsx ← Sell-price calculator (K=5% applied)
│ └── FILE K 025-26 08-04.xlsx ← K-floor worksheet (cost floor, K=0 baseline)
│
├── 060-25 Resid.+Hotel Schwarzwaldtrio - Karlsruhe (D)/ ← HARDEST DOCUMENT (German LV, 144pp)
│ └── 060-25/
│ ├── Documenti cliente/
│ │ └── Capitolato cliente/
│ │ └── 2025-06-18_SWT_ LV Fertignasszellen.pdf ← THE 144pp GERMAN LV
│ │ pp11-13: DGNB ENV1.2/QNG compliance matrix — 30+ DIN/EN norms.
│ │ This is the worst-case input. Read pp1-15 to understand the challenge.
│ ├── Descrittivo Tiziano/
│ │ └── 060-25 Descrittivo offerta.xlsx ← Karlsruhe descrittivo (41c × 104r)
│ ├── Split/ (4 split PDFs by typology)
│ └── Offerta/
│ └── EC_Rev00_060-25 ... Angebot FNZ.pdf ← German final offer
│
├── 068-26/ ← THIRD PROJECT (partial — no offerta)
│ ├── 068-26 Rev 00 Descrittivo.xlsx ← Another descrittivo (38c × 77r)
│ └── 26005-CRA-XX-00-DR-A-11100.pdf ← Client CAD drawing
│
├── 126-25 Residenziale Lucens (CH)/ ← SWISS PROJECT (French input)
│ ├── 00_DOCUMENTI CLIENTE/ (3 French PDFs)
│ ├── 01_DESCRITTIVO OFFERTA/126-25 Rev 00 Descrittivo offerta.xlsx
│ ├── 02_SPLIT/ (6 split PDFs)
│ └── 03_OFFERTA/
│ ├── 126-25 REV00 Offre sdb préfa - Resid. Lucens.pdf ← French final offer
│ └── 126-25 Tabella costi e PV.xlsx ← Pricing table (IT internal)
│
└── 127-25 Co-living Crissier (CH)/ ← SWISS CO-LIVING (French input)
├── 00_DISEGNI E SPECIFICHE/
│ └── VD_ARBORA-B11_CFC 259_SOUMISSION_Prefabricated pods.xlsx ← Client spec in Excel
├── 01_DESCRITTIVO OFFERTA/127-25 REV00 Descrittivo offerta.xlsx
├── 02_SPLIT/ (2 split PDFs)
└── 03_OFFERTA/
Suggested reading order for Riccardo:
EuroComponents_flussocommerciale_AI.pdf — understand the 4 phases (5 min)025-26/01_DESCRITTIVO OFFERTA/025-26 Rev 00 Descrittivo.xlsx — open the canonical schema, understand the 40 columns (10 min)025-26/02_SPLIT/Split 25-26 tip 01.pdf — see what the preventivista does with it (5 min)025-26/03_OFFERTA/025-26 Rev. 00 ... Brixton.pdf — see the final output (5 min)060-25/.../LV Fertignasszellen.pdf pp1-15 — understand the worst-case input document (10 min)| # | Surface | What it does | Classification | Source for reuse | Notes / risks |
|---|---|---|---|---|---|
| 1 | Inbound capture | Receive incoming RFQ from client. Today: emails + Dropbox links + multi-file folder uploads. | EXTEND | aronlight-build/quote-gen/flows/inbound-email.ts (signatures + handoffToBackOffice gate) |
Aronlight's inbound expects a single email + structured attachments. EC's inbound is messier: link to a shared folder containing 20+ PDFs + drawings + a 100-page LV. Adaptation needed for folder-walk + filtering. ~2-3 days dev. |
| 2 | Document triage / filtering | Filter bathroom-relevant docs out of the full project capitolato bundle. Apply 15-unit-rule per typology. | NEW | None — Aronlight inbound assumes already-filtered email. EC needs an LLM-driven classifier to find bathroom-relevant pages in 100-page LVs. | Real risk: getting it wrong skips the bathroom spec entirely. Needs per-language keyword priors (DE: "Fertignasszellen / Bad / Sanitär"; EN: "bathroom / pod / shower"; FR: "salle de bain / douche / sanitaire"). Estimated 1-2 weeks dev. Highest-risk new surface. |
| 3 | Multi-language input parsing | OCR + structured extraction across IT/DE/FR/EN/Norwegian/Swedish PDFs (capitolati) + DOCX + XLSX. | EXTEND | aronlight-build/quote-gen/prompts/classify-email-type.md (LLM extraction patterns) |
Aronlight's prompts are IT/EN. Extending to 6 languages = prompt engineering + per-language test fixtures. ~1 week dev. PDF OCR for scanned PDFs is a separate concern. |
| 4 | Domain extraction (LLM + rules → canonical record per typology) | Map raw inputs to the 40-column × 76-row descrittivo schema. Per-typology side-by-side material lines. | EXTEND | aronlight-build/quote-gen/flows/email-classifier.ts + flows/product-matcher.ts |
Aronlight matches inbound email items against an Odoo catalog. EC has NO catalog — instead extracts free-form spec into a structured template. Different problem shape: spec → schema, not item → item. ~2 weeks dev. |
| 5 | EC standards library / pod-shell defaults | When client doesn't specify dimensions or shell type, fill from EC's master library (concrete vs sheet-metal vs lightweight-fibre, standard wall thicknesses, etc.). | NEW | None. | Master spec docs confirmed exist (Call 3 Q7). ~1 week dev once docs received. |
| 6 | Format-preserving multi-language translation | Round-trip Italian (preventivista's working lang) ↔ input language for the descrittivo + final offer. Preserve Excel/Word format on round-trip. | NEW | None. Aronlight's pipeline is single-language. | Strategy: wrap DeepL Pro (Canta's chosen tool — preserves format) rather than rebuild. ~3-5 days dev. DeepL business plan ~€60-80/mo. |
| 7 | Country-regulation rule engine | Apply per-country regulation: UK Building Regs Part M, DE DGNB ENV1.2/DIN/VDI, IT UNI, CH SIA. | NEW | None. | Scope contained via Maurizio's commitment to write rule tables (Call 3 Q6). System ingests structured rules + applies them as filters. ~2 weeks dev for constrained version. |
| 8 | Pricing engine — split builder | Build the 11-section split. Lookups for internal prices + supplier prices. | EXTEND | Aronlight pricing per-line-item from Odoo, not section-aggregated. | Phase 1 OUT — pricing stays manual in v1. |
| 9 | K markup + sell-price calculator | Apply commercial K markup. Compute sell price + £/€ FX. | REUSE | Aronlight's pricing finalizer. | Phase 1 OUT — pricing stays manual in v1. |
| 10 | Document generation — final offer (.docx + .pdf) | Generate the 12-13 page final offer in client's language. | EXTEND | Aronlight has the concept but different layout. | Phase 1 OUT — final offer stays manual in v1. |
| 11 | Auto-photo pickup from supplier sites | Given brand + model + SKU + colour, pull product image. | NEW | None. | Defer to v2. Maurizio's #1 emotional ask but technically highest-risk surface after regulation engine. |
| 12 | Approval / human-in-loop UI | Surface the canonical record for back-office review before handoff to preventivista. | EXTEND | Aronlight's approval gate (flows/inbound-email.ts ends at handoffToBackOffice()). |
~1.5 weeks dev. |
| 13 | Integration adapter — HubSpot | Notification when descrittivo is ready → preventivista. | NEW | None. AdapttoAI has Lamosa SAP B1 + Aronlight Odoo + Sophie WAHA + MAGG NetSuite, no HubSpot. | Read-only sufficient for v1. ~1 week dev. |
Honest read: this is not a low-reuse engagement. ~46% of surfaces are NEW. We have pattern carry-over from Aronlight (same email-to-structured-output + human-in-loop architecture) but the underlying problem inverts (catalog matching → schema extraction).
Why: Karlsruhe LV alone references 30+ DIN/EN/VDI norms with material-category-specific compliance requirements (DGNB ENV1.2 / QNG, EMICODE EC1, GISCODE classes, SCCPs/MCCPs/LCCPs Chlorparaffine ≤ 0.1%, Formaldehyde ≤ 0.10 ppm, etc.). UK Building Regs Part M is implicit in the drawings. CH SIA + IT UNI not yet represented in samples but exist. If we attempt to "build the regulation knowledge" ourselves we are building an entire compliance product, not a feature.
De-risk path (confirmed Call 3 Q6): make the engine a structured rule importer, NOT a regulation-knowledge product. Maurizio writes the rules + supplies legislation files (committed). System ingests them as a structured table and applies them as filters during extraction. Scope: "rule library editor + per-country profile selector + apply rules during standardization step". ~2 weeks of dev for the constrained version.
Skip if you've worked with this kind of system before.
A subsystem that, during the extraction + standardization step (Phase 1), applies country-specific compliance requirements as filters and validators on every material line in the descrittivo, then either prevents non-compliant choices, recommends compliant alternatives, or flags them for human review.
Real examples from the materials in hand:
At runtime, for a Karlsruhe descrittivo:
"Project is German, DGNB Silver target. Proposed tile is Refin Feel. Does Refin Feel have an EMICODE EC1 declaration on file? Does its adhesive meet GISCODE D1? If yes → cleared. If no → surface a substitution recommendation OR flag for human override."
Three sub-components:
| Sub-component | What it does | Where the data lives |
|---|---|---|
| Rule importer | Accepts Maurizio's structured rule tables + legislation PDFs as supplementary | One-time per-country input, refreshed on regulation updates |
| Rule library | Stores rules per (country, project type, material category), versions them | Database table: (country, project_type, material_category, rule_id, requirement, source_norm) |
| Rule applicator | Validates each material line against the active profile, surfaces compliance check / flagged exceptions / suggested alternatives | Runs inside the extraction pipeline, before handoff to preventivista |
Constrained scope (the version we propose): rule applicator, not regulation expert. Client owns the rules + legislation updates. We own the system that applies them.
This is the difference between 2 weeks of dev (constrained) and 2 months + ongoing (unconstrained). The pre-condition "Maurizio commits to writing rule tables" was load-bearing — now resolved (Call 3 Q6).
Bottoms-up by phase. Riccardo = primary builder. Giuseppe + Raffaello = architecture alignment + milestone review only.
| Phase | Dev hours (Riccardo) | Partner hours (G+R oversight) | Dev cost (€55/hr) | Partner cost (€200/hr) |
|---|---|---|---|---|
| Kickoff + architecture alignment | — | 5 hrs | — | €1,000 |
| M1: Schema + canonical record + DeepL wrap | 60 hrs | 3 hrs | €3,300 | €600 |
| M2: Document triage + extraction + standardization | 100 hrs | 3 hrs | €5,500 | €600 |
| Country-reg rule engine (constrained) | 60 hrs | — | €3,300 | — |
| Human-in-loop QA UI + HubSpot integration | 80 hrs | — | €4,400 | — |
| Handover + billing setup | — | 5 hrs | — | €1,000 |
| Tooling (Claude Code + API, 4 active build months × €800/mo) | — | — | €3,200 | |
| DeepL Pro during build (4 months × €70/mo) | — | — | €280 | |
| Total build | 300 hrs | 16 hrs | €16,500 | €3,200 |
| Total build cost (all-in) | ~€23,200 | |||
Photo-pickup (v2): ~40 hrs dev + €2,000 tooling if feasibility lands. Not in v1 scope.
Discovery + scoping (already done, not in the above): ~20 hrs partner.
Once live at 240 RFQs/yr pace (~20/mo):
| Line item | Monthly cost | Notes |
|---|---|---|
| Claude API (extraction + translation per RFQ) | ~€200 | ~€10/RFQ × 20 RFQs/mo. Scales linearly with volume. |
| DeepL Pro Business | ~€70 | Format-preserving translation. Fixed subscription. |
| Hosting + infrastructure | ~€20 | CF Pages/Workers or equivalent. |
| Dev maintenance (Riccardo) | ~€275 | ~5 hrs/mo × €55. Bug fixes, edge cases, schema updates. |
| Partner availability (G+R) | ~€400 | ~2 hrs/mo × €200. Check-ins, client escalations, product decisions. |
| Total monthly cost (AdapttoAI) | ~€965/mo | |
| Quota Mensile (charged to client) | €1,300/mo | |
| Monthly margin | ~€335/mo (26%) | At 240 RFQ/yr pace. Margin grows if volume stays flat (fixed API cost doesn't scale with our overhead). |
These requirements were confirmed after the surface decomposition above. They affect Surface 4 (domain extraction), Surface 6 (translation), and Surface 9 (human-in-loop UI) specifically.
| Requirement | Detail | Surface impact |
|---|---|---|
| CLS / Lamierino field | Required first-screen field on every descrittivo header — distinguishes pod shell type (CLS = concrete-lightweight-steel vs Lamierino = sheet metal). Must be captured from capitolato or entered manually before extraction proceeds. | Surface 4 — add mandatory header field to canonical record schema |
| Posa orizzontale / verticale | Required header field — orientation of tile/cladding installation. Affects material quantities. Must appear on descrittivo before preventivista uses it. | Surface 4 — second mandatory header field |
| Flag-to-source linking | Every AI-extracted value that is flagged for human review must link back to the exact page + paragraph in the source PDF where the value was found. Click → source is mandatory for preventivista trust. | Surface 2 (triage) + Surface 4 (extraction) — source-citation must be stored per-extraction |
| Output languages locked: IT / EN / FR / DE only | System outputs are always one of these four. Swedish or Norwegian INPUT is parsed and understood, but the descrittivo and offer are produced in IT (working language) + the corresponding output language (EN/FR/DE). No Swedish/Norwegian output in v1. | Surface 6 — scope reduction: 4 output languages, not 6 |
| Supplier pricing formula | Confirmed Call 5: catalog price − (50% + 10%) = base cost. Applied uniformly across all suppliers in the split calculation. The 34% spese generali is added on top of base cost, then K markup. | Surface 10 (split pricing) — formula locked; no per-supplier exception logic in v1 |
| Swiss withholding tax (2.5%) | CH projects carry a 2.5% withholding applied to Phase 2 pricing math. Must be flagged when project country = CH. | Surface 10 — country-flag conditional in pricing engine |
| Cost formula Phase 2 | base cost + waste% → +34% spese generali → +K markup (project-specific, entered by commerciale). K cell is editable, not auto-computed. | Surface 10 — formula confirmed; K is human input, not AI output |
| Article code search phase | Phase 1 extracts article codes from the capitolato. Phase 2 searches the supplier lists. These are distinct lookups with different sources — they must not be merged into one step. | Surface 4 (Phase 1) + Surface 10 (Phase 2) — two-stage article code resolution |
Net impact on build estimate: The CLS/Posa fields and flag-to-source linking add ~3-5 days dev to Surface 4 (extraction UI + schema). Output language reduction from 6→4 saves ~3 days. Net: roughly neutral on the €18K build estimate.
Note: options A/B/C/D explored during internal scoping (May 2026) are superseded. Maurizio requested zero large upfront impl fee (Call 4); pricing restructured as milestone payments tied to deliverables.
| Milestone | Trigger | Amount |
|---|---|---|
| Fee di avvio | Alla firma del contratto | €1,000 |
| Phase 1 completata | Pipeline gira su RFQ reale, preventivista accetta il descrittivo senza rilavorazione | €1,750 |
| Phase 2 completata | v2 in produzione con split pricing + HubSpot wired | €3,900 |
| Quota Mensile (da Mese 7) | Ricorrente mensile da quando il sistema è live | €1,300/mo |
Year 1 total: €1,000 + €1,750 + €3,900 + (5 × €1,300) = ~€13,150
Year 2+ ARR: €1,300 × 12 = €15,600/yr
Why milestone-based: - Maurizio explicitly pushed back on large upfront impl fee (Call 4). Zero advance payment was his constraint. - Milestone gating de-risks the client — they only pay when the system demonstrably works. - Net effect: AdapttoAI absorbs €18K build cost, recovers it via subscription over ~14 months post-delivery. Acceptable given strategic value (Italian beachhead, construction vertical, Zanoni cash position ~€2M). - Floor check: €15,600/yr ARR well above €10K/yr floor.
Reading b2b/docs/icp.md V3 (Apr 16, 2026). Score each condition 0-3.
| ICP condition | Score | Evidence |
|---|---|---|
| C1: ERP invested but underused | 1 | EC uses HubSpot as workflow tracker (CRM, not ERP). SPI di EDM for procurement (confirmed Call 3 Q9). Less than the typical AdapttoAI ICP win — we don't have an ERP to live between. |
| C2: Back-office processing complexity | 3 | Complex pricing (split + K markup + commercial extra-margin + per-country sell-price + £/€ FX). Multi-format inputs. 30+ supplier brand-SKUs per project. "Request a quote" model. Dedicated back-office + preventivista + commercial roles. Strong match. |
| C3: High-volume manual workflows | 2 (was 1, upgraded Call 3) | 240 RFQs/year pace in 2026 (up from 150 historic). With +60 RFQs/year currently falling to "budget" that we can convert to real offers, transaction count is meaningful. Still inverse of typical AdapttoAI ICP (high value per transaction vs high count), but throughput pressure is real. |
| C4: Multi-party coordination | 3 | Back office + commerciale + preventivista + general manager + commercial agents + suppliers (30+ brands) + general contractors + end clients. Strong match. |
| Total | 9 / 12 |
Minimum ICP fit threshold per icp.md: 7+ "worth pursuing", 10+ "strong fit". EC scores 9 → strong-fit-adjacent.
references/buildability-rubric.md| Signal | Weight | Applies? |
|---|---|---|
| ≥ 1 NEW surface that is also high-risk | -3 | YES (regulation rule engine, photo pickup) — but de-risk path now confirmed via Call 3 Q6, effective weight closer to -2 |
| ≥ 50% surfaces are REUSE | +2 | NO (only 1 of 13 = 8%) |
| Strong direct competitor with public pricing < ½ our anchor | -2 | NO (none identified) |
| No direct competitors found, adjacent inadequate | +2 | YES (but with caveat that scan was time-bounded) |
| Year-1 ARR < floor (€10K) | -1 | NO (Y1 revenue €13,150 — above €10K floor) |
| Year-1 LTV ≥ 2× build cost | +2 | NO (Y1 €13,150 vs build cost €18K — Y2+ subscription recovers by Mes 20) |
| ICP score 75%+ | +1 | YES (9/12 = 75%, refreshed Call 3) |
| ICP score < 50% | -2 | NO |
| Capacity stretched (2+ active builds) | -1 | YES (Aronlight in active build) |
| Strategic value high | +2 | YES |
| Revenue urgency HIGH | +1 | YES (refreshed Call 3) |
| Client decision-authority real | +1 | YES |
Net score: −2 + 2 + 1 + 2 − 1 + 2 + 1 = +5
Threshold: 0 to +3 → PIVOT. 4+ → GO. EC at +5 → GO (smaller shape).
No auto-PASS triggers. Verdict stands.
2026-05-07 verdict was PIVOT. Upgraded to GO (smaller shape) on 2026-05-12 after Call 3 resolved 3 of 4 pre-conditions including the load-bearing regulation engine de-risk. Same scope as the PIVOT recommendation; pre-conditions now mostly checked.
Smaller shape: - v1 ONLY = document triage + canonical record + standardization (descrittivo Excel render) + multi-language IT-middle automation + constrained country-regulation rule engine. - v1 OUT: photo-pickup (defer to v2 with separate billing), final offer document generation, pricing split engine end-to-end automation, supplier-quote sub-flow. - Smaller country footprint at launch: UK + DE + IT only. Add CH + Norwegian + Swedish in v2 once UK/DE/IT live. - Tighter regulation engine: ingest Maurizio's rule tables, do NOT independently research norms.
Pricing on the smaller shape (sent 9 Giugno 2026): - Fee di avvio (alla firma): €1,000 - Phase 1 completata: €1,750 - Phase 2 completata: €3,900 - Quota Mensile (da Mese 7): €1,300/mo - Year-1 total: ~€13,150 - Year-2 ARR: €15,600/yr - Breakeven: ~Mes 20
Timeline (updated Jun 8): - 2026-05-12 — DONE: Q&A recap sent to Maurizio. - 2026-05-26 — DONE: internal pre-proposal aligned (Giuseppe + Raffaello). - 2026-06-09 — DONE: proposal "9 Giugno" sent to Maurizio. Zanoni intro meeting June 8-9 (NDA likely required before Zanoni sees pricing). - Kickoff: July 2026 (after Aronlight Mes 3 + Zanoni sign-off). - Phase 1 delivery: ~August 2026 (pipeline live on real RFQ, preventivista accepts descrittivo). - Phase 2 delivery: ~September-October 2026 (split pricing + HubSpot wired, handover). - Quota Mensile starts: Mese 7 (~January 2027).
What's cut from original ask: - Auto-photo pickup (Maurizio's #1 emotional ask) — deferred to v2, billed separately, framed as feasibility prototype during M3 delivery. - End-to-end automation (Maurizio knows we're not doing this — explicitly de-prioritized in Call 1). - 6-language coverage at launch — limited to UK/DE/IT in v1. - Final offer document generation — manual continues.
Net status: 4 of 5 pre-conditions resolved. Zanoni sign-off is the remaining gate.
Every artifact below was actually opened. Generic auto-summaries from the inventory script have been replaced with reads-confirmed descriptions.
| # | Artifact | Type | What's in it (read-confirmed) |
|---|---|---|---|
| 1 | EuroComponents_flussocommerciale_AI.pdf |
PDF 1pp | Canta's 4-column workflow diagram. Step 1 Capitolato (BackOffice + Commerciale): file unico vs multi-file, building-wide vs bathroom-specific, IT/DE/FR/EN/Swedish/Norwegian. Step 2 Descrittivo (BackOffice): per-typology, EC standards on shell/structure, alternativa più economica, Italian only. Step 3 Preventivo (Preventivista): internal prices for shell, supplier prices if database is <6mo old, request quotes from external suppliers, +34% markup. Step 4 Offerta (BackOffice + Commerciale): standardize, add extra margine k, translate to input language. |
| 2 | Brixton/00_DISEGNI E SPECIFICHE/00_DOCUMENTI CLIENTE/HAL-HYL-...-34000-Typical Bathroom Pod.pdf |
PDF 1pp | CAD drawing: typical bathroom pod plan + sections + numbered component key. Plasterboard faces 892, internal 2055, drainage offsets, external dimensions. Mostly geometry, very limited extractable text. |
| 3 | Brixton/00_DISEGNI E SPECIFICHE/00_DOCUMENTI CLIENTE/...-34001-Accessible Shower Pod.pdf |
PDF 1pp | Accessible shower pod CAD. Component key with "Part M Vol 2" compliance legend, drainage SVP/RWP icons, dimensions. UK-specific accessibility regulation reference. |
| 4 | Brixton/00_DISEGNI E SPECIFICHE/00_DOCUMENTI CLIENTE/...-34002-Adaptable Shower Pod.pdf |
PDF 1pp | Adaptable shower variant. "8 CLEAR OPENING - DOES NOT COMPLY" — flagged design issue noted in margins. Same component-key pattern. |
| 5 | Brixton/00_DISEGNI E SPECIFICHE/00_DOCUMENTI CLIENTE/...-34003-Typical Bathroom Pod Type 2.pdf |
PDF 1pp | Type 02 variant of typical pod. CAD geometry only, ~9 dimensional callouts. |
| 6 | Brixton/00_DISEGNI E SPECIFICHE/00_DOCUMENTI CLIENTE/...-18000-Accommodation Schedule.pdf |
PDF 1pp | Accommodation schedule with unit numbers + GIA. This is the source of the typology counts (75 / 213 / 32). 1-page table, partly cut off in extracted text. |
| 7 | Brixton/01_DESCRITTIVO OFFERTA/025-26 Rev 00 Descrittivo.xlsx |
Excel | Canonical record schema. Foglio1 has 40 columns × 76 rows. Header rows 1-13 = project metadata (rev, project name, project type, location/address, drawings yes/no, capitolato yes/no, contacts, delivery date, install type, total qty, typology breakdown). Row 16 = column headers ("N." + "Materiale" + one column per typology + "Note Aggiuntive"). Rows 17-76 = structured material lines with side-by-side typology costing. Foglio2 + Foglio3 are 1×1 stubs (unused). |
| 8 | Brixton/02_SPLIT/Split 25-26 tip 01.pdf |
PDF 3pp | Cost-build per pod for typology 01 (75 units). 11 numbered sections: Scocca, Imp. Elettrico, Imp. Idraulico, Imp. Areazione, Imp. Riscaldamento, Rivestimento, Tinteggiatura, Arredo, Carpenteria, Chiusura, Trasporto. Each line = quantity × material unit + labor unit + altro = totale. Final per-pod cost €7,953.47, footer says "aggiungere K". Real brand+SKU lines (Heritage Brass XBK,150,BK / ASTRO Taro 1240026 / Gewiss GW44208 / GROHE 38422 / IDEAL STANDARD I.LIFE T517801 / HANSGROHE Logis 41710000 / TOWELRADS 130013 / Refin Feel / Waterstone Nova / DULUX Sterishield). |
| 9 | Brixton/03_OFFERTA/025-26 Rev. 00 Hardess Yard Residential Project, Brixton (UK).pdf |
PDF 12pp | Final external offer. Cover (McAleer & Rushe contractor name, "MONOLITE SMART" pod product). Summary TOC. Introduction (Javier Maanon Export Manager + Carin Höglund Sales). Certifications page (ISO 9001/14001, TUV fire 45min + sound 40dB, Lloyd's 10yr liability, SINTEF). Tech specs page. Bathroom Types & Measures: Type 01 75pz / Type 02 213pz / Type 03 32pz, dimensions in cm, weight, CLS density. Bathroom Equipment Specification: same SKU list as the split, presented as text spec rather than cost-line. Quotation: Type 01 €8,350/pod × 75 = €626,250; Type 02 €8,340 × 213 = €1,776,420; Type 03 €13,190 × 32 = €422,080. Total €2,824,750 / £2,457,177 (FX 0.87 09-04-2026). ExWorks Bedizzole. Sales terms: 30-day validity, 20% advance + 80% L/C, 4-phase production timeline (mock-up design 3-4w + production 6-8w + first delivery 8w after mock-up approval). 11 included items + 9 excluded items + 11 general sales conditions + Environmental Responsibility (BREEAM, Minergie, LEED) + Privacy Report (GDPR boilerplate). |
| 10 | Brixton/03_OFFERTA/025-26 Calcolo prezzo_08-04-2026.xlsx |
Excel | Sell-price calculator. 11 cols × 12 rows. Columns: Bathroom Pod Typology / Qty / SPLIT prices / K = 5% / Rounded up/down Unit price / Sell price (£) / Rounded up/down Unit price (£) / Total price / Total price (£). Type 01: SPLIT €7,953.47 → ×1.05 → €8,351.14 → rounded €8,350 → £7,265 → row total €626,250 / £544,875. Type 02: SPLIT €7,941.35 → €8,338 → €8,340 → £7,254. Type 03: SPLIT €12,562.10 → €13,190 → £11,475. Grand total €2,824,750 / £2,457,177. The K=5% cell is a single value applied uniformly to all typologies in this project. |
| 11 | Brixton/03_OFFERTA/FILE K 025-26 08-04.xlsx |
Excel | MYSTERY FILE — answered. Sheet "calcolo K", 8 cols × 16 rows. Columns: TIPOLOGIE / QUANTITA' / COSTO K=0 (spese generali già incluse) / TOTALE k=0 / PREZZO DI VENDITA / TOTALE / MARGINE / K. Pre-populated with Type 01-03 cost rows where K=0 (no markup). MARGINE column = 0 in baseline. This is the cost-floor worksheet — used by the commerciale to know the floor below which margin goes negative. Different artifact from "Calcolo prezzo" which computes the sell price WITH K markup. |
| 12 | Karlsruhe/Documenti cliente/Capitolato cliente/2025-06-18_SWT_ LV Fertignasszellen.pdf |
PDF 144pp (read pp 1-30) | The German LV chaos. Pages 1-3: cover + project intro (Schwarzwaldtrio Karlsruhe, 21-floor high-rise + mobility hub + heritage building, EFH 40 standard). Pages 4-10: BVB special contract conditions (safety, lean management daily 5-10 min standups, logistics, DGNB Silver certification + KfW BEG 40 + NH-Klasse). Pages 11-13: Anlage 1 DGNB ENV1.2/QNG materials matrix — for every product category (floor coverings, adhesives, sealants, primers, surface coatings, plastic products, wood materials), required compliance: VOC < 10 g/l for some, EMICODE EC1/EC1PLUS, GISCODE classes, SCCPs/MCCPs/LCCPs Chlorparaffine ≤ 0.1%, Formaldehyde < 0.10 ppm, etc. Pages 14-30: ZTV technical contract conditions. References 30+ DIN/EN/VDI norms. |
| 13 | Karlsruhe/Offerta/EC_Rev00_060-25 ... _Angebot FNZ.pdf |
PDF 13pp | DE final offer (German). Same EC template structure as Brixton offer but in German. Recipient: Johann Bunte Bauunternehmung (the GC who issued the LV). Pricing: Typ S1/S2 122 × €12,125.84 = €1,479,351; S5/S6 11 × €13,453.07 = €147,983; W1/W2 180 × €9,612.39 = €1,730,229; W3 12 × €10,875.96 = €130,511. Gesamtsumme €3,488,076.61. Brand+SKU list COMPLETELY DIFFERENT from Brixton: BERKER / WEVER / LTS / GEBERIT / IDEAL STANDARD / LAUFEN / GROHE / DORNBRACHT / HEWI / ZEHNDER / KERMI / MIRAGE / CE.SI / V&B / FERMACELL / WEDI / SAINT GOBAIN / WÜRTH / BAULMANN / AERECO / ISO HAFNER / BOS. Per-market product mapping confirmed — same product family but every SKU re-mapped per country. |
| 14 | 068-26/068-26 Rev 00 Descrittivo.xlsx |
Excel inventoried only | Foglio1 38c × 77r. Confirmed Call 3 Q3: was the capitolato example, not abandoned. Schema dimensions match Brixton's 40c × 76r within rounding — confirms canonical descrittivo template is reused. |
| 15 | 068-26/26005-CRA-XX-00-DR-A-11100.pdf |
PDF 1pp | Inventory said "40x40mm box steel frame, Juton Pilot QD grey steel primer, 12.5mm Gyproc backed duplex moisture resistant board" — confirms bathroom drawing. UK or US client. Not opened in full. |
| 16 | 068-26/D23004-EDC-ZZ-XX-SP-ME-0001.pdf |
PDF (size 363KB) | Mechanical specification, not opened. Likely the ME-engineering spec document for the mechanicals. |
| Artifact | Reason not opened |
|---|---|
| Karlsruhe LV pages 31-144 | Time bound — first 30 pages were sufficient to confirm the "100-page general capitolato chaos" thesis. |
Karlsruhe Tiziano descrittivo (060-25 Descrittivo offerta.xlsx, 41c × 104r) |
Not opened. Sheet dimensions match Brixton schema. |
| Karlsruhe split PDFs (4 files, 4pp each) | Not opened. Same structure as Brixton split (read in full). |
| Lucens (CH) descrittivo + offer + 6 splits | NOT opened. Swiss French project. Logged as gap. Call 3 Q3 confirmed this is 127-25, won. |
| Crissier (CH) descrittivo + offer + 2 splits | NOT opened. Co-living project. Logged as gap. |
| Brixton .docx versions of offer + Karlsruhe .docx | python-docx not installed; format-equivalent to the PDF versions which were read. |
All artifacts in the "Read in full" section have non-stub summaries written from direct reads. Inventoried-only artifacts are listed with explicit reason for not opening. Critical sample (Brixton end-to-end + Karlsruhe LV preamble + Karlsruhe Angebot) is sufficient to support sections 2-5.
Sent in the updated
questions-to-canta.html(Q11 added 2026-05-12).
questions-to-canta.html Q11. Awaiting his answer.questions-to-canta.html ASKS section. Awaiting his share.Honest record of where this assessment fell short.
❓ markers). Biggest gap.