Practitionist / Practitionist/elluminar_web
Income-share / success-fee option — fair terms designed FIRST
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 17h 2m
- Merged PRs (30d)
- 18
Description
Why / Context
PRD §8.6: an optional deferred, pay-after-placement option on the Career tier's Flagship bundle lowers the barrier to the most expensive offering — validated by Crio's ₹19,999/₹39,999 success-fee model. Sequencing mandate from the teardown (§7): "build the fair refund/guarantee design before you build any placement guarantee at all" — Crio's contested terms are their biggest trust liability; ours must be short, clear, and Euron-style unambiguous. Fair-guarantee design is itself an acquisition message (teardown §5.3: "the fair alternative").
Schema already in place — additive-only later if needed
Payment(provider: MANUAL)records success-fee collections;Order.metadataholds agreement refs- Career tier entitlements (
placementSupport) + FeatureFlags gate availability - A future
PaymentAgreementtable (terms, trigger conditions, status) was pre-authorized as a safe ADDITIVE table in the plan's gap review — add only when this ships
Implementation plan
- Terms design first (product+legal): success-fee trigger (placed within N months at ≥ X CTC via platform-attributable channels), fee bands, hardship exits, cooling-off, plain-language one-pager — reviewed against every complaint pattern documented in the teardown (§2.4/2.5).
- Decision gate: founder sign-off on terms BEFORE any engineering (this issue stalls here by design).
- Additive
PaymentAgreementtable (kind SUCCESS_FEE, userId, orderItemId?, termsVersion, triggerConditions Json, status DRAFT/ACTIVE/TRIGGERED/SETTLED/WAIVED/CANCELLED, dueMinor) + agreement PDF snapshot. - Checkout option on eligible bundles: "defer ₹X — pay only on placement" → agreement acceptance flow (explicit, versioned, emailed copy).
- Placement attestation flow: learner self-report + hiring-partner confirmation path (ties to issue #18); dispute path documented.
- Collection: on TRIGGERED, invoice + Razorpay payment link; hardship/waiver workflow with audit.
- Marketing surfaces: guarantee page with the full terms visible (no admission-letter burial — the anti-Crio stance), comparison honesty in battlecards (issue #28).
- Metrics: uptake, trigger rate, waiver rate, NPS of participants — evaluate before scaling.
Acceptance criteria
- Terms doc approved by counsel + founder, published verbatim on a public page
- Deferred option appears only on configured bundles behind a flag; acceptance is explicit and versioned
- TRIGGERED → payment link → settlement recorded; WAIVED path works with audit trail
- Cancellation/cooling-off honored automatically within its window
- Zero dark patterns: learner can view their agreement + status anytime
Dependencies / sequencing
- Career tier live (MVP M8); issue #18 helps verification; issue #24 legal groundwork
- HARD GATE: fair-terms sign-off precedes all build work
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the fair-terms design and obtain counsel and founder sign-off before engineering. Then inspect the existing Payment records, Order.metadata, Career-tier placementSupport entitlements, and FeatureFlags before implementing the deferred-option flow. Done means approved public terms, explicit versioned acceptance, audited settlement and waiver paths, cooling-off handling, and learner-visible agreement status.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- payments
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100