Pick the cheapest channel that achieves the outcome (owned email before owned push before paid social) rather than firing every channel by default, and reserve the expensive channels for the moments they earn
Many stacks fire every channel by default for any outcome the marketing team wants. A customer who has not opened the last three emails gets the email, the push, the SMS, and the retargeting ad against the same offer, because each channel ran independently and nobody asked which channel was most likely to convert them at the cheapest cost. The owned channels (email, push, in-app) are nearly free per send; the paid channels (display, social, search) cost real money per impression. Firing all of them in parallel for an outcome the cheap channels could achieve is exactly the waste the recipe is named after.
The cost-aware response is a decisioning layer that picks the cheapest channel likely to achieve the outcome, fires it, and reserves the more expensive channels for the moments the cheap ones either could not reach or did not work. The owned channel runs first; the paid channel fires only if the owned channel either had no eligibility (the customer is not subscribed, the push token is dead) or did not produce engagement within the window the recipe is willing to wait. The recipe is medium-high readiness because the cost model needs to be honest, the priority rules need to reflect actual conversion likelihood per channel, and the per-customer eligibility join is real engineering.
This recipe builds the cost-aware channel selection as the default, with the expensive channels as the fallback rather than the parallel.
A measurable reduction in cost per outcome through smarter channel selection, with the savings showing up at the per-outcome cost reconciliation. The metric is cost per outcome by channel mix: the cost to drive a unit of the target outcome, against the baseline of the all-channels-fire approach. The value shows up where the owned channels carry the load they should (the customer who is reachable on email and likely to convert there receives only the email), and where the paid channels are reserved for the customers the owned channels could not reach or did not work for. The cost savings concentrate where the audience is largely reachable on owned channels and thin where the audience is paid-channel-dependent.
The second outcome is the operational discipline of treating channels as a portfolio rather than as parallel firehoses. The team starts thinking about the channel mix per outcome rather than running every campaign in every channel, which is the cultural shift the recipe enables.
A decisioning service that takes the customer, the outcome, the cost table, and the eligibility status, returns the channel choice and the fallback channels, and integrates with the channel orchestration layer to fire the chosen channel. Composable stacks suit this because the decisioning lives in the activation layer and reads the warehouse for the customer's eligibility; packaged stacks may have channel-by-channel orchestration with no shared decisioning, and the build is the shared decisioning layer rather than the per-channel work. The capability that decides whether the recipe is durable is the cost table's accuracy: a table that under-counts the true cost of a channel (forgetting the platform's audience-match fee, the creative production cost, the integration overhead) produces channel mixes that look efficient at the surface and waste at the actual cost.
Compare the tools on Martech Stack Builder
Marketing ops owns the channel cost table, the priority rules, and the per-outcome channel mix the recipe runs. Data engineering owns the decisioning service, the cost-table maintenance, and the per-customer eligibility join that reads in real time. Finance is involved at the cost-attribution and cross-channel spend reconciliation: the recipe's claim depends on the cost numbers being right, and finance is the source of those numbers. A team that builds the recipe with cost numbers marketing-ops estimated without finance review optimizes for the wrong target. The recipe takes months because the cost-table accuracy and the priority rules need calibration against actual outcomes. A team that ships with a first-cut cost table and never refreshes it produces a recipe whose channel choices drift away from the actual cost landscape over the year.
Work in this order. Eligibility belongs inside the decision, not after it.
Latency-tiered channel selection covers steps 1, 2 and 5, channel eligibility check steps 3 and 4, and real-time decisioning with deterministic fallback step 6.
The first failure is the cost table that under-counts. A team that runs the recipe against the per-send cost of email and the per-impression cost of paid platforms but forgets the creative production cost, the integration cost, and the platform's audience-match fee produces a cost model that says paid is cheaper than it actually is, and the channel mix drifts toward paid even when the recipe was supposed to lean toward owned. The cost table has to be honest, and the maintenance cadence has to keep it current.
The second is the eligibility check that runs too late. A decisioning that picks the channel but does not check the customer's eligibility on it until the orchestration fires the send produces sends that fail silently when the eligibility was missing, and the fallback never runs because the orchestration treated the send as successful. The eligibility check has to be part of the decisioning, not part of the orchestration, so the fallback path actually fires when the chosen channel is unreachable.
The third is the customer preference that gets over-ridden by cost. A customer who prefers SMS is a customer the brand should reach via SMS when they can be, even when email is cheaper. A recipe deployed without the preference as a primary input optimizes for cost while breaking customer trust, which is the deeper waste the cost-aware framing was supposed to avoid. Preference and cost combine into the decision; cost does not over-ride preference.
Did this recipe match your situation?Anonymous response. Sign up to leave a longer note tied to your account.
Let the system act on its own inside clear bounds, escalate the ambiguous cases, and learn from how the human resolved them
Stop bidding against yourself for the same person across Meta, Google, TikTok, and the rest, by maintaining a single live audience exclusion the platforms read
Push first-party signals (predicted value, churn flag, recent conversion) to ad platforms as bid modifiers so the platforms stop paying premium for impressions that will not convert