Internal Pricing

Internal Pricing is the practice of charging Stream Teams for the services they consume from Internal Product Teams. Done well, it makes the productisation incentive real: Internal Product Teams have to compete on value to retain their customers, and Stream Teams have a real signal about what their internal-service consumption is costing them. Done badly, it recreates the friction that internal departments were supposed to remove.

Goal

To put Internal Product Teams under the same kind of market discipline that an external product faces, so that the team improves continuously, while keeping the cost of using the system low enough that Stream Teams don't route around it.

Context

Without internal pricing, an Internal Product Team has no real incentive to improve. Their customers (Stream Teams) can't go anywhere else, so the team can ship at whatever cadence and quality they want. The slow internal department is the predictable result.

Adding internal pricing introduces market dynamics: if a Stream Team isn't getting value from the Internal Product Team, they have a budget signal that says so, and the Internal Product Team has revenue signal that tells them they need to improve. The system mirrors what would happen with an external vendor.

The catch is that the operational overhead of the pricing system itself can become worse than the problem it was meant to solve. Asking for charge codes, raising internal POs, and chasing internal invoices reproduces the friction that used to make internal departments a bottleneck. The pricing system has to be lower-friction than the underlying problem to be worth the trouble.

How Haier handled it

Haier's approach to internal pricing is a useful reference point. Their solution had three parts:

  1. A centralised internal-trading platform that all teams use. Internal services are listed with rates; Stream Teams sign up online much like a SaaS subscription.
  2. Standardised contract templates for the common service types. No bespoke negotiation per relationship.
  3. Automated payment between cost centres, so the money flows happen as a side-effect of the contract rather than as a separate manual process.

The system removed most of the manual haggling and made internal trading as easy as signing up for an external SaaS product. Time, cost, and effort all dropped sharply.

Design principles for internal pricing

A few things matter more than others:

  • Friction must be lower than the value of the choice. If signing up to use the Internal Product Team takes longer than building it yourself, the team will build it themselves. The signup experience is the most important part of the pricing system, not the prices.
  • Stream Teams must have real choice. Internal pricing only works if the Stream Team can choose to go elsewhere: to an external vendor, to building it themselves, or to a competing internal team. Without a real alternative, the pricing is theatre.
  • Prices should reflect value. The goal of internal pricing is signal. Set prices according to the value provided. If this more than covers costs you get a strong signal. If it doesn't, you get another signal. As with the previous principle, Stream Teams need a choice in where to go for this to work.
  • Bundle the common case. Per-call or per-API-request pricing produces enormous billing complexity and discourages experimentation. A simple monthly subscription for "platform access" is usually less friction and tells the same story.
  • Publish the prices. Stream Teams should be able to estimate what their consumption will cost without having to ask the Internal Product Team. The transparency is part of what makes the discipline work.

Common objections, and how to handle them

"We're not a market. Why are we pretending to be one?"

A market is the means, not the end. The incentive structure is what produces the change: without the pricing signal, Internal Product Teams have no reason to improve and Stream Teams have no reason to think about consumption. With it, both sides have skin in the game.

"Pricing creates internal politics."

It can. The mitigation is the operational simplicity above. The Haier model works because there is no negotiation: the prices are set, the contracts are standardised, the payments are automated. Politics emerge when there's a per-relationship negotiation. Standardise that away.

"We don't want to discourage Stream Teams from using shared services."

Pricing should reflect value. If teams are routing around the Internal Product Team because of cost, the prices are wrong. Adjust them down.

For compliance reasons (signing contracts, paying salaries) the Internal Product Team is the only legal option. Internal pricing still gives the team a signal about how much value they are creating, even when adoption isn't voluntary. The cap is that you can't measure success by adoption alone in those cases.

Anti-patterns

  • Pricing as cost recovery for a captive customer base. The Internal Product Team uses pricing to fund whatever it wants, the Stream Teams have no choice, nothing improves.
  • Heavy contracts and approval workflows. Recreates the bureaucracy that internal departments were supposed to escape.
  • Price changes without notice. Stream Teams base their plans on a budget. Surprise price changes erode trust.
  • Pricing that discourages experimentation. A team trying out the Internal Product Team for the first time should be able to do so cheaply; they don't yet know if it'll work for them.
  • No alternatives. "You must use the internal team. Here's the price." Without real choice, the price is just an internal tax.

Was this page helpful?

Previous
Platform as a Product
© ZeroBlockers, 2024-2026. All rights reserved.