Most bakery owners manage channels the way they manage recipes: one at a time, by feel, reacting to whichever one is screaming loudest that week. Wholesale is blowing up, so you chase it. Then delivery platforms start eating your margin, so you pull back. Then a corporate account asks for a standing weekly order and you say yes because revenue is revenue.
The problem isn't any single channel. The problem is that nobody is governing the portfolio. Once a bakery runs more than two or three channels at real volume, the absence of governance starts quietly costing more than any bad supplier contract ever could.
Channel decisions aren't really marketing decisions. They're capacity allocation decisions dressed up as marketing decisions. And the thing that actually limits your bakery — the oven, the proofer, the decorator, the two hours between 5am and 7am — is what every channel is secretly fighting over.
The real reason channels fight each other
Every bakery has a binding constraint. Sometimes it's oven minutes. Sometimes it's a single skilled decorator. Sometimes it's the loading dock during the morning rush, or the walk-in during holiday weeks. Whatever it is, that constraint is the only thing standing between you and more revenue — and every channel you run is pulling from the same constrained pool.
When you evaluate channels on revenue or even on margin percentage, you get the wrong answer, because those numbers ignore how much of your scarce resource each channel actually consumes. A wholesale loaf contract might show a healthy 40% margin on paper. But if those loaves are occupying your deck oven during the exact window your high-margin cafe pastries need it, that wholesale contract is effectively stealing from a better customer.
In a lot of multi-channel operations, the most "profitable-looking" channel is frequently the one strangling the business. It looks good in the P&L because the P&L doesn't have a column for bottleneck-minutes. We covered a version of this in the capacity-aware channel profitability framework, but governance goes a step further — it's not just knowing which channel costs you, it's building a repeatable system for deciding what to grow, cap, or cut.
Contribution per bottleneck-minute: the only channel number that matters
If you take one idea from this whole article, make it this: stop ranking channels by margin and start ranking them by contribution per bottleneck-minute.
The math is simple. For each channel, take the contribution margin of a typical order — revenue minus the truly variable costs (ingredients, packaging, platform fees, delivery) — and divide it by the number of minutes that order consumes of your binding constraint. Not total labor minutes. Not total oven time. The minutes of the one resource that's actually maxed out.
Say your binding constraint is finishing-station labor — the decorating and assembly bench that backs up every busy morning. Here's what a rough comparison might look like:
| Channel | Contribution per order | Bottleneck minutes per order | Contribution per bottleneck-minute |
|---|---|---|---|
| Cafe display case | ~$3.10 | 0.5 | ~$6.20 |
| Online preorder pickup | ~$6.80 | 1.5 | ~$4.50 |
| Custom cakes | ~$48 | 22 | ~$2.18 |
| Delivery platform | ~$4.20 | 2.0 | ~$2.10 |
| Wholesale standing order | ~$1.90 | 0.4 | ~$4.75 |
Look at what happens to custom cakes. On a per-order basis they look like the crown jewel — $48 of contribution per order will make anyone's eyes light up. But against the finishing bench, they're near the bottom. Every cake you accept is 22 minutes your decorator isn't turning out display-case pastries that generate more per minute of the thing you're actually short on.
That doesn't mean kill custom cakes. It means you have a real framework for deciding how many you take on, and at what price, instead of saying yes to everything and wondering why your mornings are chaos.
One important nuance: your bottleneck moves. On a slow Tuesday your constraint might be demand, not capacity — in which case every channel's contribution per minute looks fine because you have slack to spare. The governance question is really about your peak windows, because that's when channels actually compete. A channel that only runs during your slack hours is almost free. One that insists on your peak window is expensive no matter what its margin looks like.
Why this breaks down as you scale
A single-location bakery with a counter and a small wholesale list can usually hold all of this in the owner's head. The owner knows that if they take on the new restaurant account, Thursday mornings get tight. That intuition works until it doesn't.
It stops working for three predictable reasons.
Channels multiply faster than attention. You start with walk-in and preorder. Then delivery apps. Then a subscription box. Then catering. Then a second wholesale tier. Each one seems manageable when you add it. But every new channel adds a claim on the same constrained window and a new set of exceptions, cutoffs, and promises to track. The coordination cost grows faster than the revenue does.
The constraint shifts without anyone noticing. The oven was the bottleneck last year. You added a rack oven, so now it's the decorator. You hired a second decorator, so now it's the pickup counter during the 8am rush. Most bakeries keep optimizing for yesterday's bottleneck and wonder why things still jam up.
Nobody owns the tradeoffs. When the wholesale manager, the cafe lead, and the online coordinator are all chasing their own targets, they'll each happily fill the oven to the brim — and collectively overpromise the same capacity three times over. This is exactly the mess that a multi-channel fulfillment governance playbook is built to prevent at the execution level. Portfolio governance is the strategic layer above it: fulfillment governance keeps today's orders from colliding; portfolio governance decides which channels deserve the capacity in the first place.
Setting investment thresholds (so you stop saying yes to everything)
Governance isn't just measurement. It's having pre-agreed rules for when a channel earns more capacity, when it gets frozen, and when it gets cut. Without thresholds, every channel decision becomes a one-off negotiation driven by whoever's most persuasive that week.
Set three thresholds per channel, tied to contribution per bottleneck-minute:
-
Grow threshold — the channel is above your portfolio average contribution per bottleneck-minute AND you have a credible plan to relieve the constraint it uses. You invest: more marketing, more capacity, better pricing.
-
Hold threshold — the channel is near average. Keep it steady, don't feed it more peak capacity, and look for ways to shift it into slack windows.
-
Cut-or-reprice threshold — the channel sits below your worst alternative use of the bottleneck. Either raise prices until it clears the bar, move it off-peak, or exit it.
The discipline here is that these numbers are set before the emotional conversation. When a big catering request comes in during holiday week, you're not debating whether it "feels worth it." You're checking whether it clears the threshold for the constraint it'll consume. If custom work only pencils out at a higher deposit and a longer lead time, that's your answer — and it's not personal.
A quick note on pricing as a lever: repricing a below-threshold channel is almost always better than cutting it, because you keep optionality. We've touched on this with perishable SKUs in the capacity-aware pricing playbook — the same logic applies at the channel level. A delivery channel that loses to the display case at current prices might beat it with a $1.50 platform surcharge. You don't know until you set the threshold and test against it.
When testing a price lever, use a small, time-limited surcharge so you can measure demand elasticity without permanently changing customer behavior.
Repricing a below-threshold channel keeps optionality while you experiment with schedules and deposits, and is often the least disruptive first move.
A real scenario
A two-site bakery running cafe, online pickup, two delivery platforms, and a growing wholesale list. Revenue was somewhere around $60k–$65k a month combined, but the owner kept feeling poorer despite the growth. Mornings were a mess and the head baker was burning out.
When they actually mapped channels against their binding constraint — which turned out to be the single proofer during the 4am–6am build window, not the ovens everyone assumed — the picture flipped completely. Wholesale was consuming nearly 45% of proofer time during that window for the lowest contribution per bottleneck-minute of any channel. The delivery platforms, which everyone complained about, were actually fine because they pulled from mid-morning capacity rather than the overnight crunch.
They didn't dump wholesale. They repriced the two lowest-margin accounts, shifted one account's production to an afternoon proof for next-day delivery, and capped new wholesale intake until they could add proofer capacity. Within about two months the morning chaos eased noticeably, the head baker stopped threatening to quit, and monthly contribution improved somewhere in the $4k–$6k range — on roughly the same top-line revenue. Nothing new was sold. The same capacity was just pointed at better channels.
That's the whole point of governance. The upside often isn't more sales — it's the same sales, reallocated.
The quarterly portfolio review
Channel governance fails when it's a one-time spreadsheet exercise. The bottleneck moves, demand shifts seasonally, platform fees change, a new account appears. You need a standing cadence. Quarterly works for most bakeries — frequent enough to catch drift, infrequent enough that it doesn't become busywork.
A review you can run in about 90 minutes looks something like this:
-
Confirm the current binding constraint. Which resource actually maxed out during peak windows this quarter? Oven, a specific station, a person, the counter, the walk-in? Don't assume it's the same as last quarter.
-
Recalculate contribution per bottleneck-minute for every channel. Use this quarter's real order mix, costs, and fees — not last year's numbers.
-
Flag any channel that crossed a threshold. Who moved into grow, hold, or cut-or-reprice territory since last time?
-
Check for peak-window collisions. Are two or more channels both demanding the same constrained window? That's a reprice or reschedule candidate.
-
Review the exceptions log. Which channel generated the most rush orders, late changes, refunds, and manual overrides? Operational drag is a real cost that rarely shows up in margin.
-
Tie it back to the multi-year plan. Which channels are strategically load-bearing — building brand, locking in recurring revenue, de-risking you from one buyer — even if their per-minute numbers are only average? Governance isn't purely mathematical. You can choose to subsidize a strategic channel, but do it on purpose, with eyes open.
-
Decide three actions, assign owners, set the next review date. No review without concrete moves.
Here's a quick visual of the review workflow to keep the 90-minute sequence clear for your team.
That last point about multi-year strategy matters more than the math suggests. A subscription channel might sit at merely average contribution per bottleneck-minute, but its predictability lets you forecast production and smooth your labor — which quietly improves every other channel's efficiency. The spreadsheet won't tell you that. Your strategy has to.
When this framework makes sense — and when it doesn't
Worth doing when you run three or more channels at meaningful volume, your peak windows regularly jam up, or you've grown revenue but your take-home hasn't followed. Those are the classic signs that you're selling capacity to the wrong buyers.
Overkill when you're a single counter with one small wholesale account and plenty of slack capacity. If nothing competes for your constraint, there's no portfolio to govern yet. Build the habit of tracking it, but don't spend Sunday afternoons modeling bottleneck-minutes you aren't actually short on.
Owners who'll use the numbers to axe channels reflexively should be careful here. Contribution per bottleneck-minute is a decision aid, not an execution order. A below-threshold channel is often fixable with a price change, a schedule shift, or a cutoff adjustment before it ever needs to be cut. Cutting is the last move, not the first.
Pulling it together
The bakeries that stay profitable through growth aren't the ones with the most channels or even the best-marketed ones. They're the ones who treat their channel mix as a managed portfolio — with a clear read on what their real constraint is and a standing rhythm for pointing capacity toward whatever earns the most per constrained minute.
Keeping all of this coherent across sites and channels gets genuinely hard once you're past a couple of channels. Tracking which channel consumes which window, logging exceptions, keeping the per-minute math current — it adds up fast. An operational platform that centralizes channel orders, capacity windows, and exception data earns its keep here: not because it makes the decisions for you, but because it keeps the inputs honest so your quarterly review isn't built on guesswork and half-remembered busy mornings.
Start with one question at your next management check-in: what is the single resource we run out of during our busiest window, and which channel is consuming the most of it per dollar it brings in? Answer that honestly and you've already started governing your portfolio instead of just reacting to it.