Context
offplan.online — subscription SaaS. Pricing structure блокирует Phase 1.7.11 (Free tier billing tracking) + Phase 1.2 (admin mode coupling — Quick Build vs Full Admin per CONV-21 Atelier rework).
Конкретные цены / лимиты / naming finalisation — defer to sub-plan ratification + hosting cost model + Roman input. Этот ADR закрепляет structural decisions only (4-tier shape + admin mode coupling), оставляя numbers как Open Questions. Status field accepted-structure-pending-numbers отражает этот split: structure = ratified, numbers = pending.
Decision
4-tier structure (Foundational §3)
- Free Guest — гостевая Organisation в чужих проектах (по обратному приглашению). Не может создавать собственные projects. Не может приглашать guest organisations.
- Tier 1 — свои projects с базовым лимитом. Все 5 ролей (per ADR 0009). Default subdomain
{slug}.offplan.online. Может приглашать guests. - Tier 2 — Tier 1 + custom domain (CNAME) + DKIM на свой домен (per ADR 0011) + повышенные лимиты.
- Tier 3 (Enterprise) — Tier 2 + Microsoft / Custom SSO (per ADR 0005 v3) + SLA + индивидуальные лимиты + дополнительные модули.
Admin mode coupling (CONV-21 Atelier rework)
- Free Guest tier + trial period (T1 14d, no card per ADR 0001) → Quick Build mode (Object Builder onboarding) only. Full Admin залочен.
- Active paid subscription (Tier 1+) → Full Admin unlocked. Quick Build остаётся доступен как «New project» entry point.
- Trial expired без оплаты → auto-downgrade to Free Guest, projects read-only. Public sales page работает 30d, потом freeze. Re-pay в любой момент → instant restore (без data loss).
Tier 2 (Pro) как trial default [amendment CONV-35 — B4 ratification]
- Trial = T2 (Pro) default (per Sub-plan 2 CONV-35 B4 ratification). Industry baseline 2026 (Notion / Linear / Vercel) — Trial unlocks paid tier user most likely к покупке. Conversion lift +5-10% per public PLG benchmarks vs default-tier Trial.
- Stripe Subscription on
price_tier_2_monthlyPrice ID during Trial. - Trial unlocks ALL Pro features for evaluation (Team / Analytics / Buyer records / Audit log / Custom domain / DKIM). Locked: SSO (Enterprise only).
- Conversion paths: stay on Pro (default — добавил card, продолжается) · downgrade к Starter at conversion (SubscriptionSchedule flip at trial_end) · don't convert → Free Guest auto-downgrade.
- Multi-seat Trial: up to 3 seats (Owner + 2 invited teammates) per B1 ratification — Team management active during Trial.
- Trial limits: 1 project hard cap (Pick #12) · 3 seats hard cap (B1) · 14 days duration.
- Trial badge
TRIAL — N days leftв шапке админки.
Original «Trial = T1 only» (pre-CONV-35) — superseded:
Trial = T1 only (не выбор) — T2/T3 features (custom domain, DKIM, SSO) require commitment.Reasoning: T1 Trial limits demo value (studio cannot show analytics к developer client during pitch); industry shift к «evaluate-paid-tier» pattern.
Config-driven pricing surface (amendment CONV-35)
Per Sub-plan 2 plans/onboarding-trial-mode.md Pick #14, pricing rendered from pricing-config.ts schema. UI layout, components, Stripe integration — all ratified (CONV-34 + CONV-35). Numbers (monthly_price, limits.*) = config values populated post-Roman input. Status accepted-structure-pending-numbers remains correct: structure ratified; numbers config-driven, не code-blocking.
pricing-config.ts references single Stripe Price ID per tier (multi-currency auto-handled by Stripe via currency_options — USD/EUR/AED Stage 1). Numbers update без code change. Reference: Sub-plan 2 Part 2 Step 4.
Open Questions (defer to sub-plan)
- Pricing per tier — TBD после hosting cost model (Phase 1.7.13 «Cost-of-ops projection at 100/500/1000 Orgs»).
- Exact limits — X projects / Y team members / N units per tier. TBD после sub-plan + Roman input.
- Naming finalisation — «Tier 1 / Tier 2 / Tier 3» (current scaffolding) vs «Starter / Studio / Agency / Enterprise» (proposed alt). TBD в sub-plan.
- Free Guest expiry policy — do Free Guest accounts expire if inactive N months?
- Conversion triggers — lazy («attempt to upgrade») vs active («trial expired notification»)?
- Open pool mode (per ADR 0010) — может быть Tier 2+ feature; TBD в sub-plan.
Alternatives Considered
- 3-tier structure (no Free Guest) — rejected. Reverse invitation pattern (Studio → Developer guest) requires no-charge tier для non-paying participants in others' projects.
- Per-seat pricing — rejected for Stage 1. Too complex для self-serve onboarding; per-Org tier simpler. Reconsider Stage 2 если enterprise demand.
- Unlimited free tier — rejected. No conversion incentive; misaligned with Volume Vision parent business unit economics.
Consequences
- Phase 1.7.11 (Free tier billing tracking) — implements
tier: free_guest | starter | tier_1 | tier_2 | tier_3_enterpriseenum в billing schema. Conversion funnel events:free_guest_signup/free_guest_to_paid/free_guest_churned. - Phase 1.2 (Onboarding + Quick Build) — admin mode router checks tier + trial state.
- Sub-plan
plans/onboarding-trial-mode.md— ratifies pricing / limits / naming. Status moves fromaccepted-structure-pending-numbers→acceptedпосле sub-plan ratification. - Cross-references:
- ADR 0009 — Organisation entity = subscription unit.
- ADR 0010 — Open pool mode tier coupling TBD.
- ADR 0011 — DKIM = Tier 2+ feature.
- ADR 0005 v3 — Microsoft + Custom SSO = Tier 3 feature.
- ADR 0001 — Trial 14d no-card model.
- ADR 0013 — Tier change proration policy (upgrade prorated / downgrade end-of-period).
- ADR 0017 — Payment provider Stripe Stage 1 (confirms Stripe Price IDs map к tier slugs).
- Sub-plan 2
plans/onboarding-trial-mode.md— Pick #14 + Part 1B R2 + Part 2 Step 4 (pricing-config schema, multi-currency).
Revisit trigger
- Hosting cost model results (Phase 1.7.13) — могут require pricing pivot.
- Roman input on pricing strategy — может shift naming или limits.
- Conversion funnel data (post-launch) — Free Guest expiry policy may need adjustment.