A source of revenue
A revenue stream is a named source of cash a business earns from a customer segment in exchange for value delivered. It names the mechanism, not the amount: subscriptionSubscriptionSales & RevenueA recurring subscriptionView reference →, transaction fee, licence, advertising, marketplace take rate. A single product often runs several streams at once, and the interesting work is keeping them distinct, because each one has its own economics, its own churn behaviour, and its own reason to grow or die.
Revenue stream entered the standard vocabulary as one of the nine blocks of the Business Model Canvas, formalised by Alexander Osterwalder and Yves Pigneur in Business ModelBusiness ModelBusiness ModelThe business model canvas or definitionView reference → Generation (2010). Osterwalder split revenue into two kinds: transaction revenue from one-off payments, and recurring revenue from ongoing relationships. He also separated the pricing mechanism (fixed list price versus dynamic pricing such as auctions or yield management) from the stream itself.
The recurring half came to dominate software thinking. As subscription businesses scaled, the discipline of SaaS metrics (codified in David Skok's widely cited writing) reframed a recurring revenue stream as a compounding asset measured by MRR and ARR rather than a series of sales. That shift changed what teams optimise: retention and expansion of an existing stream often beat chasing new logos.
The freemium model added another wrinkle. The term was coined in 2006 after venture capitalist Fred Wilson described the model and Jarid Lukin suggested the name. Freemium turns a free tier into the top of a funnelFunnelGrowthA conversion funnel tracking user progressionView reference → feeding a paid stream, which means the stream's health now depends on conversion economics, not just price.
A design tool runs two streams. Stream one is a 12 GBP per month individual subscription. Stream two is a per-seat team plan at 9 GBP per seat with a five-seat minimum. They look similar on an invoiceInvoiceSales & RevenueAn invoice for billingView reference → and behave nothing alike. The individual stream churns at 6 percent monthly as freelancers come and go. The team stream churns at 1.5 percent because switching costSwitching CostUserA barrier preventing users from switching alternativesView reference → rises with every seat added.
Treating them as one blurred number hides this. Split into two streams, the team plan is clearly the durable asset, and the roadmapRoadmapProduct SpecificationA strategic plan of features and milestonesView reference → argument resolves toward featuresFeatureProduct SpecificationA product capability or featureView reference → that add seats. The individual plan keeps earning, and it also keeps feeding the team plan as solo users bring the tool into a new jobJobUserJob To Be Done: what the user is trying to accomplishView reference →. The streams are separate lines precisely so the team can reason about each one's growth and decay on its own terms.
In the Unified Product Graph, Revenue StreamBusiness ModelA source of revenue sits in the Business, GTM and Growth region as a container under the business model, linked by revenue_streamBusiness Modelearns viaRevenue Streamhierarchy. Tiers attach below it via business_model_earns_via_revenue_streamRevenue Streamtiered asPricing Tierhierarchy, and the stream connects to its pricing logic through revenue_stream_tiered_as_pricing_tierRevenue Streampriced byPricing Strategycross-domain. Crucially it exports a revenue_stream_priced_by_pricing_strategyRevenue StreamdrivesMetriccross-domain edge into the Analytics region, so a stream is wired to the live numbers (MRR, ARR) that prove whether it is compounding or leaking. The graph keeps streams as separate nodes for the same reason a good operator does: so each can be measured and reasoned about by itself.revenue_stream_drives_metric
Type-specific fields on BaseNode
stream_typestringHow revenue is generated
recurring_revenuenumberMonthly or annual recurring revenue from this stream
billing_modelstringBilling mechanics. May differ from `stream_type`.
recognition_basisstringAccounting basis for revenue recognition
arr_contribution_pctnumberShare of total ARR contributed (0–100)
forecaststringFree-text forecast or projection
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
4 phases — initial: proposed
14 edge types connected to this entity.
business_model_earns_via_revenue_streamrevenue_stream_tiered_as_pricing_tierrevenue_stream_measured_by_metricrevenue_stream_drives_metricrevenue_stream_priced_by_pricing_strategyrevenue_stream_drives_outcomerevenue_stream_measured_by_metric_cross_domainsubscription_drives_revenue_streamforecast_predicts_revenue_streamdocument_describes_revenue_streamrevenue_stream_captured_from_market_segmentvalue_proposition_yields_revenue_streaminitiative_unlocks_revenue_streamdistribution_channel_generates_revenue_stream1 framework use this entity type.