Skip to content

docs(ltv): plan the b2b_saas_ltv_v1 LTV dataset workstream [LTV-Pa]#102

Merged
shaypal5 merged 1 commit into
mainfrom
docs/ltv-recipe-roadmap
Jun 10, 2026
Merged

docs(ltv): plan the b2b_saas_ltv_v1 LTV dataset workstream [LTV-Pa]#102
shaypal5 merged 1 commit into
mainfrom
docs/ltv-recipe-roadmap

Conversation

@shaypal5

Copy link
Copy Markdown
Contributor

Summary

Planning PR (LTV-Pa, milestone LTV-M0) for the new
customer-lifetime-value workstream. Docs only — no package code.

Adds the design (single source of truth) and a milestone/PR roadmap for
b2b_saas_ltv_v1: a post-conversion subscription-lifecycle dataset (renewals,
expansion, churn, payment failure, LTV) on the same Veridian vertical. It is a
new recipe on the existing framework via a recipe_type: lifecycle
dispatch hook in Generator.generate() — not a fork. CLI, bundle format, RNG,
exposure modes, and the validation harness are reused.

Locked design decisions (2026-06-10)

# Decision
D1 Primary task churn_within_180_days (binary); ltv_bucket_6m as secondary task in the same bundle
D2 Weekly simulation steps (granular health-signal trend curves)
D3 Independent generation for v1; chaining-from-leads designed-for-later
D4 Staggered start dates + fixed absolute observation_date (varying tenure-at-observation)
D5 Bump BUNDLE_SCHEMA_VERSION 5 → 6

D4 is load-bearing: the lifecycle path filters events by an absolute
observation_date, not the lead-scoring path's per-entity relative
snapshot_day. The customer snapshot builder is a separate function so the
lead-scoring path is untouched.

What's inside

  • docs/ltv/design.md — entities (subscription_events, health_signals,
    invoices + extended customers/subscriptions), lifecycle mechanisms
    (Weibull churn hazard w/ renewal spike, expansion propensity, payment
    failure + dunning), 5 retention motif families, the
    mrr_change_full_period leakage trap, snapshot-safety contract, framework
    change inventory, difficulty profiles.
  • docs/ltv/roadmap.md — milestones LTV-M0…M7, PRs LTV-Pa…Pn.

Planning notation

Work items use an LTV- prefix so they never collide with GitHub PR numbers:
LTV-M1…M7 (milestones) and LTV-Pa…Pn (PRs). Each merged PR records
its GitHub #NNN back into the roadmap table — the two namespaces stay
distinct.

Scope / non-goals

  • No package code changes; framework edits begin at LTV-M1.
  • The CLAUDE.md hard-constraint clause for lifecycle snapshot-safety lands
    with the recipe wiring (LTV-M5), not here.

🤖 Generated with Claude Code

Solidify the customer-lifetime-value workstream design and roadmap before
any package code lands. New recipe on the existing framework via a
recipe_type: lifecycle dispatch hook — not a fork.

- docs/ltv/design.md — single source of truth: locked decisions (D1-D5),
  new entities (subscription_events, health_signals, invoices), lifecycle
  mechanisms (churn/expansion/payment), motif families, leakage trap
  (mrr_change_full_period), absolute observation_date anchor, snapshot-safety
  contract, framework change inventory, difficulty profiles.
- docs/ltv/roadmap.md — milestones LTV-M0..M7 and PRs LTV-Pa..Pn, with a
  planning notation deliberately distinct from GitHub #NNN numbering.
- .agent-plan.md — add the LTV workstream as the next workstream pointer.
- CLAUDE.md — link the LTV design + roadmap in Reference Docs.

Locked decisions (2026-06-10): primary task churn_within_180_days; weekly
simulation steps; independent generation (chaining later); staggered start
dates + fixed absolute observation_date; bundle schema version 5 -> 6.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@shaypal5 shaypal5 added this to the dataset: leadforge-ltv-v1 milestone Jun 10, 2026
Copilot AI review requested due to automatic review settings June 10, 2026 06:57
@shaypal5 shaypal5 added type: docs Documentation or narrative changes dataset: leadforge-ltv-v1 Issue/PR scoped to the b2b_saas_ltv_v1 LTV dataset workstream labels Jun 10, 2026
@shaypal5 shaypal5 merged commit ce9a117 into main Jun 10, 2026
10 of 11 checks passed
@shaypal5 shaypal5 deleted the docs/ltv-recipe-roadmap branch June 10, 2026 06:58
@github-actions

Copy link
Copy Markdown

pr-agent-context report:

No unresolved review comments, failing checks, or actionable patch coverage gaps were found on PR #102 in repository https://github.com/leadforge-dev/leadforge. Treat this PR as all clear unless new signals appear.

Run metadata:

Tool ref: v4
Tool version: 4.0.21
Trigger: pull request opened
Workflow run: 27258992262 attempt 1
Comment timestamp: 2026-06-10T06:57:57.822338+00:00
PR head commit: 636b9226d55deeaf580a28919e8e10d53b6296ac

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Planning/documentation PR for the new b2b_saas_ltv_v1 customer lifetime value (post-conversion lifecycle) dataset workstream, establishing the design “single source of truth” plus a milestone/PR roadmap and updating project reference docs to point to them.

Changes:

  • Add LTV workstream design spec (docs/ltv/design.md) covering entities, mechanisms, snapshot-safety/leakage traps, and planned framework touchpoints.
  • Add LTV workstream roadmap (docs/ltv/roadmap.md) with milestones LTV-M0…M7 and PR breakdown LTV-Pa…Pn.
  • Reference the new LTV docs from CLAUDE.md and update .agent-plan.md to reflect the next workstream.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
docs/ltv/roadmap.md Introduces the milestone/PR execution plan for the LTV dataset workstream.
docs/ltv/design.md Defines the LTV dataset design, constraints (snapshot-safety), and intended framework changes.
CLAUDE.md Adds the LTV docs under “Reference Docs” for discoverability.
.agent-plan.md Updates the “Next Workstream” section to the LTV planning effort and links the source-of-truth docs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/ltv/roadmap.md
Comment on lines +12 to +14
- **Milestones** — `LTV-M1` … `LTV-M7`. A milestone is a coherent capability.
- **PRs** — `LTV-Pa`, `LTV-Pb`, … (sequential letters, globally unique across
the whole roadmap). Each PR maps to exactly one milestone.
Comment thread docs/ltv/roadmap.md
Comment on lines +40 to +41
Total: ~13 PRs across 8 milestones (LTV-M0 = planning). Comparable in scope to
the original M4–M9 framework build.
Comment thread .agent-plan.md
Comment on lines +23 to +25
**Roadmap (milestones/PRs):** `docs/ltv/roadmap.md` — planning notation
`LTV-M1…M7` (milestones) / `LTV-Pa…Pn` (PRs), kept distinct from GitHub `#NNN`.
**GitHub milestone:** `dataset: leadforge-ltv-v1`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dataset: leadforge-ltv-v1 Issue/PR scoped to the b2b_saas_ltv_v1 LTV dataset workstream type: docs Documentation or narrative changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants