From aa024703fcd92e18c0b9fccc7891083db9cdd4be Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 17 Apr 2026 11:26:32 +0000 Subject: [PATCH] Business Viability Kit: discovery-phase operating artifacts Saves the DEALIX_BUSINESS_VIABILITY_KIT.md (Weeks 4-12 customer discovery operating manual) and produces only the operational artifacts it explicitly names. Per the kit's Appendix C: no new plan documents, no Wave A-E work, no features without customer pull. Added: Customer Viability operating artifacts - docs/customer_learnings/hypotheses.yaml - 12 hypotheses tracked to SUPPORTED/FALSIFIED/AMBIGUOUS with interview-log citations - docs/customer_learnings/interviews/_template_ar.md - 45-min Arabic discovery script + post-call log schema - docs/customer_learnings/interviews/_template_en.md - English version - docs/customer_learnings/founder_dashboard.md - weekly Monday printable dashboard (kit Sec 8) - docs/customer_learnings/pricing_discovery.md - Van Westendorp PSM + value-based sanity check + A/B model matrix - docs/customer_learnings/unit_economics.md - per-customer economics, LTV/CAC ratios, 12-month scenario template - docs/customer_learnings/defensibility_scorecard.md - 5 moats x 2 questions, quarterly re-measurement Registry updates - docs/registry/TRUTH.yaml customer_validation section: hypothesis counters + discovery-interview counter + kit reference - docs/customer_learnings/README.md updated to link new artifacts Gates after change: architecture_brief.py 40/40 release_readiness_matrix 102/102 (added 8 new BVK artifact checks) v005_truth_registry_audit 19/19 SUPPORTED Agent scope going forward per kit Appendix C: customer-surfaced P0 defects, UX polish appearing in 2+ interviews, perf issues on staging, pentest remediations. No new plans. No Wave tasks. --- .../DEALIX_BUSINESS_VIABILITY_KIT.md | 214 ++++++++++++++++++ .../docs/customer_learnings/README.md | 7 + .../defensibility_scorecard.md | 107 +++++++++ .../customer_learnings/founder_dashboard.md | 101 +++++++++ .../docs/customer_learnings/hypotheses.yaml | 117 ++++++++++ .../interviews/_template_ar.md | 139 ++++++++++++ .../interviews/_template_en.md | 143 ++++++++++++ .../customer_learnings/pricing_discovery.md | 109 +++++++++ .../docs/customer_learnings/unit_economics.md | 108 +++++++++ salesflow-saas/docs/registry/TRUTH.yaml | 7 + .../scripts/release_readiness_matrix.py | 9 + .../scripts/release_readiness_report.json | 4 +- 12 files changed, 1063 insertions(+), 2 deletions(-) create mode 100644 salesflow-saas/DEALIX_BUSINESS_VIABILITY_KIT.md create mode 100644 salesflow-saas/docs/customer_learnings/defensibility_scorecard.md create mode 100644 salesflow-saas/docs/customer_learnings/founder_dashboard.md create mode 100644 salesflow-saas/docs/customer_learnings/hypotheses.yaml create mode 100644 salesflow-saas/docs/customer_learnings/interviews/_template_ar.md create mode 100644 salesflow-saas/docs/customer_learnings/interviews/_template_en.md create mode 100644 salesflow-saas/docs/customer_learnings/pricing_discovery.md create mode 100644 salesflow-saas/docs/customer_learnings/unit_economics.md diff --git a/salesflow-saas/DEALIX_BUSINESS_VIABILITY_KIT.md b/salesflow-saas/DEALIX_BUSINESS_VIABILITY_KIT.md new file mode 100644 index 00000000..525c45b7 --- /dev/null +++ b/salesflow-saas/DEALIX_BUSINESS_VIABILITY_KIT.md @@ -0,0 +1,214 @@ +# DEALIX — Business Viability Kit +**عُدّة التحقق من جدوى المشروع خلال مرحلة اكتشاف العملاء** + +> **Version**: 1.0.0 +> **Use period**: Weeks 4–12 (customer discovery phase) +> **Audience**: Founder only +> **Review cadence**: Every Friday with the Founder Execution Dashboard +> **Binding rule**: Any insight discovered via this kit amends the Truth Registry — not the other way around. +> **Next companion document**: not authored until 3 paying customers AND Phase Gate = Green. + +--- + +## 0. PRINCIPLE BEFORE TOOLS + +> **عميل واحد يدفع اليوم أصدق من عشرة خبراء يؤكدون غداً.** +> *One paying customer today is more honest than ten experts confirming tomorrow.* + +Practical rule for the next 12 weeks: +- At keyboard planning? → Ask: did I speak to 3 prospects this week? +- If no → close laptop, dial. + +--- + +## 1. THE 12 HYPOTHESES TO FALSIFY OR SUPPORT (by Week 12) + +Tracked operationally in `docs/customer_learnings/hypotheses.yaml`. Summary below. + +| ID | Claim | Falsification trigger | +|----|-------|-----------------------| +| H1 | Problem is real & painful | "Can't remember last time" from 10 CFOs/COOs | +| H2 | Pain ≥ $10K/yr willingness | Unprompted dollar values below $10K | +| H3 | Buyer reachable in ≤3 meetings | "Procurement committee + 6 months" pattern | +| H4 | Clear trigger event present | No triggers identified across 10 interviews | +| H5 | Budget ≥ $50K/yr for ContOps/RevOps tools | No comparable purchases in last 12 months | +| H6 | Arabic-first > translated English | "We stayed on English" pattern | +| H7 | PDPL/ZATCA is a sales advantage | Compliance added late in RFP, not stated | +| H8 | Paid pilot accepted over free | "Free first, pay if we like it" pattern | +| H9 | Public reference willingness post-success | Consistent refusal in pilot contracts | +| H10 | Land-and-expand viable (NRR >120%) | "No other workflows" answer in month-3 review | +| H11 | ≥10× value vs cost | Quantified value < 10× price | +| H12 | Organic referrals emerge by 6 months | Zero unprompted referrals after 3 wins | + +Rule: every hypothesis must hit SUPPORTED, FALSIFIED, or AMBIGUOUS by Week 12. + +--- + +## 2. CUSTOMER DISCOVERY INTERVIEW KIT + +### 2.1 Rules +1. Don't sell. Ask. +2. Don't describe Dealix in first 30 minutes. Discover the problem. +3. Record (with permission). Details you miss live mostly in tone. +4. Transcribe quotes verbatim. No paraphrasing. +5. Silence is a tool. Do not fill it. + +### 2.2 45-Minute Arabic Script +Operational version lives in `docs/customer_learnings/interviews/_template_ar.md`. + +### 2.3 45-Minute English Script +Operational version lives in `docs/customer_learnings/interviews/_template_en.md`. + +### 2.4 Post-Call Log +Every interview saved to `docs/customer_learnings/interviews/{company}_{YYYYMMDD}.md` using the template. No exceptions. + +--- + +## 3. PRICING DISCOVERY METHODOLOGY + +Operational worksheet: `docs/customer_learnings/pricing_discovery.md` + +Core method: **Van Westendorp Price Sensitivity** asked after 8+ interviews. + +Four questions: +1. So cheap you'd question quality? +2. Good deal / high value? +3. Starting to feel expensive? +4. Too expensive regardless of value? + +Intersections reveal Optimal Price Point, Marginal Cheapness, Marginal Expensiveness. + +Value-based sanity check: price ≤ 20% of annual value delivered. + +--- + +## 4. UNIT ECONOMICS CALCULATOR + +Operational worksheet: `docs/customer_learnings/unit_economics.md` + +Fill in AFTER 3 paying customers, not before. Key ratios: Gross Margin ≥70%, LTV/CAC ≥3×, Payback <18 months. + +--- + +## 5. STRATEGIC DEFENSIBILITY SCORECARD + +Operational worksheet: `docs/customer_learnings/defensibility_scorecard.md` + +Measure at Week 12, re-measure quarterly. Five moats × 2 questions × 0-2 points = 0-20 scale. +- 16-20: category-defining +- 10-15: strong but undefended +- 5-9: commoditizable — rethink +- 0-4: no moat — change fundamentals + +--- + +## 6. APPROVED INNOVATION VECTORS (moat-compounding) + +1. Hijri-Gregorian hybrid BI +2. Formal Arabic business language NLP +3. Evidence Graph (not flat documents) +4. Compliance-as-feature (surfaced, not hidden) +5. Board-grade Arabic AI summarization +6. Arab corporate hierarchy ABAC (OpenFGA) +7. Bilingual consistency engine +8. Relationship-aware decision context (PDPL-safe) +9. Arabic voice interface for executives +10. Proactive contradiction detection + +--- + +## 7. REJECTED INNOVATION TEMPTATIONS (focus-diluting pre-PMF) + +1. Blockchain evidence · 2. Metaverse/VR · 3. Generic AI chat · 4. Web3/SSI +5. NFT chain of custody · 6. Own foundation model · 7. Multi-modal everything +8. Consumer app · 9. Marketplace · 10. Acquisitions + +--- + +## 8. FOUNDER EXECUTION DASHBOARD + +Printable template: `docs/customer_learnings/founder_dashboard.md` +Update every Monday morning. + +--- + +## 9. PATH TO PHASE GATE (Weeks 4 → 12) + +| Weeks | Milestones | +|-------|------------| +| 4–6 | FD001–005 closed · V001–007 scaffolding executed · 10 discovery calls · 3 demos scheduled | +| 6–8 | 1–2 pilots signed · 15+ interview logs · first hypotheses update · 3 hires in interviews | +| 8–10 | 3 active pilots · first hire offer accepted · Van Westendorp analysis · pentest in progress | +| 10–12 | 30+ days active use per pilot · NPS measured · unit economics filled · defensibility scored · pentest report received | +| 12 | **Phase Gate**: Green → Wave A. Yellow → extend 60d. Red → halt, re-interview. | + +--- + +## 10. WHAT HAPPENS AFTER 3 PAYING CUSTOMERS + +Wave A begins but with **customer-driven prioritization**: +- Friction log top 10 +- Feature request registry (≥3-customer threshold) +- Weekly pilot review themes + +**Blueprint provides the spec; customers provide the sequence.** + +--- + +## APPENDIX A — Weekly Rhythm (Discovery Phase) + +| Day | Minimum founder activity | +|-----|--------------------------| +| Mon | Dashboard update. 1 customer call. | +| Tue | 1 customer call. Follow-up prep. | +| Wed | 1–2 customer calls. Interview logs. | +| Thu | 1 customer call. Demo if booked. | +| Fri AM | Hypothesis status, pipeline, metrics review. | +| Fri PM | 1 advisor/peer calibration call. | + +Minimum: 5 customer conversations per week. Below that, something is wrong. + +--- + +## APPENDIX B — Early-Warning Signs + +Over 2+ consecutive weeks any of the following trigger diagnosis: + +1. No calls booked → lead gen broken +2. Calls happen, no demos → pitch broken +3. Demos happen, no pilots → value-prop or pricing broken +4. Pilots sign, don't activate → onboarding/product broken +5. Pilots activate, don't convert → outcomes not showing +6. Pilots convert, don't refer → useful but not love-worthy + +Diagnose which; fix one at a time. + +--- + +## APPENDIX C — Coding Agent Scope During Discovery + +Coding agents MAY work on: +1. Customer-facing defects surfaced in demos (P0) +2. Small UX polish appearing in ≥2 interviews +3. Performance issues on staging +4. Security remediations from pentest + +Coding agents MUST NOT: +- Add features not pulled from customer signal +- Refactor for hypothetical future flexibility +- Start Wave A–E tasks +- Author new plan/blueprint/roadmap documents + +If an agent asks "what's next?" — answer: **wait. customer conversations are happening. prioritization comes from them.** + +--- + +## APPENDIX D — Closing Honest Note + +المؤسس الحقيقي لا يُقاس بعدد الوثائق التي يكتبها، بل بعدد المكالمات التي يجريها مع عملاء يدفعون. + +*A real founder is measured not by documents written but by paying-customer conversations held. You have produced above-average documents. The harder test begins now: 8 weeks without a new plan, content to execute and learn.* + +--- + +**End of Business Viability Kit · v1.0.0** diff --git a/salesflow-saas/docs/customer_learnings/README.md b/salesflow-saas/docs/customer_learnings/README.md index 68945bf9..f40ed748 100644 --- a/salesflow-saas/docs/customer_learnings/README.md +++ b/salesflow-saas/docs/customer_learnings/README.md @@ -13,6 +13,13 @@ | [friction_log.md](friction_log.md) | Weekly running log of every customer friction | Head of CS | | [feature_requests.yaml](feature_requests.yaml) | Structured registry of customer-requested features with 3-pilot threshold | Founder | | [weekly_review_template.md](weekly_review_template.md) | Format for the Wed customer-learnings synthesis | Founder + Head of CS | +| [hypotheses.yaml](hypotheses.yaml) | 12 viability hypotheses tracked to SUPPORTED/FALSIFIED/AMBIGUOUS | Founder | +| [interviews/_template_ar.md](interviews/_template_ar.md) | Arabic 45-min discovery call script + log | Founder | +| [interviews/_template_en.md](interviews/_template_en.md) | English 45-min discovery call script + log | Founder | +| [founder_dashboard.md](founder_dashboard.md) | Weekly Monday printable dashboard (Business Viability Kit §8) | Founder | +| [pricing_discovery.md](pricing_discovery.md) | Van Westendorp + value-based pricing worksheet | Founder | +| [unit_economics.md](unit_economics.md) | Per-customer economics (fill after 3 paying customers) | Founder | +| [defensibility_scorecard.md](defensibility_scorecard.md) | 5-moat scorecard, measured Week 12 + quarterly | Founder | ## Rules diff --git a/salesflow-saas/docs/customer_learnings/defensibility_scorecard.md b/salesflow-saas/docs/customer_learnings/defensibility_scorecard.md new file mode 100644 index 00000000..40710f20 --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/defensibility_scorecard.md @@ -0,0 +1,107 @@ +# Dealix — Strategic Defensibility Scorecard + +> First measurement at Week 12. Re-measured every quarter. +> Each question: 0–2 points. Max 20. +> Honest scoring only — be more generous with your competitors than yourself. + +--- + +## Scoring rubric (per question) + +- **0** — No evidence we have this +- **1** — Directional evidence, not yet strong +- **2** — Strong evidence (data, customer language, wins) + +--- + +## 1. Data Moat + +**Q1.1** — Do we have data competitors cannot access (e.g. Arabic formal-register corpus, PDPL evidence patterns, board-pack styles)? +Score: __ / 2 — evidence: + +**Q1.2** — Does every customer interaction make the product measurably better for the *next* customer? +Score: __ / 2 — evidence: + +**Subtotal**: __ / 4 + +--- + +## 2. Distribution Moat + +**Q2.1** — Are customers actively referring peers within 6 months of sign-up (H12 check)? +Score: __ / 2 — evidence: + +**Q2.2** — Do we have 2+ acquisition channels that competitors cannot easily copy (e.g. KSA CFO community, Arabic enterprise content depth, government procurement whitelist)? +Score: __ / 2 — evidence: + +**Subtotal**: __ / 4 + +--- + +## 3. Technical Moat + +**Q3.1** — Is there a capability that would take a competitor ≥ 6 months to replicate (durable execution + evidence graph + RLS + OTel compliance correlation stack)? +Score: __ / 2 — evidence: + +**Q3.2** — Is Arabic-first quality *measurably* better than any alternative (blind customer test, eval suite results, documented examples)? +Score: __ / 2 — evidence: + +**Subtotal**: __ / 4 + +--- + +## 4. Brand Moat + +**Q4.1** — If a customer switches away, is there emotional / identity loss ("this is *our* board room tool")? +Score: __ / 2 — evidence: + +**Q4.2** — Would customers defend Dealix unprompted in public forums or peer conversations? +Score: __ / 2 — evidence: + +**Subtotal**: __ / 4 + +--- + +## 5. Switching-Cost Moat + +**Q5.1** — Is there data / workflow / integration lock-in that is painful to migrate out of? +Score: __ / 2 — evidence: + +**Q5.2** — Do users build Dealix-specific expertise (advanced admins, workflow owners) that would be lost on churn? +Score: __ / 2 — evidence: + +**Subtotal**: __ / 4 + +--- + +## Final Score + +**Total**: __ / 20 + +### Interpretation + +| Score | Meaning | +|-------|---------| +| 16–20 | Category-defining trajectory. Compound. | +| 10–15 | Strong but not yet defensible. Invest in weakest moat. | +| 5–9 | Commoditizable. Rethink positioning or narrow scope. | +| 0–4 | No moat. Change fundamentals, or the business will be out-executed. | + +--- + +## Improvement plan (top 1 action per weakest moat) + +- Weakest moat identified: +- Single action for next quarter: +- Evidence we will accept as success: + +--- + +## History + +| Quarter | Score | Weakest moat | Top action taken | +|---------|-------|--------------|------------------| +| Q1 2026 (W12) | __ | __ | __ | +| Q2 2026 | __ | __ | __ | +| Q3 2026 | __ | __ | __ | +| Q4 2026 | __ | __ | __ | diff --git a/salesflow-saas/docs/customer_learnings/founder_dashboard.md b/salesflow-saas/docs/customer_learnings/founder_dashboard.md new file mode 100644 index 00000000..919e06a7 --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/founder_dashboard.md @@ -0,0 +1,101 @@ +# Dealix Founder Execution Dashboard + +> One page. Updated every Monday morning. Print it or pin it at top of your working doc. +> If hidden in a Notion folder you never open, it does not exist. + +--- + +## Week of: **YYYY-MM-DD** + +--- + +## ★ North Star +- **Paid pilot customers**: ___ / 3 (target Week 12) +- **Days to Phase Gate**: ___ / 84 + +--- + +## ★ Founder-only blockers +(If any overdue, nothing else on this dashboard matters) + +- [ ] FD001 Legal entity decided (due W2) +- [ ] FD002 Counsel engaged + retainer signed (due W2) +- [ ] FD003 Repo extracted to new GitHub org (due W1) +- [ ] FD004 SAIP trademark filed (due W3) +- [ ] FD005 Job specs posted (due W4) + +--- + +## ★ This week (planned Monday AM) + +| Activity | Minimum | Actual | +|----------|---------|--------| +| Customer calls scheduled | 5 | ___ | +| Customer calls completed | 5 | ___ | +| Interview logs written | = calls completed | ___ | +| Demos delivered | as booked | ___ | +| Pilots signed this week | — | ___ | + +--- + +## ★ External verification (V003 + V001) + +- Pentest vendor engaged? [ ] Y [ ] N +- Pentest report received? [ ] Y [ ] N +- Open Critical findings: ___ +- Open High findings: ___ +- V001 last run: ____-__-__ · verified findings: ___ + +--- + +## ★ Hypotheses status (of 12) + +Read `hypotheses.yaml` before filling. + +- SUPPORTED: ___ +- FALSIFIED: ___ +- AMBIGUOUS: ___ +- UNTESTED: ___ + +--- + +## ★ Hire pipeline + +| Role | Screened | Interviewed | Offer out | +|------|----------|-------------|-----------| +| Design Engineer | ___ | ___ | ___ | +| Backend Engineer | ___ | ___ | ___ | +| Head of CS | ___ | ___ | ___ | + +--- + +## ★ Red flags — mark any that are true this week + +- [ ] Zero customer calls this week +- [ ] Any FD task >7 days overdue +- [ ] Feature work shipped without customer pull +- [ ] A new plan or blueprint was written this week +- [ ] Metric claimed without evidence (baseline file, interview log, invoice) + +**Rule**: 2+ red flags = stop. Escalate to advisor before next Monday. + +--- + +## ★ Cash & runway + +- Cash on hand: ______ SAR +- Monthly burn: ______ SAR +- Months of runway: ___ +- Est. months to breakeven: ___ + +--- + +## ★ One-line narrative for the week + +Write a single sentence capturing what you learned this week from paying or nearly-paying customers. If you cannot, you did not have enough conversations. + +> + +--- + +*Next Monday: copy this page, date it, fill it again. Keep all versions — the trend line is the real signal.* diff --git a/salesflow-saas/docs/customer_learnings/hypotheses.yaml b/salesflow-saas/docs/customer_learnings/hypotheses.yaml new file mode 100644 index 00000000..cfeff575 --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/hypotheses.yaml @@ -0,0 +1,117 @@ +# 12 Business Viability Hypotheses +# +# Each hypothesis MUST reach verdict by Week 12: SUPPORTED, FALSIFIED, or AMBIGUOUS. +# Edited only after customer interactions — never from founder intuition alone. +# +# Rule: an interview log in docs/customer_learnings/interviews/ must be cited +# as evidence for every status change. + +version: 1 +kit: "DEALIX_BUSINESS_VIABILITY_KIT.md v1.0.0" +window_weeks: [4, 12] + +hypotheses: + - id: H1 + claim: "The commitment-tracking problem is real and painful for 200–2000-employee KSA firms" + falsification_trigger: "10 CFO/COO interviews answer 'can't remember' or take >60s to cite an example" + status: UNTESTED # UNTESTED | SUPPORTED | FALSIFIED | AMBIGUOUS + evidence_interviews: [] # e.g. ["acme_20260422.md"] + confidence: null # null | low | medium | high + last_update: null + + - id: H2 + claim: "Pain clears the $10K/yr willingness-to-pay threshold" + falsification_trigger: "Unprompted annual-value answers cluster below $10K across interviews" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H3 + claim: "Decision maker is reachable within 3 meetings of first call" + falsification_trigger: "'Procurement committee + 6 months' is the dominant answer" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H4 + claim: "Clear trigger event (board pressure, audit fail, reg change) drives purchase" + falsification_trigger: "No identifiable triggers across 10 interviews" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H5 + claim: "Buyer owns ≥ $50K/yr budget for ContOps / RevOps / Governance tech" + falsification_trigger: "No comparable tool purchase in last 12 months" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H6 + claim: "Saudi enterprises genuinely prefer Arabic-first over translated English SaaS" + falsification_trigger: "'We stayed on the English interface' is the pattern" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H7 + claim: "PDPL + ZATCA depth is a stated RFP criterion, not a late-added checkbox" + falsification_trigger: "'Compliance added at end' is typical" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H8 + claim: "Serious customers accept paid pilot (50% of Business tier upfront)" + falsification_trigger: "'We pay only after value proven' pattern blocks close" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H9 + claim: "Successful pilot customers will be public references (logo, testimonial, case)" + falsification_trigger: "Refusal in pilot negotiations across 3+ candidates" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H10 + claim: "Land-and-expand viable: after one workflow wins, customers want more" + falsification_trigger: "Month-3 review: 'no other workflows' dominant" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H11 + claim: "Quantified customer value ≥ 10× price" + falsification_trigger: "Ratio under 10× in 3+ pilots once measured" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + + - id: H12 + claim: "Organic referrals emerge within 6 months of first successful pilot" + falsification_trigger: "Zero unprompted referrals after 3 successful wins + 6 months" + status: UNTESTED + evidence_interviews: [] + confidence: null + last_update: null + +# Weekly rollup (auto-filled by founder Friday review) +rollup: + total: 12 + supported: 0 + falsified: 0 + ambiguous: 0 + untested: 12 + notes: "Kit issued Week 4. No interactions logged yet." diff --git a/salesflow-saas/docs/customer_learnings/interviews/_template_ar.md b/salesflow-saas/docs/customer_learnings/interviews/_template_ar.md new file mode 100644 index 00000000..93c4ceb8 --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/interviews/_template_ar.md @@ -0,0 +1,139 @@ +# مكالمة اكتشاف عميل — {اسم الشركة} + +> **النوع**: مكالمة اكتشاف (ليست عرضاً، ليست بيعاً) +> **المدة المستهدفة**: 45 دقيقة +> **القاعدة الأساسية**: اسأل. لا تبِع. لا تصف Dealix في أول 30 دقيقة. + +--- + +## معلومات المكالمة + +- **الشركة**: ________________ +- **المُحاوَر**: ________________ +- **الدور**: ________________ +- **عدد الموظفين**: ________________ +- **القطاع**: ________________ +- **المدة الفعلية**: ________________ +- **رابط التسجيل** (بإذن): ________________ +- **التاريخ**: YYYY-MM-DD + +--- + +## ١) الإطار (٥ دقائق) + +> "شكراً لوقتك. هذه محادثة استكشاف، ليست بيعاً. أبحث في كيف تُدار الالتزامات التجارية في الشركات مثل شركتكم. في نهاية المكالمة، لو لم يكن هناك تطابق، سأكون صريحاً. هل يناسبك هذا الإطار؟" + +تأكيد الإطار: [ ] نعم [ ] لا + +## ٢) الخلفية (٥ دقائق) + +- كم موظفاً في الشركة؟ +- في أي قطاع؟ +- ما دورك تحديداً؟ +- منذ متى في هذا الدور؟ + +## ٣) اكتشاف المشكلة (٢٠ دقيقة) + +### س١ — "احكِ لي عن آخر مرة ضاع فيها التزام مهم بين فرقكم أو بينكم وبين طرف خارجي." +اقتباس حرفي: +> + +### س٢ — "كيف تعرفون حالياً ما الذي وعدتم به لعملائكم/شركائكم في الـ 6 أشهر الماضية؟" +اقتباس: +> + +### س٣ — "عند تحضير اجتماع مجلس، من أين تأتي الأرقام؟ ومتى آخر مرة اكتُشِف خطأ فيها أمام المجلس؟" +اقتباس: +> + +### س٤ — "لو تخيلت يوم عمل مثالياً لك كـ [CFO/COO]، ما الذي يختلف عن اليوم الحالي؟" +اقتباس: +> + +### س٥ — "ما الأدوات/البرامج التي استخدمتَها لحل هذه المشكلة ولم تنجح؟ ولماذا؟" +الأدوات المذكورة: + +### س٦ — "لو لم تُحَل هذه المشكلة خلال 12 شهراً، ماذا يحدث؟" +اقتباس: +> + +## ٤) الاستكشاف الكمّي (١٠ دقائق) + +### س٧ — ساعات أسبوعية في التقارير التنفيذية +الإجابة: ______ ساعة/أسبوع + +### س٨ — تأخّر قرار بسبب غياب معلومة + كلفة التأخير +الإجابة: + +### س٩ — "ما القيمة السنوية العقلانية لنظام يحل 80% من هذا؟" +**القيمة غير المُحفَّزة** (بدون اقتراح منك): ______ ر.س/سنة + +### س١٠ — "من يقرر شراء نظام كهذا؟ من يمكنه تعطيل القرار؟" +متخذ القرار: ______ +الخطوات حتى التوقيع: ______ + +## ٥) الإغلاق (٥ دقائق) + +### س١١ — عرض Dealix في 15 دقيقة الأسبوع القادم؟ +[ ] نعم، وعد بموعد: __________ +[ ] لاحقاً: __________ +[ ] لا: السبب __________ + +### س١٢ — إحالات +أسماء مقترحة: __________ + +--- + +## الاستنتاجات (تُكتب خلال 24 ساعة) + +### أعلى ٥ اقتباسات +1. +2. +3. +4. +5. + +### مستوى الألم (١-١٠) +**النتيجة**: _/10 +**المبرر**: + +### Trigger Event +- [ ] موجود: __________ +- [ ] غير موجود + +### إمكانية الوصول للمشتري +- متخذ القرار: __________ +- خطوات حتى القرار: __________ + +### الاستعداد للدفع (ر.س سنوياً) +- غير مُحفَّز: __________ +- بعد وصف Dealix: __________ + +### المنافسون المذكورون +- + +### الخطوة التالية +- [ ] عرض محدد في: __________ +- [ ] متابعة في: __________ +- [ ] انسحاب: السبب __________ + +--- + +## تأثير على الفرضيات + +راجع `docs/customer_learnings/hypotheses.yaml` وحدّث فقط ما غيّره هذا الاجتماع: + +- H1 — مشكلة حقيقية ومؤلمة: SUPPORTED / FALSIFIED / AMBIGUOUS — لماذا: +- H2 — ألم ≥ $10K/yr: ... +- H3 — مشتري قابل للوصول: ... +- H4 — trigger event: ... +- H5 — ميزانية ≥ $50K: ... +- H6 — عربي مقبل > إنجليزي مترجم: ... +- H7 — PDPL/ZATCA ميزة: ... +- (ما لم تتم محادثته اتركه UNTESTED) + +--- + +## ملاحظات شخصية (للمؤسس فقط) + +> diff --git a/salesflow-saas/docs/customer_learnings/interviews/_template_en.md b/salesflow-saas/docs/customer_learnings/interviews/_template_en.md new file mode 100644 index 00000000..52862e6a --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/interviews/_template_en.md @@ -0,0 +1,143 @@ +# Customer Discovery Call — {Company} + +> **Type**: Discovery call (not a demo, not a sales pitch) +> **Target length**: 45 minutes +> **Prime directive**: Ask. Don't sell. Don't describe Dealix in the first 30 minutes. + +--- + +## Meta + +- **Company**: ________________ +- **Interviewee**: ________________ +- **Role**: ________________ +- **Headcount**: ________________ +- **Sector**: ________________ +- **Actual duration**: ________________ +- **Recording link** (with consent): ________________ +- **Date**: YYYY-MM-DD + +--- + +## 1) Frame (5 min) + +> "Thanks for the time. This is a discovery conversation, not a sales pitch. I'm researching how commercial commitments are managed in companies like yours. By the end, if there's no fit, I'll say so directly. Does that framing work?" + +Frame confirmed: [ ] Yes [ ] No + +## 2) Background (5 min) + +- Headcount? +- Sector? +- Your exact role? +- Time in role? + +## 3) Problem Discovery (20 min) + +### Q1 — "Walk me through the last time a commitment slipped between teams — or between your company and a partner." +Verbatim: +> + +### Q2 — "How do you currently know what you've committed to, 6 months back?" +Verbatim: +> + +### Q3 — "When prepping a board meeting, where do the numbers come from? When did someone last catch an error in a board pack?" +Verbatim: +> + +### Q4 — "If I could design your ideal Monday morning as [CFO/COO], what's different from today?" +Verbatim: +> + +### Q5 — "What tools have you tried that failed to solve this? Why did they fail?" +Tools cited: + +### Q6 — "If this problem isn't solved in 12 months, what happens?" +Verbatim: +> + +## 4) Quantitative Discovery (10 min) + +### Q7 — Hours/week on executive reports +Answer: ______ hrs/week + +### Q8 — Last decision delayed for missing information + cost of that delay +Answer: + +### Q9 — "If a system solved 80% of this, what's a reasonable annual value from your perspective?" +**Unprompted figure** (no anchor from you): ______ SAR/year + +### Q10 — "Who would decide to buy? Who could block it?" +Decision maker: ______ +Steps to decision: ______ + +## 5) Close (5 min) + +### Q11 — 15-minute Dealix demo next week? +[ ] Yes, scheduled: __________ +[ ] Later: __________ +[ ] No: reason __________ + +### Q12 — Referrals +Suggested names: __________ + +--- + +## Conclusions (written within 24h) + +### Top 5 verbatim quotes +1. +2. +3. +4. +5. + +### Pain level (1–10) +**Score**: _/10 +**Rationale**: + +### Trigger event +- [ ] Present: __________ +- [ ] Absent + +### Buyer accessibility +- Decision maker: __________ +- Steps to decision: __________ + +### Stated willingness to pay (SAR/yr) +- Unprompted: __________ +- After Dealix described: __________ + +### Competing alternatives mentioned +- + +### Next step +- [ ] Demo scheduled: __________ +- [ ] Follow-up: __________ +- [ ] Declined: reason __________ + +--- + +## Hypotheses impact + +Update only those affected; cite this file in `hypotheses.yaml`: + +- H1 problem real & painful: SUPPORTED / FALSIFIED / AMBIGUOUS — why: +- H2 pain ≥ $10K/yr: +- H3 buyer reachable ≤3 meetings: +- H4 clear trigger event: +- H5 ≥ $50K budget: +- H6 Arabic-first preferred: +- H7 PDPL/ZATCA a stated criterion: +- H8 paid pilot accepted: +- H9 reference-willing on success: +- H10 land-and-expand signals: +- H11 value ≥ 10× price: +- H12 organic referrals likely: + +--- + +## Founder private notes + +> diff --git a/salesflow-saas/docs/customer_learnings/pricing_discovery.md b/salesflow-saas/docs/customer_learnings/pricing_discovery.md new file mode 100644 index 00000000..e1e18b32 --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/pricing_discovery.md @@ -0,0 +1,109 @@ +# Dealix — Pricing Discovery Worksheet + +> **Never ask "what would you pay?"** — answer is biased toward zero. +> Use Van Westendorp Price Sensitivity Meter (PSM) after 8+ discovery interviews. +> Combine with value-based sanity check. + +--- + +## 1. Van Westendorp — four questions + +Asked at end of discovery call, after pain + quantitative discovery: + +1. **Too cheap**: "At what annual price would this feel so cheap you'd question its quality or seriousness?" +2. **Bargain**: "At what annual price would this be a good deal — strong value for the cost?" +3. **Getting expensive**: "At what price would this start feeling expensive, but you'd still consider if the value is there?" +4. **Too expensive**: "At what price is it simply too expensive, regardless of value?" + +Record in SAR/year, unprompted. No anchoring from you. + +--- + +## 2. Raw data table + +| # | Company | Interview date | Too cheap (SAR/yr) | Bargain | Getting expensive | Too expensive | +|---|---------|----------------|--------------------|----|-------------------|---------------| +| 1 | | | | | | | +| 2 | | | | | | | +| 3 | | | | | | | +| 4 | | | | | | | +| 5 | | | | | | | +| 6 | | | | | | | +| 7 | | | | | | | +| 8 | | | | | | | +| 9 | | | | | | | +| 10 | | | | | | | + +--- + +## 3. Intersections (fill after ≥8 data points) + +Plot cumulative curves; find intersection points. + +| Point | Definition | Value (SAR/yr) | +|-------|------------|----------------| +| Point of Marginal Cheapness | "too cheap" ∩ "getting expensive" | | +| Optimal Price Point (indifference) | "bargain" ∩ "getting expensive" | | +| Point of Marginal Expensiveness | "bargain" ∩ "too expensive" | | + +**Acceptable pricing band**: Marginal Cheapness → Marginal Expensiveness. +**Initial list price**: start at Optimal Price Point, test both sides. + +--- + +## 4. Value-based sanity check (per customer) + +For each interviewed customer, compute: + +``` +Annual value = + (hours_saved_per_week × 52 × avg_hourly_cost_of_role) + + (num_better_decisions × avg_decision_value) + + (risk_avoided_per_year) +``` + +**Rule**: price ≤ 20% of annual value; customers rarely accept above 25%. + +| Company | Hours saved/wk | Hourly cost | Better decisions/yr | Risk avoided | Annual value | Max price (25%) | +|---------|---------------|-------------|---------------------|--------------|--------------|-----------------| +| | | | | | | | +| | | | | | | | + +--- + +## 5. Pricing-model A/B experiment matrix + +After first 5 interviews, prototype and test **one model per prospect** (never three — creates indecision). + +| Model | Structure | Best when | +|-------|-----------|-----------| +| Per seat | SAR/user/month | Predictable user count, horizontal role | +| Per workflow | SAR/workflow/month + seats | Workflow count drives value | +| Platform + usage | Base SAR + SAR/approval or SAR/evidence-pack | Usage tracks with realized value | + +Track acceptance rate: + +| Model | Offered to (# prospects) | Continued to demo | Signed pilot | +|-------|---------------------------|-------------------|--------------| +| Per seat | | | | +| Per workflow | | | | +| Platform + usage | | | | + +--- + +## 6. Red flags in pricing discovery + +- All "too cheap" answers ≥ current plan price → pricing too low; room to raise. +- Large gap between "bargain" and "too expensive" across interviews → market isn't segmented yet; stratify by company size/sector. +- "Annual value" computed < 5× price → cannot justify the ROI pitch; either raise value or lower price. +- Customer names zero competing tools → category is unknown to them; education cost is your hidden CAC. + +--- + +## 7. Pricing decision log + +Every price change logged here with reason + evidence: + +| Date | Tier | Old price | New price | Reason | Evidence source | +|------|------|-----------|-----------|--------|-----------------| +| | | | | | | diff --git a/salesflow-saas/docs/customer_learnings/unit_economics.md b/salesflow-saas/docs/customer_learnings/unit_economics.md new file mode 100644 index 00000000..6765ff1b --- /dev/null +++ b/salesflow-saas/docs/customer_learnings/unit_economics.md @@ -0,0 +1,108 @@ +# Dealix — Unit Economics Worksheet + +> Fill in ONLY after 3 paying customers. Filling it earlier is fiction. +> All figures in SAR unless stated. +> Re-run at end of each month once populated. + +--- + +## 1. Per-customer monthly economics + +### Revenue +- MRR per customer (avg): ______ + +### Cost to serve (per customer / month) +| Line | Amount (SAR) | +|------|--------------| +| Infrastructure (AWS + DB + Redis) | ______ | +| LLM API (Anthropic + OpenAI + Groq, at observed usage) | ______ | +| Third-party services (Sentry, OTel backend, etc.) | ______ | +| CS time (hours × hourly cost) | ______ | +| Support time (eng on-call, tickets) | ______ | +| **Total Cost to Serve** | ______ | + +### Gross Margin +- GM per customer (SAR): ______ +- GM %: ______ % +- **Target**: GM ≥ 70% (SaaS healthy) +- **Red flag**: GM < 60% → LLM spend dominates; audit model routing. + +--- + +## 2. Customer Acquisition Cost (CAC) + +| Line | Amount (SAR) | +|------|--------------| +| Founder time spent closing (hrs × opportunity cost) | ______ | +| Marketing spend (ads, events) | ______ | +| Sales tools (CRM, LinkedIn Sales Nav, etc.) | ______ | +| Referral incentives | ______ | +| **Total CAC (amortized across paid customers)** | ______ | + +--- + +## 3. Lifetime Value (LTV) + +- Expected contract length (months, honest not aspirational): ______ +- Monthly gross margin per customer: ______ +- **LTV** = months × monthly GM = ______ + +--- + +## 4. Health ratios + +| Metric | Value | Target | Red flag | +|--------|-------|--------|----------| +| LTV / CAC | ______ | ≥ 3× | < 2× | +| CAC payback period (months) | ______ | < 18 | > 24 | +| Gross margin % | ______ | ≥ 70% | < 60% | +| Net revenue retention (12m forward) | ______ | ≥ 120% | < 100% | + +--- + +## 5. 12-month scenario (fill after M3) + +Re-forecast every month. + +| Month | New logos | Churn | MRR | Cumulative revenue | Burn | Cash position | +|-------|-----------|-------|-----|--------------------|----|-----| +| M3 (today) | ___ | 0 | ___ | ___ | ___ | ___ | +| M4 | ___ | ___ | ___ | ___ | ___ | ___ | +| M5 | ___ | ___ | ___ | ___ | ___ | ___ | +| M6 | ___ | ___ | ___ | ___ | ___ | ___ | +| M7 | ___ | ___ | ___ | ___ | ___ | ___ | +| M8 | ___ | ___ | ___ | ___ | ___ | ___ | +| M9 | ___ | ___ | ___ | ___ | ___ | ___ | +| M10 | ___ | ___ | ___ | ___ | ___ | ___ | +| M11 | ___ | ___ | ___ | ___ | ___ | ___ | +| M12 | ___ | ___ | ___ | ___ | ___ | ___ | + +--- + +## 6. Red-flag diagnostics + +If a ratio is off, diagnose in this order (cheapest fix first): + +| Symptom | First suspect | Diagnostic | +|---------|--------------|------------| +| GM < 60% | LLM spend | Review model_routing dashboard; downgrade non-reasoning calls | +| GM < 60% | Infra waste | k6 baseline says p95 vs actual load — overprovisioned? | +| CAC too high | Founder-only sales | Is anyone else closing? if not, motion is not yet repeatable | +| CAC too high | Lead mix | Cold outbound vs warm referrals ratio — shift if skewed | +| LTV/CAC < 3 | Contract length | Are pilots renewing verbally but not signing annual? Why? | +| Payback > 24 | Pricing | Van Westendorp says prices could be higher — test | +| NRR < 100 | Churn | Exit interview every churn — real reason, not stated reason | + +--- + +## 7. Evidence pointer + +Do not fill in this worksheet from memory. Sources of truth: + +- Revenue: Stripe / invoice ledger +- LLM spend: `backend/app/services/model_routing_dashboard.py` monthly export +- Infra: AWS cost explorer export +- CS/Support hours: weekly time logs +- CAC: founder calendar + marketing ledger + +Cite the source file/export in the margin when filling each row. diff --git a/salesflow-saas/docs/registry/TRUTH.yaml b/salesflow-saas/docs/registry/TRUTH.yaml index 16a87295..8b3b6d17 100644 --- a/salesflow-saas/docs/registry/TRUTH.yaml +++ b/salesflow-saas/docs/registry/TRUTH.yaml @@ -222,3 +222,10 @@ customer_validation: design_partners_signed: 0 week12_phase_gate: not_reached friction_log_entries: 0 + hypotheses_total: 12 + hypotheses_supported: 0 + hypotheses_falsified: 0 + hypotheses_ambiguous: 0 + hypotheses_untested: 12 + discovery_interviews_logged: 0 + business_viability_kit: "DEALIX_BUSINESS_VIABILITY_KIT.md" diff --git a/salesflow-saas/scripts/release_readiness_matrix.py b/salesflow-saas/scripts/release_readiness_matrix.py index 0e70eded..9e73f6f3 100644 --- a/salesflow-saas/scripts/release_readiness_matrix.py +++ b/salesflow-saas/scripts/release_readiness_matrix.py @@ -126,6 +126,15 @@ CHECKS = { "friction_log": ROOT / "docs" / "customer_learnings" / "friction_log.md", "feature_requests_registry": ROOT / "docs" / "customer_learnings" / "feature_requests.yaml", "weekly_review_template": ROOT / "docs" / "customer_learnings" / "weekly_review_template.md", + # Business Viability Kit — discovery-phase operating artifacts + "business_viability_kit": ROOT / "DEALIX_BUSINESS_VIABILITY_KIT.md", + "hypotheses_tracker": ROOT / "docs" / "customer_learnings" / "hypotheses.yaml", + "interview_template_ar": ROOT / "docs" / "customer_learnings" / "interviews" / "_template_ar.md", + "interview_template_en": ROOT / "docs" / "customer_learnings" / "interviews" / "_template_en.md", + "founder_dashboard": ROOT / "docs" / "customer_learnings" / "founder_dashboard.md", + "pricing_discovery": ROOT / "docs" / "customer_learnings" / "pricing_discovery.md", + "unit_economics": ROOT / "docs" / "customer_learnings" / "unit_economics.md", + "defensibility_scorecard": ROOT / "docs" / "customer_learnings" / "defensibility_scorecard.md", } CONTENT_CHECKS = { diff --git a/salesflow-saas/scripts/release_readiness_report.json b/salesflow-saas/scripts/release_readiness_report.json index e2039a40..1c0b72e2 100644 --- a/salesflow-saas/scripts/release_readiness_report.json +++ b/salesflow-saas/scripts/release_readiness_report.json @@ -1,6 +1,6 @@ { - "total": 94, - "passed": 94, + "total": 102, + "passed": 102, "score": 100.0, "ready": true } \ No newline at end of file