Expand plan: market, competitive analysis, pricing/projections, risks, team; charset fix

This commit is contained in:
mosaic 2026-08-27 16:17:26 +00:00
parent 25ce67b48b
commit 1cfca7dba3
4 changed files with 141 additions and 6 deletions

View File

@ -1,4 +1,5 @@
<title>No-Show Killer — Executive Summary</title> <meta charset="utf-8">
<title>No-Show Killer &mdash; 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;

View File

@ -1,3 +1,4 @@
<meta charset="utf-8">
<title>No-Show Killer &mdash; Business Plan</title> <title>No-Show Killer &mdash; 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 &mdash; 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 &mdash; 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 &mdash; 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 &middot; total market</div>
<div class="v tnum">~1.5M</div>
<div class="d">Appointment-based SMBs across the US &amp; Canada &mdash; 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 &middot; serviceable</div>
<div class="v tnum">~500K</div>
<div class="d">Beachhead verticals with real waitlists and acute no-show pain: beauty &amp; wellness, dental, physio, and fitness. Roughly <b>~$600M</b>.</div>
</div>
<div class="m som">
<div class="t">SOM &middot; 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 &mdash; 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 &mdash; 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>&amp; 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">&#10007;</td><td class="n">&#10007;</td><td class="p">Rare</td><td class="us y">&#10003; Core</td></tr>
<tr><td>Predicts no-show risk (AI scoring)</td><td class="n">&#10007;</td><td class="n">&#10007;</td><td class="n">&#10007;</td><td class="us y">&#10003;</td></tr>
<tr><td>Two-way SMS, no app for clients</td><td class="p">Manual</td><td class="y">&#10003;</td><td class="p">Varies</td><td class="us y">&#10003;</td></tr>
<tr><td>Dollars-recovered ROI reporting</td><td class="n">&#10007;</td><td class="n">&#10007;</td><td class="n">&#10007;</td><td class="us y">&#10003;</td></tr>
<tr><td>Runs autonomously (no staff effort)</td><td class="n">&#10007;</td><td class="p">Partial</td><td class="p">Partial</td><td class="us y">&#10003;</td></tr>
<tr><td>Works across many verticals</td><td class="y">&#10003;</td><td class="y">&#10003;</td><td class="n">Vertical-locked</td><td class="us y">&#10003;</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 &mdash; 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 &mdash; 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 &amp; 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 &middot; location</span></h3><p>Waitlist cascade + confirmations &amp; reminders &mdash; 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 &middot; most popular</span><h3 class="price-amt">$99<span class="per">/mo &middot; 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 &mdash; 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 &amp; mitigations</span>
<p class="lead" style="margin-top:14px">The honest list &mdash; 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 &mdash; 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 &amp; 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 &mdash; the cascade engine, predictive Radar, auto-pilot, ROI dashboard, a native iOS app, compliance controls, and a deployed production system with 411 passing tests &mdash; 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">