Modeling item sinks and sources in a node graph

How to map your game economy as a node graph and why seeing flows visually makes sink/source balance easier to reason about than any spreadsheet

Why spreadsheets show you numbers but graphs show you flow - and how to map your economy so the imbalances are impossible to miss.

Every game economy has the same underlying structure: resources come in, resources go out, and the ratio between the two determines whether your game feels good or broken. The concepts aren't complicated. The hard part is seeing them clearly enough to make good decisions.

Spreadsheets are the default tool for this - and they're useful for calculating individual values. But they're bad at showing you flow. You can't look at a spreadsheet and immediately understand whether gold is pooling somewhere unexpected, which mechanic is the biggest drain, or how adding a new item type will ripple through everything downstream.

Node graphs fix that. This post breaks down how to model sinks and sources as a visual graph - what the nodes mean, what patterns to look for, and how the structure reveals problems that numbers alone never would.

What this post covers: The fundamental node graph model for game economies, how to represent sources, sinks, and intermediate nodes, and four patterns that signal a broken economy - visible the moment you draw them out.

The core model: nodes and edges

In a node-based economy model, there are two kinds of things:
Nodes represent either a resource (gold, wood, energy, reputation) or a mechanic - a process that creates, transforms, or consumes those resources.
Edges represent flow: currency or items moving from one node to another, with a rate attached. That rate might be a fixed amount per session, an expected value per hour, or a probability-weighted average for a drop.
A minimal economy looks like this:

[Quest Reward] ── gold ──→ [Player Wallet] ── gold ──→ [Upgrade Shop]

One source, one pool, one sink. That's a complete economy. Everything else in every game you've ever played is elaboration on this pattern.

Sources: where resources enter the system

A source node is any mechanic that creates new currency or items - pulling them from outside the economy into the player's hands. Each source has an output rate: how much it pushes into the system per unit of time.

Source

Type

Notes

Daily login reward

Source

Fixed rate, predictable. Easy to model, great for retention.

Quest completion

Source

Variable by quest. Use average expected earnings per session.

Enemy drops

Source

Probabilistic. Model as expected value per hour of combat.

Selling items

Both

Source of one currency, sink of another. Depends on your frame.

Battle pass rewards

Source

Time-gated. Important for controlling supply over a season.

When you draw this as a graph, each source gets its own node feeding into the player's wallet:

[Daily Login]  ──→ 50 gold/day  ──→ ┐
[Quest Clear]  ──→ 80 gold/hr   ──→ ├──→ [Player Wallet]
[Enemy Drop]   ──→ 30 gold/hr   ──→ ┘

The total input rate here is roughly 160 gold per hour of play, plus 50 per day. That's your baseline supply. Every sink in the game needs to account for that flow existing.

Sinks: where resources leave the system

A sink node is any mechanic where currency or items are consumed and effectively removed from the economy. The player spends — the resource disappears. In a graph, sinks are terminal nodes: edges flow in, nothing flows out.

Sink

Type

Notes

Upgrade costs

Sink

Should scale faster than earn rate as players progress.

Crafting recipes

Sink

Multi-resource sinks are powerful — they drain several currencies at once.

Cosmetic purchases

Sink

Pure sink with no gameplay return. Healthy for live economies.

Gacha / loot boxes

Sink

Probabilistic. Risk of over-draining players on bad luck streaks.

Trading fees

Sink

Small but constant. Useful for controlling player-to-player economies.

[Player Wallet] ──→ 200 gold ──→ [Upgrade: Level 3]   ← terminal
[Player Wallet] ──→ 500 gold ──→ [Cosmetic Shop]       ← terminal
[Player Wallet] ──→ 150 gold ──→ [Crafting: Iron Axe]  ← terminal

The balance check: total input vs. total output

"Spreadsheets show you totals. Graphs show you paths."

Once sources and sinks are mapped, the key question is whether total output capacity exceeds total input rate. Using our example:

Total sources:  160 gold/hr + 50/day
Total sinks:    ~350 gold/hr (if player is actively spending)

An active player can spend faster than they earn - which is fine. It creates tension and demand for harder-to-reach sources. But if a casual player earns 50 gold per day and the cheapest meaningful sink costs 500, you have a wall.

The graph makes this visible. You can trace the path for a casual player and a hardcore player separately, and see immediately whether both have routes through the economy that feel rewarding. In a spreadsheet, those two players are invisible - they're both just "the player."

Intermediate nodes: where it gets interesting

Real economies don't go directly from source to wallet to sink. They have intermediate nodes - resources that are the output of one mechanic and the input of another. These are transformation nodes.

[Enemy Drop] ──→ Iron Ore ──→ [Forge] ──→ Iron Bar ──→ [Crafting: Sword] ← terminal

Iron Ore is neither a source nor a sink in itself. The Forge transforms it into something more valuable -at the cost of player time and possibly other resources (fuel, a small gold fee for the forge).

Intermediate nodes are where economy design gets nuanced, because they do three things simultaneously:

They create meaningful choices. Should I sell the Iron Ore raw, or invest the time to forge it? That question is intrinsically interesting — it's the kind of decision that makes economies feel alive.

They create bottlenecks. If the Forge is slow or limited, Iron Bars become scarce even if Iron Ore is abundant. Intentional scarcity is a design tool. Unintentional scarcity is a frustration.

They hide inflation. If Iron Ore piles up because nobody forges, your raw numbers look balanced while players feel rich in one thing and poor in another. The graph shows this the moment you look at it — a node with a fat arrow in and a thin arrow out is a warning sign.

Watch for this: Any intermediate node where the inflow rate is significantly higher than the outflow rate will accumulate over time. In a spreadsheet this is easy to miss. In a graph it shows up immediately as a widening discrepancy between two edge weights.

Four patterns that signal a broken economy

🟢 Isolated nodes

A node with no outgoing edges (other than expected terminal sinks). A resource accumulates with nowhere to go. Classic inflation signal. Either there's a sink you haven't built yet, or the resource is functionally useless — both are design problems.

🟢 Bottleneck nodes

A node that all other paths route through. If that node's rate changes — a bug, a balance patch, an event — it affects everything downstream simultaneously. These are high-leverage, high-risk points. Know where they are before you ship.

🟢 Parallel paths to the same sink

Two or more sources both feeding the same sink means that sink's drain rate needs to account for both simultaneously. Trivial to miss in a spreadsheet. In a graph, you can see two arrows arriving at one terminal node and immediately know to check the math.

🟢 Dead-end sources

A source node whose output has no clear path to a sink players care about. Players earn the resource but have nothing compelling to spend it on. Currency accumulates, spending feels pointless, motivation drops. Draw the full path from every source to a meaningful terminal — if you can't, that's your problem.

What a healthy graph looks like

A healthy node graph has a few consistent properties. Every source node has at least one clear path to a terminal sink. No intermediate node has dramatically higher inflow than outflow. There's at least one "emergency valve" - a sink you can activate at scale to drain accumulated currency if sources run hot.

The player wallet sits roughly in the middle of the graph with multiple edges both in and out. If the wallet is mostly at the end of a chain with few exits, you have a hoarding problem. If it has too many exits and thin inputs, you have a scarcity problem.

One useful heuristic: Count the edges on your player wallet node. Inputs and outputs should be within 2× of each other in number. If you have eight sources and two sinks, you almost certainly have inflation. If you have two sources and eight sinks, players will feel constantly poor.

How Itembase models this

This is the exact problem Itembase was built to solve. You place each resource and mechanic as a node on a canvas, connect them with edges, assign rates, and the simulation shows how currency accumulates or depletes over time — for different player archetypes, across different session lengths.

The visual representation enforces a discipline that spreadsheets don't. You have to explicitly account for every connection. There's no way to miss a flow when you're drawing it - a disconnected node sits there, visually wrong, until you fix it.

If you're building or tuning an economy right now, mapping it as a graph before assigning numbers will save you significant rebalancing work later. The structure is almost always where the problem lives.

Map your economy visually

Itembase lets you model sinks, sources, and flows as a node graph - then simulate how the economy behaves before you ship.

← Back to all posts