Field Notes

If You Don't Know the Cost, You Don't Know the PNL

Most teams can tell you what a content drop earned. Almost none can tell you what it cost. Here's why that gap breaks post launch profitability, and what to do about it.

I can ask any producer what a content drop earned, and get an answer in seconds. Ask what it costs to make, and the room goes quiet. If you do not know the cost, you do not know the PNL. Not a softer version of it. You simply do not know it.

Cost gets decided twice, and nobody is watching either time

The first time is the design table, long before anyone talks about money. How high did you set your quality bar? How many body types does your character customization support? How many playable characters does a single cosmetic need to work on?

That last one is bigger than it sounds. A skin does not just fit a new character. Someone has to adapt it to that character's mesh. It has to deform correctly through that character's animations. Then it needs testing for clipping, on every character it supports, not once.

Testing one asset is one job. Testing ten variations of it is ten jobs, one full pass per character, and that is the QA cost people forget to count.

A skin built for ten characters is not one asset. It is ten separate jobs wearing the same name.

None of this means the answer is always to do less. Self-expression is a real driver of player motivation. Players who can make a character genuinely their own tend to stay more invested.

The point is not to cut these choices by default. It is to know what each one costs, then decide on purpose how far to push it. That way the trade-off between player expression and production cost is a deliberate call, not a surprise on an invoice.

The second time is production itself, once design decisions turn into real work. Cost tracking needs to start here, while the work happens, not later at a finance review. Wait too long, and all you have is guesswork wearing a spreadsheet: someone trying to remember, months later, which invoice paid for which asset.

It gets harder once you are live, not easier. In production, you can bundle a big batch of work with an external provider and negotiate one clean price for the whole thing. Live, your delivery windows shrink. You need one hero skin in three weeks, not fifty assets in three months. That does not get any easier just because the ask got smaller.

Miss either one, the design table or the production floor, and you are not managing cost. You are discovering it, late, on an invoice.

Small content drops do not get volume pricing on their own

There is a real difference between producing assets for the whole game and producing assets for one seasonal update or a small DLC. For the whole game, you can plan ahead and negotiate a price based on real volume. For a seasonal drop, you often have far less to produce at once, so a vendor has little reason to give you their best rate.

The fix is to stop thinking one content drop at a time. Plan your content calendar for the year, and negotiate with your vendors on that full year of volume, not on this one update. A vendor pricing four seasonal drops a year prices very differently than a vendor pricing one.

The second lever is working with more than one vendor. That is not just about playing them off each other for a better rate, although it does that too. It keeps your pricing honest on an ongoing basis, and it means one vendor having a bad quarter, or simply disappearing, does not stop your content pipeline.

Batching hides what any single piece actually cost

Batching mixes up costs in two different places, and they need two different fixes.

Internally, your own team works through a batch of assets together, and nobody logs which one took how long. Time tracking is the fix. Set it up properly in JIRA, ClickUp, or whatever you already use, at the level of the individual asset, not the batch. It feels like overhead at first. It is the only reason you can answer "how long did this take" six months later, instead of guessing.

Externally, a vendor sends you one invoice for ten cosmetics that does not say what any single one of them cost. The fix here is different: ask for the breakdown up front, written into the contract, not requested after the fact. A vendor who can bundle ten assets into one price can also split that price into ten lines, if you ask before you sign.

One habit ties all of this together

Tag cost against content at the exact same level of detail you already tag revenue against it. If you can tell me what a specific event earned down to the day, you should be able to tell me what it cost, down to the asset. Treat vendor selection the same way, an ongoing decision you revisit every planning cycle, not a negotiation you finish once and forget.

This sits next to the wider Data Insights pillar, where I cover what to track and why. It also touches Live Development, since bundling work with external providers is as much a production process question as a finance one. Know your cost the way you already know your revenue, and your PNL stops being a guess.

Want to know your real post-launch PNL?

Let's set up cost tracking that stands next to your revenue, asset by asset.