← Choose another case study
Product revenue migration attribution · Fictional data and product names

The portfolio grew by $2M while $3.7M moved between or out of its products.

As products change within a portfolio, where did this year’s revenue come from—and where did last year’s revenue go?

Product-level reporting shows where revenue ended up. Portfolio migration analysis shows where it came from.

Prior-year portfolio
$10M
Current-year portfolio
$12M
Net portfolio growth
$2M 20%
Moved between or out of products
$2.7M cross-product migration+ $1M churn= $3.7M total movement
Authoritative revenue attribution

Most revenue stayed put. Atlas drove the largest internal moves.

Current-year revenue$12M
Remained with the same product$6.3M
Migrated between products$2.7M
New or expanded revenue$3M
Exited the portfolio$1M
Net portfolio growth$2M

Most prior revenue remained with the same product. Atlas was the largest source of internal migration. Nova generated $2.6M: $1.5M of new or expanded revenue and $1.1M transferred from existing products. $1M exited the portfolio.

Atlas to Apex: $1.2MAtlas to Nova: $600KApex to Atlas: $100KApex to Nova: $300KBase to Atlas: $300KBase to Nova: $200KNew or expanded to Atlas: $400KNew or expanded to Apex: $1MNew or expanded to Base: $100KNew or expanded to Nova: $1.5MAtlas to Churn: $400KApex to Churn: $200KBase to Churn: $400KAtlas to Atlas: $2.8MApex to Apex: $2.4MBase to Base: $1.1MAtlas$5MApex$3MBase$2MNew or expanded$3MAtlas$3.6MApex$4.6MBase$1.2MNova$2.6MChurn$1MAtlas → Apex$1.2MAtlas → Nova$600KApex → Nova$300KBase → Atlas$300KNew/expanded → Nova$1.5MTotal churn$1MPRIOR YEAR / SOURCECURRENT YEAR / DESTINATION
Flow width encodes revenue magnitude. Direct labels identify the decision-relevant movements; grouping and the exact table preserve meaning without relying on color.

Atlas $5M

Atlas$2.8MRetained
Apex$1.2MCross-product migration
Nova$600KCross-product migration
Churn$400KPortfolio churn

Apex $3M

Apex$2.4MRetained
Atlas$100KCross-product migration
Nova$300KCross-product migration
Churn$200KPortfolio churn

Base $2M

Base$1.1MRetained
Atlas$300KCross-product migration
Nova$200KCross-product migration
Churn$400KPortfolio churn

New or expanded $3M

Atlas$400KNew or expanded
Apex$1MNew or expanded
Base$100KNew or expanded
Nova$1.5MNew or expanded
Complete flow table

Every source reconciled to every destination.

Complete product revenue migration attribution in thousands of dollars
SourceAtlasApexBaseNovaChurnSource total
Atlas$2.8M$1.2M$0$600K$400K$5M
Apex$100K$2.4M$0$300K$200K$3M
Base$300K$0$1.1M$200K$400K$2M
New or expanded$400K$1M$100K$1.5M$0$3M
Destination total$3.6M$4.6M$1.2M$2.6M$1M$13M
Executive implications

Evaluate launches, portfolios, and incentives at the right level.

Launch evaluation

Separate Nova’s reported revenue from the $1.5M that entered or expanded the portfolio.

Portfolio strategy

Atlas’s decline partly reflects internal migration to Apex and Nova—not solely lost business. Base experienced both migration and genuine churn.

Sales incentives

Rewarding destination-product revenue without accounting for source-product losses can overstate commercial contribution.

Methodology and limitations

Observed migration, not causal cannibalization.

  1. Fix the account grain.Match account revenue across prior and current periods.
  2. Reconcile each source.Classify retained, migrated, churned, and new or expanded revenue.
  3. Reconcile each destination.Trace current product revenue back to its portfolio origin.
  4. Separate observation from cause.Describe movement without assuming the destination product caused it.

All data and product names are fictional. These are observed account-level revenue migrations. Causal cannibalization would require an experiment, comparison group, or appropriate quasi-experimental design. This is product revenue migration attribution—not marketing-channel or touchpoint attribution.

Your portfolio, reconciled

See what moved beneath the growth headline.

An Incremental Growth Audit can separate product performance from contribution to total portfolio growth.

Request a 20-minute data-fit conversation