Simplest system that I can think of, doing almost everything as one-to-one relationships.
- Every building that isn't a farm requires one farm.
- Every factory requires one mine.
- Leaving out offices for the time being, will get back to them in a moment.
Production is still possible if something's missing from the ideal supply chain -- but for each missing prerequisite you have to pay a one-credit penalty for each missing part of the chain. (Or 10 credit or 100 credit, etc., whatever is proportional to other costs in your game.)
Like say you want something and it takes 10 factories to build. You have 9 factories, 5 mines, and more than enough farms. You pay a penalty of 4 credits for the missing mines (to supply the missing minerals), plus 2 credits for the missing factory+mine (to supply both the production and the minerals), for 6 credits total.
Or, say you need to build a 4-factory thing, but you have 2 factories, 3 mines, and 4 farms. You pay a penalty of 7 credits (because your supply chain requires 4 factories, 4 mines, and 8 farms, and you're missing exactly 7 buildings in the supply chain).
This is easy to visualize if you do it as a directed graph of buildings. Like say your planetary production view is rows of buildings, with their prerequisites done as lines. Below, I represent an empty plot as [ ], a farm as [F], a mine as [M], and a factory as [S], and the thing the factories are producing as [SHIIIIIIIIIIIIIIIIIIIIIIIIP].
[F] [F] [F] [F] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
| | | | | | | | | | | | | | | |
| [M] | [M] | [M] | [ ] | [ ] | [ ] | [ ] | [ ]
\ / \ / \ / \ / \ / \ / \ / \ /
[S] [S] [ ] [ ] [ ] [ ] [ ] [ ]
| | | | | | | |
[SHIIIIIIIIIIIIIIIIIIIIIIIIP]
So this way you can highlight the missing buildings, and the player can understand exactly where that 7-credit penalty comes from. (Maybe you don't go all the way up to farms to calculate penalties when lower buildings don't exist -- it's not like you have to feed workers in the mines you don't have -- but the general idea here is that whatever you penalize and however much you penalize it, you can highlight it visually by changing color, putting a big X or [-1] sticker on it, etc.)
For offices, maybe one administrative office or general store or something is required for each octet of buildings, like in the below. The player is missing eight buildings now.
_____[O]_____ _____[ ]_____ _____[ ]_____ _____[ ]_____
/ \ / \ / \ / \
[F] [F] [F] [F] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
| | | | | | | | | | | | | | | |
| [M] | [M] | [M] | [ ] | [ ] | [ ] | [ ] | [ ]
\ / \ / \ / \ / \ / \ / \ / \ /
[S] [S] [ ] [ ] [ ] [ ] [ ] [ ]
| | | | | | | |
[SHIIIIIIIIIIIIIIIIIIIIIIIIP]
Maybe maintenance of things can take up a production slot, too. Like if you've got a ship garrisoned at the planet, it takes up one production automatically.
_____[O]_____ _____[ ]_____ _____[ ]_____ _____[ ]_____
/ \ / \ / \ / \
[F] [F] [F] [F] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
| | | | | | | | | | | | | | | |
| [M] | [M] | [M] | [ ] | [ ] | [ ] | [ ] | [ ]
\ / \ / \ / \ / \ / \ / \ / \ /
[S] [S] [ ] [ ] [ ] [ ] [ ] [ ]
| | | | | | | |
[MAINT] [SHIIIIIIIIIIIIIIIIIIIIIIIIP]
The maintenance doesn't block the ship production, but you pay a 13-credit penalty now.
On the other hand, if you've got more complete production lines than you can use building/maintaining your own stuff, the factories automatically produce consumer goods or something else beneficial, represented here as [!].
_____[O]_____ _____[O]_____ _____[O]_____ _____[O]_____
/ \ / \ / \ / \
[F] [F] [F] [F] [F] [F] [F] [F] [F] [F] [F] [F] [F] [F] [F] [ ]
| | | | | | | | | | | | | | | |
| [M] | [M] | [M] | [M] | [M] | [M] | [M] | [ ]
\ / \ / \ / \ / \ / \ / \ / \ /
[S] [S] [S] [S] [S] [S] [S] [ ]
| | | | | | | |
[MAINT] [SHIIIIIIIIIIIIIIIIIIIIIIIIP] [!] [!]
Here you pay no penalty, and also you get two consumer goods.
Anyway, note that this isn't a map such that the player is placing buildings down on it. It's essentially just a bar graph going left to right of the buildings that exist on a planet, plus lines representing requirement relationships. But it gives an easy visualization of why the player is getting a penalty or why they're getting a bonus.