Expand plan: market, competitive analysis, pricing/projections, risks, team; charset fix
This commit is contained in:
parent
25ce67b48b
commit
1cfca7dba3
Binary file not shown.
|
|
@ -1,4 +1,5 @@
|
||||||
<title>No-Show Killer — Executive Summary</title>
|
<meta charset="utf-8">
|
||||||
|
<title>No-Show Killer — Executive Summary</title>
|
||||||
<style>
|
<style>
|
||||||
:root{
|
:root{
|
||||||
--ink:#0B1210; --surface:#111A16; --card:#15211C; --card-2:#18271F;
|
--ink:#0B1210; --surface:#111A16; --card:#15211C; --card-2:#18271F;
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,3 +1,4 @@
|
||||||
|
<meta charset="utf-8">
|
||||||
<title>No-Show Killer — Business Plan</title>
|
<title>No-Show Killer — Business Plan</title>
|
||||||
<style>
|
<style>
|
||||||
:root{
|
:root{
|
||||||
|
|
@ -81,6 +82,28 @@
|
||||||
.pill.warn{color:var(--gold)} .pill.warn .dot{background:var(--gold)}
|
.pill.warn{color:var(--gold)} .pill.warn .dot{background:var(--gold)}
|
||||||
a.pill.pdflink{text-decoration:none; color:var(--emerald); border-color:color-mix(in srgb,var(--emerald) 40%,var(--line-strong)); transition:background .15s}
|
a.pill.pdflink{text-decoration:none; color:var(--emerald); border-color:color-mix(in srgb,var(--emerald) 40%,var(--line-strong)); transition:background .15s}
|
||||||
a.pill.pdflink:hover{background:color-mix(in srgb,var(--emerald) 12%,transparent)}
|
a.pill.pdflink:hover{background:color-mix(in srgb,var(--emerald) 12%,transparent)}
|
||||||
|
|
||||||
|
/* market TAM/SAM/SOM */
|
||||||
|
.mkt{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px}
|
||||||
|
@media(max-width:720px){ .mkt{grid-template-columns:1fr} }
|
||||||
|
.mkt .m{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:24px; box-shadow:var(--shadow)}
|
||||||
|
.mkt .m .t{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--emerald)}
|
||||||
|
.mkt .m.sam .t{color:var(--gold)} .mkt .m.som .t{color:var(--coral)}
|
||||||
|
.mkt .m .v{font-family:var(--serif); font-weight:700; font-size:clamp(30px,4.4vw,40px); letter-spacing:-.02em; margin:10px 0 6px}
|
||||||
|
.mkt .m .d{color:var(--muted); font-size:14px; line-height:1.5} .mkt .m .d b{color:var(--text); font-weight:600}
|
||||||
|
|
||||||
|
/* comparison table */
|
||||||
|
.tblwrap{overflow-x:auto; margin-top:30px; border:1px solid var(--line); border-radius:14px; -webkit-overflow-scrolling:touch}
|
||||||
|
.tbl{width:100%; border-collapse:collapse; font-size:14px; min-width:660px}
|
||||||
|
.tbl th,.tbl td{padding:13px 16px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top}
|
||||||
|
.tbl thead th{font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--faint); font-weight:600; background:var(--card-2); line-height:1.35}
|
||||||
|
.tbl tbody tr:last-child td{border-bottom:none}
|
||||||
|
.tbl td:first-child,.tbl th:first-child{color:var(--text); font-weight:600; min-width:220px}
|
||||||
|
.tbl .us{background:color-mix(in srgb,var(--emerald) 9%,transparent)}
|
||||||
|
.tbl thead th.us{color:var(--emerald); background:color-mix(in srgb,var(--emerald) 15%,transparent)}
|
||||||
|
.tbl .y{color:var(--emerald); font-weight:600} .tbl .n{color:var(--faint)} .tbl .p{color:var(--gold)}
|
||||||
|
.illus-note{margin-top:16px; font-family:var(--mono); font-size:12px; color:var(--faint); letter-spacing:.02em}
|
||||||
|
.price-amt{font-family:var(--serif)} .price-amt .per{font-size:15px; color:var(--faint); font-weight:400; font-family:var(--sans)}
|
||||||
@media(max-width:720px){ .ribbon .status .pill.hideSm{display:none} }
|
@media(max-width:720px){ .ribbon .status .pill.hideSm{display:none} }
|
||||||
|
|
||||||
/* hero */
|
/* hero */
|
||||||
|
|
@ -247,7 +270,7 @@
|
||||||
.reveal.in{opacity:1; transform:none}
|
.reveal.in{opacity:1; transform:none}
|
||||||
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none} }
|
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none} }
|
||||||
|
|
||||||
/* print / PDF — clean light paper, nothing clipped */
|
/* print / PDF — clean light paper, nothing clipped */
|
||||||
@media print{
|
@media print{
|
||||||
:root{
|
:root{
|
||||||
--ink:#FFFFFF; --surface:#FFFFFF; --card:#FFFFFF; --card-2:#F6FAF7;
|
--ink:#FFFFFF; --surface:#FFFFFF; --card:#FFFFFF; --card-2:#F6FAF7;
|
||||||
|
|
@ -272,8 +295,8 @@
|
||||||
.bigmoney{ font-size:46px }
|
.bigmoney{ font-size:46px }
|
||||||
.device{ box-shadow:none }
|
.device{ box-shadow:none }
|
||||||
.capgroup{ margin-top:18px }
|
.capgroup{ margin-top:18px }
|
||||||
/* keep only atomic blocks intact across page breaks — not whole sections */
|
/* keep only atomic blocks intact across page breaks — not whole sections */
|
||||||
.card,.step,.cap,.tam,.phase,.statband,.device,.econ .panel,.metrics,.callout,.heroStat,.roihead,.chart{
|
.card,.step,.cap,.tam,.phase,.statband,.device,.econ .panel,.metrics,.callout,.heroStat,.roihead,.chart,.mkt .m,.tblwrap{
|
||||||
break-inside:avoid; page-break-inside:avoid }
|
break-inside:avoid; page-break-inside:avoid }
|
||||||
h1,h2,h3,.lead,.eyebrow,.panelttl,.kicker{ break-after:avoid }
|
h1,h2,h3,.lead,.eyebrow,.panelttl,.kicker{ break-after:avoid }
|
||||||
.foot{ border-top:1px solid var(--line) }
|
.foot{ border-top:1px solid var(--line) }
|
||||||
|
|
@ -286,8 +309,9 @@
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<a href="#problem">Problem</a>
|
<a href="#problem">Problem</a>
|
||||||
<a href="#product">Product</a>
|
<a href="#product">Product</a>
|
||||||
<a href="#status">Status</a>
|
<a href="#market">Market</a>
|
||||||
<a href="#business">Business</a>
|
<a href="#competition">Competition</a>
|
||||||
|
<a href="#business">Model</a>
|
||||||
<a href="#ask">Plan</a>
|
<a href="#ask">Plan</a>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="status">
|
<div class="status">
|
||||||
|
|
@ -466,6 +490,68 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<!-- MARKET -->
|
||||||
|
<section id="market">
|
||||||
|
<div class="wrap">
|
||||||
|
<span class="eyebrow gold">Market</span>
|
||||||
|
<p class="lead" style="margin-top:14px">A large, fragmented market that feels this pain every single day.</p>
|
||||||
|
<p class="sub">Every business that sells time in bookable slots loses money to no-shows — and almost none of them run software that actively recovers it. That gap is the opportunity.</p>
|
||||||
|
<div class="mkt">
|
||||||
|
<div class="m">
|
||||||
|
<div class="t">TAM · total market</div>
|
||||||
|
<div class="v tnum">~1.5M</div>
|
||||||
|
<div class="d">Appointment-based SMBs across the US & Canada — salons, clinics, studios, restaurants, and more. At ~$1,200/yr each, a <b>~$1.8B</b> opportunity.</div>
|
||||||
|
</div>
|
||||||
|
<div class="m sam">
|
||||||
|
<div class="t">SAM · serviceable</div>
|
||||||
|
<div class="v tnum">~500K</div>
|
||||||
|
<div class="d">Beachhead verticals with real waitlists and acute no-show pain: beauty & wellness, dental, physio, and fitness. Roughly <b>~$600M</b>.</div>
|
||||||
|
</div>
|
||||||
|
<div class="m som">
|
||||||
|
<div class="t">SOM · 3-yr reachable</div>
|
||||||
|
<div class="v tnum">~3,000</div>
|
||||||
|
<div class="d">A focused wedge of locations won one vertical at a time — an illustrative path to <b>~$3.6M ARR</b>.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="illus-note">Market sizes are illustrative planning assumptions, not audited figures.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- COMPETITION -->
|
||||||
|
<section id="competition">
|
||||||
|
<div class="wrap">
|
||||||
|
<span class="eyebrow">Competitive analysis</span>
|
||||||
|
<p class="lead" style="margin-top:14px">Everyone reminds. Almost no one refills.</p>
|
||||||
|
<p class="sub">The category is crowded with reminder tools — but a reminder only reduces no-shows. When a chair empties anyway, those tools leave the owner to chase it by hand. No-Show Killer is built to close that gap autonomously, and to prove the dollars it recovers.</p>
|
||||||
|
<div class="tblwrap">
|
||||||
|
<table class="tbl">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Capability</th>
|
||||||
|
<th>Front desk<br>& paper list</th>
|
||||||
|
<th>Generic reminder<br>apps</th>
|
||||||
|
<th>Booking / PMS<br>built-ins</th>
|
||||||
|
<th class="us">No-Show Killer</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>Auto-refills a cancelled slot (cascade)</td><td class="n">✗</td><td class="n">✗</td><td class="p">Rare</td><td class="us y">✓ Core</td></tr>
|
||||||
|
<tr><td>Predicts no-show risk (AI scoring)</td><td class="n">✗</td><td class="n">✗</td><td class="n">✗</td><td class="us y">✓</td></tr>
|
||||||
|
<tr><td>Two-way SMS, no app for clients</td><td class="p">Manual</td><td class="y">✓</td><td class="p">Varies</td><td class="us y">✓</td></tr>
|
||||||
|
<tr><td>Dollars-recovered ROI reporting</td><td class="n">✗</td><td class="n">✗</td><td class="n">✗</td><td class="us y">✓</td></tr>
|
||||||
|
<tr><td>Runs autonomously (no staff effort)</td><td class="n">✗</td><td class="p">Partial</td><td class="p">Partial</td><td class="us y">✓</td></tr>
|
||||||
|
<tr><td>Works across many verticals</td><td class="y">✓</td><td class="y">✓</td><td class="n">Vertical-locked</td><td class="us y">✓</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="grid g3" style="margin-top:24px">
|
||||||
|
<div class="card"><span class="tag">Our moat</span><h3>The recovery loop</h3><p>An autonomous cascade plus predictive scoring is materially harder to build than reminders — and it's the exact part that makes the owner money. Hard to copy, easy to feel.</p></div>
|
||||||
|
<div class="card"><span class="tag gold">Positioning</span><h3>ROI, not admin</h3><p>We sell recovered revenue, not another dashboard to babysit. That reframes the purchase from a cost line to a profit lever.</p></div>
|
||||||
|
<div class="card"><span class="tag">Wedge</span><h3>Horizontal by design</h3><p>Vertical incumbents are locked to one market. One engine lets us expand across verticals without a rebuild — and undercut point tools on breadth.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<!-- WHERE WE ARE -->
|
<!-- WHERE WE ARE -->
|
||||||
<section id="status">
|
<section id="status">
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
|
|
@ -532,6 +618,54 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<!-- PRICING & PROJECTIONS -->
|
||||||
|
<section id="model">
|
||||||
|
<div class="wrap">
|
||||||
|
<span class="eyebrow gold">Pricing & projections</span>
|
||||||
|
<p class="lead" style="margin-top:14px">Simple per-location pricing that a single recovered chair already covers.</p>
|
||||||
|
<div class="grid g3" style="margin-top:28px">
|
||||||
|
<div class="card"><span class="tag">Starter</span><h3 class="price-amt">$49<span class="per">/mo · location</span></h3><p>Waitlist cascade + confirmations & reminders — everything needed to start recovering chairs from day one.</p></div>
|
||||||
|
<div class="card" style="border-color:var(--emerald); box-shadow:0 0 0 1px var(--emerald) inset, var(--shadow)"><span class="tag">Pro · most popular</span><h3 class="price-amt">$99<span class="per">/mo · location</span></h3><p>Adds No-Show Radar, auto-pilot, the ROI dashboard, morning brief, and Google Calendar sync.</p></div>
|
||||||
|
<div class="card"><span class="tag gold">Multi-location</span><h3 class="price-amt">Custom</h3><p>Volume pricing, roles, and rollout support for chains and franchise groups.</p></div>
|
||||||
|
</div>
|
||||||
|
<div class="tblwrap">
|
||||||
|
<table class="tbl">
|
||||||
|
<thead><tr><th>Illustrative trajectory</th><th>Year 1</th><th>Year 2</th><th class="us">Year 3</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>Active locations</td><td class="tnum">150</td><td class="tnum">900</td><td class="us tnum">3,000</td></tr>
|
||||||
|
<tr><td>Avg revenue / location / yr</td><td class="tnum">~$1,000</td><td class="tnum">~$1,150</td><td class="us tnum">~$1,200</td></tr>
|
||||||
|
<tr><td>ARR</td><td class="tnum">~$150K</td><td class="tnum">~$1.0M</td><td class="us y tnum">~$3.6M</td></tr>
|
||||||
|
<tr><td>Cost to serve</td><td>Low</td><td>Low</td><td class="us">Low — usage-scaled SMS + hosting</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p class="illus-note">Pricing and multi-year figures are illustrative planning assumptions; actuals depend on the design-partner phase.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- RISKS -->
|
||||||
|
<section id="risks">
|
||||||
|
<div class="wrap">
|
||||||
|
<span class="eyebrow">Risks & mitigations</span>
|
||||||
|
<p class="lead" style="margin-top:14px">The honest list — and what's already handled.</p>
|
||||||
|
<div class="grid g2" style="margin-top:28px">
|
||||||
|
<div class="card"><span class="tag gold">Deliverability</span><h3>Carrier filtering (A2P)</h3><p>Unregistered SMS gets filtered at scale. <b style="color:var(--text)">Mitigation:</b> A2P 10DLC brand/campaign + Messaging Service — the code already prefers it; registration is the active pre-launch step.</p></div>
|
||||||
|
<div class="card"><span class="tag gold">Adoption</span><h3>Onboarding friction</h3><p>SMBs won't do heavy setup. <b style="color:var(--text)">Mitigation:</b> AI document import, self-serve setup wizard, calendar sync, and hands-on design-partner onboarding.</p></div>
|
||||||
|
<div class="card"><span class="tag gold">Competition</span><h3>Incumbents add cascade</h3><p>Reminder tools could copy it. <b style="color:var(--text)">Mitigation:</b> the autonomous recovery loop + ROI framing is a real build lead; move fast on real customer proof.</p></div>
|
||||||
|
<div class="card"><span class="tag gold">Unit cost</span><h3>SMS margin</h3><p>Per-message cost eats margin if unmanaged. <b style="color:var(--text)">Mitigation:</b> usage-scaled pricing, daily caps, and consent/quiet-hours gating already shipped.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- TEAM -->
|
||||||
|
<section id="team">
|
||||||
|
<div class="wrap">
|
||||||
|
<span class="eyebrow gold">Team & execution</span>
|
||||||
|
<p class="lead" style="margin-top:14px">A lean build that has already shipped what most plans only promise.</p>
|
||||||
|
<p class="sub">The entire platform — the cascade engine, predictive Radar, auto-pilot, ROI dashboard, a native iOS app, compliance controls, and a deployed production system with 411 passing tests — is already built and live. Execution risk, the thing that sinks most early plans, is largely retired: the question isn't "can it be built?" but "how fast can we put it in front of customers?" The next investment attaches to go-to-market and customer success, not to proving the product works.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<!-- THE ASK -->
|
<!-- THE ASK -->
|
||||||
<section id="ask">
|
<section id="ask">
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue