Satisfactory Production Calculator

Compute buildings and raw inputs for a target output rate (items per minute).

{% for row in targets_ui %} {% endfor %}
Item Rate (items/min)
{% if error %}
{{ error }}
{% endif %}
{% if result %}

Results

Raw resource requirements

{% if result.raw %} {% for item,rate in result.raw.items() %} {% endfor %}
DoneItemRate (items/min)
{{ item }} {{ '%.2f'|format(rate) }}
{% else %}

No raw resources required (target is a raw resource).

{% endif %} {% if overrides_ui and overrides_ui|length > 0 %}

Recipe overrides

{# Preserve all target rows in the recalculation #} {% for row in targets_ui %} {% endfor %} {% if selected_recipe %}{% endif %} {% for ov in overrides_ui %} {% endfor %}
Item Override recipe
{{ ov.item_name }}
Reset overrides
{% endif %}

Production steps

{% if result.steps %} {% for s in result.steps %} {% endfor %}
Done Output Item Recipe Building Inputs Target rate Per-building output Buildings Utilization
{{ s.item }} {{ s.recipe }} {{ s.building }} {% if s.inputs and s.inputs|length > 0 %}
{% for inp in s.inputs %}
{{ inp.item }} — {{ '%.2f'|format(inp.rate) }}
{% endfor %}
{% else %} None {% endif %}
{{ '%.2f'|format(s.target_rate) }} {{ '%.2f'|format(s.per_building_output) }} {{ '%.2f'|format(s.buildings_float) }} (~ {{ s.buildings }}) {{ '%.1f'|format(s.utilization*100) }}%
{% else %}

No production steps (target is a raw resource).

{% endif %}

Excess products

{% if result.excess and result.excess|length > 0 %} {% for item,rate in result.excess.items() %} {% endfor %}
DoneItemExcess rate (items/min)
{{ item }} {{ '%.2f'|format(rate) }}
{% else %}

No excess products for this target.

{% endif %}

Unused byproducts

{% if result.unused and result.unused|length > 0 %} {% for item,rate in result.unused.items() %} {% endfor %}
DoneItemUnused rate (items/min)
{{ item }} {{ '%.2f'|format(rate) }}
{% else %}

No unused byproducts for this target.

{% endif %}
{% endif %}