#9 Business Model Canvas + Unit Economics (Osterwalder + CAC/LTV/payback + sensitivity) #9

Closed
opened 2026-05-15 19:17:49 +02:00 by claude · 1 comment
Collaborator

TL;DR (PL)

Osterwalder Business Model Canvas (9 bloków) + napkin unit economics (CAC, LTV, payback period, churn assumption, gross margin) + sensitivity table przy 50 / 100 / 175 paying users. Wave 4 parallel z #8. Pricing anchor: $7/mo annual / $9/mo monthly per morning's research.

TL;DR (EN)

Osterwalder Business Model Canvas (9 blocks) + napkin unit economics (CAC / LTV / payback / churn / gross margin) + sensitivity table at 50 / 100 / 175 paying users. Wave 4 parallel with #8. Pricing anchor: $7/mo annual / $9 monthly (validated 2026-05-15 morning research).

Scope

Osterwalder 9-block canvas:

  1. Customer segments — self-hosting non-dev operators (primary), tech-curious indie hackers (secondary)
  2. Value propositions — sovereignty + cognitive load reduction + flat pricing (per #4 Positioning)
  3. Channels — r/selfhosted, selfh.st newsletter, awesome-selfhosted, Forgejo Matrix, Mastodon, Wolfgang's Channel (per business-model-gtm research)
  4. Customer relationships — community-driven (Matrix/forums), async-first email support, no Discord-only
  5. Revenue streams — OSS free / Cloud personal $7-9/mo / Cloud team TBD Y2
  6. Key resources — pdurlej + cousin family (claude/codex/iskra/glm), Forgejo as substrate, Apache-2.0 license
  7. Key activities — discovery (continuous), policy DSL maintenance, model routing curation, OSS community moderation
  8. Key partnerships — pyfallow (separate repo dep), Forgejo project (no formal), Anthropic/OpenAI/Z.AI as LLM providers (BYOK)
  9. Cost structure — Cloud infra (~$40/mo VPS+DB+storage), USPTO filing ($200), legal review (TBD), operator time (sunk)

Unit economics napkin:

  • CAC: organic-only Y1 target (cost = operator time × hours). Estimate $0 cash CAC, "high time cost" caveat
  • LTV: $7/mo × 24 months retention assumption = $168 per user (conservative)
  • Payback period: < 1 month at $0 cash CAC
  • Churn: assume 5% monthly (self-host crowd loyal but ADHD-friendly cancellation must be smooth)
  • Gross margin: 90%+ on Cloud tier (Cloud infra is fixed cost, marginal per-user ≈ $0)

Sensitivity table:

Users $/mo ARR Net (after $40/mo infra) Break-even?
50 $7 $4.2k $-130/yr net negative on time
100 $7 $8.4k $5,520 covers infra + USPTO
175 $7 $14.7k $9,720 meaningful pdurlej income
50 $9 $5.4k $1,800 small profit
100 $9 $10.8k $8,160 bootstrap-positive
175 $9 $18.9k $13,920 sustainable

Pricing strategy (from research):

  • Anchor: $9 (Plausible Starter)
  • Recommended: $7/mo annual / $9 monthly
  • Why NOT $5: undercuts; signals hobby project
  • Why NOT $12+: enters CodeRabbit Lite territory, makes feature comparison the axis

What this artifact does NOT cover:

  • Detailed P&L (anti-roadmap, premature)
  • Investor narrative (solo bootstrap, anti-roadmap)
  • Tax/accounting structure (legal review separate)

Inputs (feedstock)

  • docs/research/2026-05-15-business-model-gtm.md — primary input (Agent D morning research)
  • PM-SHOW.md § Pricing, ARR math
  • #4 Positioning Canvas — pricing alignment with value prop
  • Osterwalder Business Model Generation
  • April Dunford pricing teardowns

Skill draft

  • Anthropic Skill: product-management:write-spec (adapted for business model)
  • Anti-prompt: "NOT a startup pitch deck financial. NOT generic SaaS unit economics. This is solo bootstrap, ADHD-aware, self-hosted-customer business. Operator time matters more than CAC. Conservative ARR projections."
  • Prime with: Agent D business-model-gtm research + Osterwalder framework + Plausible / PostHog comparable economics

Dependencies

Blocked by: #4 Positioning Canvas (pricing-value alignment), #1 Vision (long-term economic story)
Blocks: M1 milestone (without business model, package incomplete)

Cagan-grade acceptance criteria

Universal (must pass all 5):

  1. Evidence cited — every unit econ assumption links to comparable product or rationale
  2. Operator-readable <10 min — canvas + napkin + sensitivity ≤2000w
  3. Names the wrongness condition — "this model is wrong if real churn > 10% monthly OR infrastructure cost > $100/mo OR conversion rate < 0.5%"
  4. Single concrete decision — moves docs/decisions.md by adding D15: "pricing locked at $7/mo annual / $9 monthly; revisit at 100 paying users milestone"
  5. Cousin-family attribution — credits skill, Agent D research, Osterwalder framework

Tier-1 core extras:

  • One numerical anchor — breakeven user count, sensitivity table with 3+ data points
  • Visible asymmetry — names what this business model does that incumbent businesses (CodeRabbit $24/dev, Bugbot usage-based) cannot match (predictable flat pricing, no per-token surprise bills, self-host opt-out always available)

Operator decision points

This artifact gates on:

  • OD9 — Business model depth (full Osterwalder + sensitivity vs napkin + key-decisions only) — default: full

Status flow

status:cagan-grade-review-pending → operator merges → close → tick epic Wave 4 #9


Parent epic: #1 (this is artifact 9 of 11)
Plan: /Users/pd/.claude/plans/deep-pondering-popcorn.md § Wave 4

Drafted by Prof Kong (claude Opus 4.7) on behalf of pdurlej, 2026-05-15.

## TL;DR (PL) Osterwalder Business Model Canvas (9 bloków) + napkin unit economics (CAC, LTV, payback period, churn assumption, gross margin) + sensitivity table przy 50 / 100 / 175 paying users. Wave 4 parallel z #8. Pricing anchor: $7/mo annual / $9/mo monthly per morning's research. ## TL;DR (EN) Osterwalder Business Model Canvas (9 blocks) + napkin unit economics (CAC / LTV / payback / churn / gross margin) + sensitivity table at 50 / 100 / 175 paying users. Wave 4 parallel with #8. Pricing anchor: $7/mo annual / $9 monthly (validated 2026-05-15 morning research). ## Scope **Osterwalder 9-block canvas**: 1. **Customer segments** — self-hosting non-dev operators (primary), tech-curious indie hackers (secondary) 2. **Value propositions** — sovereignty + cognitive load reduction + flat pricing (per #4 Positioning) 3. **Channels** — r/selfhosted, selfh.st newsletter, awesome-selfhosted, Forgejo Matrix, Mastodon, Wolfgang's Channel (per business-model-gtm research) 4. **Customer relationships** — community-driven (Matrix/forums), async-first email support, no Discord-only 5. **Revenue streams** — OSS free / Cloud personal $7-9/mo / Cloud team TBD Y2 6. **Key resources** — pdurlej + cousin family (claude/codex/iskra/glm), Forgejo as substrate, Apache-2.0 license 7. **Key activities** — discovery (continuous), policy DSL maintenance, model routing curation, OSS community moderation 8. **Key partnerships** — pyfallow (separate repo dep), Forgejo project (no formal), Anthropic/OpenAI/Z.AI as LLM providers (BYOK) 9. **Cost structure** — Cloud infra (~$40/mo VPS+DB+storage), USPTO filing ($200), legal review (TBD), operator time (sunk) **Unit economics napkin**: - **CAC**: organic-only Y1 target (cost = operator time × hours). Estimate $0 cash CAC, "high time cost" caveat - **LTV**: $7/mo × 24 months retention assumption = $168 per user (conservative) - **Payback period**: < 1 month at $0 cash CAC - **Churn**: assume 5% monthly (self-host crowd loyal but ADHD-friendly cancellation must be smooth) - **Gross margin**: 90%+ on Cloud tier (Cloud infra is fixed cost, marginal per-user ≈ $0) **Sensitivity table**: | Users | $/mo | ARR | Net (after $40/mo infra) | Break-even? | |---|---|---|---|---| | 50 | $7 | $4.2k | $-130/yr | net negative on time | | 100 | $7 | $8.4k | $5,520 | covers infra + USPTO | | 175 | $7 | $14.7k | $9,720 | meaningful pdurlej income | | 50 | $9 | $5.4k | $1,800 | small profit | | 100 | $9 | $10.8k | $8,160 | bootstrap-positive | | 175 | $9 | $18.9k | $13,920 | sustainable | **Pricing strategy** (from research): - Anchor: $9 (Plausible Starter) - Recommended: $7/mo annual / $9 monthly - Why NOT $5: undercuts; signals hobby project - Why NOT $12+: enters CodeRabbit Lite territory, makes feature comparison the axis **What this artifact does NOT cover**: - Detailed P&L (anti-roadmap, premature) - Investor narrative (solo bootstrap, anti-roadmap) - Tax/accounting structure (legal review separate) ## Inputs (feedstock) - `docs/research/2026-05-15-business-model-gtm.md` — primary input (Agent D morning research) - `PM-SHOW.md` § Pricing, ARR math - #4 Positioning Canvas — pricing alignment with value prop - Osterwalder *Business Model Generation* - April Dunford pricing teardowns ## Skill draft - **Anthropic Skill**: `product-management:write-spec` (adapted for business model) - **Anti-prompt**: *"NOT a startup pitch deck financial. NOT generic SaaS unit economics. This is solo bootstrap, ADHD-aware, self-hosted-customer business. Operator time matters more than $$ CAC. Conservative ARR projections."* - **Prime with**: Agent D business-model-gtm research + Osterwalder framework + Plausible / PostHog comparable economics ## Dependencies Blocked by: #4 Positioning Canvas (pricing-value alignment), #1 Vision (long-term economic story) Blocks: M1 milestone (without business model, package incomplete) ## Cagan-grade acceptance criteria **Universal (must pass all 5)**: 1. **Evidence cited** — every unit econ assumption links to comparable product or rationale 2. **Operator-readable <10 min** — canvas + napkin + sensitivity ≤2000w 3. **Names the wrongness condition** — "this model is wrong if real churn > 10% monthly OR infrastructure cost > $100/mo OR conversion rate < 0.5%" 4. **Single concrete decision** — moves `docs/decisions.md` by adding D15: "pricing locked at $7/mo annual / $9 monthly; revisit at 100 paying users milestone" 5. **Cousin-family attribution** — credits skill, Agent D research, Osterwalder framework **Tier-1 core extras**: - **One numerical anchor** — breakeven user count, sensitivity table with 3+ data points - **Visible asymmetry** — names what this business model does that incumbent businesses (CodeRabbit $24/dev, Bugbot usage-based) cannot match (predictable flat pricing, no per-token surprise bills, self-host opt-out always available) ## Operator decision points This artifact gates on: - **OD9** — Business model depth (full Osterwalder + sensitivity vs napkin + key-decisions only) — default: full ## Status flow `status:cagan-grade-review-pending` → operator merges → close → tick epic Wave 4 #9 --- Parent epic: #1 (this is artifact 9 of 11) Plan: `/Users/pd/.claude/plans/deep-pondering-popcorn.md` § Wave 4 *Drafted by Prof Kong (claude Opus 4.7) on behalf of pdurlej, 2026-05-15.*
Author
Collaborator

Closed via operator voice ack 2026-05-26.

Operator highlights:

  • $7/mo lock through 100 paying users — ack
  • "Labor of love until revenue" framing — "bardzo słodkie"
  • Channels organic, anti-pattern paid acquisition — ack
  • 4. value proposition BRAKUJE"easiness / dreams-unblocked": "to że możesz spokojnie rozwijać i spełniać marzenia — Patchwarden odblokowuje, że mogę tworzyć software'owe marzenia i aplikacje bez zastanawiania się i bez bulwersowania się na programistów. To jest spełnienie marzeń."
  • Forum option — consider Codeberg (German alternative do GitHub, darmowy dla open-source) jako alternative do Matrix-only
  • Anti-segment ProDev softening: "nie że NEVER — nigdy nie nasz focus. Jak będą chcieli enterprise wersje, możemy rozmawiać, ale najpierw musimy rozmawiać."
  • Unit econ: dodać subskrypcje operatora (codex, claude, cloud, etc.) jako prawdziwy operator-cost factor
  • LTV:CAC numbers — "the numbers nie jest ważne" (relax precision)

Modifications queued in claude/patchwarden-tactical-updates PR:

    1. value prop "easiness/dreams-unblocked" dodać do bloku 2 Osterwalder
  • Anti-segment softer: "not focus" instead of "never"
  • Codeberg jako forum-hosting option w bloku 4 customer relationships
  • Operator subscriptions cost (codex/claude/cloud subs) w unit econ cost structure

D18 (pricing locked $7/$9 through 100 paying users milestone) → claude/patchwarden-decisions-batch PR.

Status: cagan-grade-approved. — claude (Patchwarden dedicated thread)

**Closed via operator voice ack 2026-05-26.** Operator highlights: - $7/mo lock through 100 paying users — ack - "Labor of love until revenue" framing — *"bardzo słodkie"* - Channels organic, anti-pattern paid acquisition — ack - **4. value proposition BRAKUJE** — **"easiness / dreams-unblocked"**: *"to że możesz spokojnie rozwijać i spełniać marzenia — Patchwarden odblokowuje, że mogę tworzyć software'owe marzenia i aplikacje bez zastanawiania się i bez bulwersowania się na programistów. To jest spełnienie marzeń."* - Forum option — consider **Codeberg** (German alternative do GitHub, darmowy dla open-source) jako alternative do Matrix-only - Anti-segment ProDev softening: *"nie że NEVER — nigdy nie nasz focus. Jak będą chcieli enterprise wersje, możemy rozmawiać, ale najpierw musimy rozmawiać."* - Unit econ: dodać subskrypcje operatora (codex, claude, cloud, etc.) jako prawdziwy operator-cost factor - LTV:CAC numbers — *"the numbers nie jest ważne"* (relax precision) **Modifications queued** in `claude/patchwarden-tactical-updates` PR: - 4. value prop "easiness/dreams-unblocked" dodać do bloku 2 Osterwalder - Anti-segment softer: "not focus" instead of "never" - Codeberg jako forum-hosting option w bloku 4 customer relationships - Operator subscriptions cost (codex/claude/cloud subs) w unit econ cost structure **D18** (pricing locked $7/$9 through 100 paying users milestone) → `claude/patchwarden-decisions-batch` PR. Status: `cagan-grade-approved`. — claude (Patchwarden dedicated thread)
Sign in to join this conversation.
No labels
agent/claude-code
agent/codex
agent/gemini
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
area:business-model
area:competitive
area:discovery
area:forgejo
area:metrics
area:product-strategy
area:v0-core
cagan-grade-approved
client:platform
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
kind:artifact
kind:decision
kind:dogfood
kind:epic
kind:implementation
kind:research
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
priority:p0
priority:p1
priority:p2
priority:p3
ready-for-agent
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:blocked-on-discovery
status:cagan-grade-review-pending
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:needs-operator-decision
status:operator-needed
status:parked
tier:0-anchor
tier:0-platform-substrate
tier:1-core
tier:1-iskra-value-layer
tier:2-supporting
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
wave:1-foundation
wave:2-positioning
wave:3-validation
wave:4-economics
wave:5-operating
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/patchwarden#9
No description provided.