<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GregFirehawk</id>
	<title>Official Factorio Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GregFirehawk"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/GregFirehawk"/>
	<updated>2026-04-22T18:14:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=215218</id>
		<title>Talk:Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=215218"/>
		<updated>2025-08-05T01:42:22Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Splitter to Chest */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [https://forums.factorio.com/viewtopic.php?f=7&amp;amp;t=22#p71]&lt;br /&gt;
&lt;br /&gt;
Removed. But eventually helpful. [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 02:45, 31 December 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Changes for 0.17 ==&lt;br /&gt;
&lt;br /&gt;
The faster belt speeds probably change the results for some of the entries in these tables. It looks like they haven&#039;t been updated yet. --[[User:Omnifarious|Omnifarious]] ([[User talk:Omnifarious|talk]]) 14:59, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
They have been updated by [[User:Bilka|Bilka]] in [[Special:PermanentLink/172015|This revision]]. --[[User:Swan|Swan]] ([[User talk:Swan|talk]]) 17:19, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
&lt;br /&gt;
I updated this wiki to show ticks per turn in the inserter speed section. My results seem to clash with the previous information about rotation speed (102 ticks = 1.7 seconds, there is a discrepancy between the rotation time of burner inserters most notably). The experiment I performed was done on vanilla factorio 0.14.22. I used two steel chests with varying inserters for each experiment. The inserters were fully powered at all times. The first chest is wired to a combinator which tests for any items in the chest, and outputs 1 signal X. This signal is added to a tallying arithmetic combinator. This arithmetic combinator is wired to itself, and outputs T + X. The value of T at setup is 0. I begin this experiment by placing large stacks of items into the first chest. I place only 201 transfers worth of material into the chest. This will stop the timer as soon as the last item is removed, which occurs after 200 transfers. With this setup I obtained the results as I have reported them. The timer always stopped on a multiple of 200, indicating that the number of ticks per full turn is an integer number. This is why I decided to add a separate column for this value. I may in the future update the other rotation speed metrics to match my results. --[[User:Reububble|Reububble]] ([[User talk:Reububble|talk]]) 18:19, 8 March 2017 (UTC)&lt;br /&gt;
:Which orientation were the inserters? Inserters facing north have lower throughput, might mean they have slower rotation speed. --[[User:Artorp|Artorp]] ([[User talk:Artorp|talk]]) 20:47, 5 April 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== put the &amp;quot;Inserters And Transport Belt Interaction&amp;quot; examples in a table so they are side by side ==&lt;br /&gt;
&lt;br /&gt;
i see why that was a bad idea, but i would rather see them side by side if it were possible to make a table that, when the horizontal space it has to display is smaller than all 4 makes it so there are 3 and on another &amp;quot;line&amp;quot; another 1 or 2x2 or all underneath one another like it is now.&lt;br /&gt;
&lt;br /&gt;
: I put them in a 2x2 square; I think that&#039;s the best way to see all of them at once. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 13:17, 14 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Problem with translation ==&lt;br /&gt;
&lt;br /&gt;
Could someone explain to me what it is &#039;&#039;&#039;Extension Speed&#039;&#039;&#039; and why it is expressed in &#039;&#039;&#039;Tiles per Tick&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a translation and can not find a word - without knowing what it is ;){{unsigned|JakubSTR|08:43, 6 March 2018‎}}&lt;br /&gt;
&lt;br /&gt;
:I&#039;d describe extension speed as how fast the inserter &amp;quot;extends&amp;quot;, so in this case how fast its arm gets longer/shorter to be able to reach an item on the far or near side of the belt. It&#039;s expressed in tiles per tick because that is a unit of speed, just like meters per second :) An inserter that has an extension speed of 1 tile per tick needs 1 tick to make its arm longer by a whole tile. I hope this helps. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:11, 6 March 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiplication sign notation ==&lt;br /&gt;
&lt;br /&gt;
To Cardinal, why are you changing all the multiplication signs from &amp;quot; * &amp;quot; to &amp;quot; x &amp;quot;? This is less proper notation mathematically, and can cause confusion algebraically which is why the * notation exists. I don&#039;t see any benefit to explicitly make this change which is arguably less correct.{{Unsigned|GregFirehawk|09:08, 10 May 2025}}&lt;br /&gt;
&lt;br /&gt;
: The wiki generally prefers × and ÷ for mathematical formulas, so these edits are correct. For completely proper mathematical notation, you can use latex instead, there is a proposed style guide: [[Factorio_talk:Style_guide#Draft:_equation_style_guide]]. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 09:19, 10 May 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Well, the char I&#039;ve used was &amp;quot;×&amp;quot;, not &amp;quot;x&amp;quot;. Those edits are basically for 2 reasons: Firstly, as Bilka said, to maintain the consistency of wiki contents. Secondly, to avoid ambiguity from the &amp;quot;*&amp;quot; representing the annotation, you can see them in the tables on this page. Of coures, sometimes &amp;quot;x&amp;quot; can also be confused with &amp;quot;×&amp;quot;, maybe it&#039;s a better idea to reform the equation with LaTeX syntax. Sadly I&#039;m not good at it, so if you can deal with this, I&#039;ll glad to apply it in my translation.  [[User:Cardinal|Cardinal]] ([[User talk:Cardinal|talk]]) 09:55, 10 May 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Splitter to Chest ==&lt;br /&gt;
&lt;br /&gt;
I noticed that there is Chest to Splitter, but no Splitter to Chest. I clocked it at ~20 item/s using blue splitters and green inserters, and at over 17 item/s with red splitters. That&#039;s pretty significant, much more so than the sideloaded tunnel strat thats prominently featured. For reference, I did this by doing 1 inserter per splitter, and loading it with both belts. There is a drop in throughput when using only a single belt, and another smaller drop when using 2 inserters per splitter. I&#039;m pretty sure I&#039;m not the first to come across this as I think I&#039;ve heard people discuss it before, so it should be added to the page. I have no plans to do that right now, so if anyone else would like to then please do!&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Burner_inserter&amp;diff=215216</id>
		<title>Burner inserter</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Burner_inserter&amp;diff=215216"/>
		<updated>2025-08-04T20:37:12Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: Added clarification for newer players that burner inserters don&amp;#039;t directly pollute&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Burner inserter}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;burner inserter&#039;&#039;&#039; is the most basic and slowest type of [[inserters]]. It is powered by burning [[fuel]], compared to the more advanced inserters which are powered by [[electric system|electricity]]. It will add fuel to its own supply if it picks any up, which makes it useful for filling [[boiler|boilers]] with [[coal]]. This has the advantage that it will continue working even if the power fails, as opposed to electrically-powered inserters which will be unable to function. It consumes no fuel while idle, though it consumes vastly more energy than most other inserters when active.&lt;br /&gt;
&lt;br /&gt;
Even though it doesn&#039;t use electricity, a burner inserter can be connected to and controlled by the [[logistic network|logistic]] and the [[circuit network]].&lt;br /&gt;
&lt;br /&gt;
Burner Inserters do not directly produce any pollution in their operation. A common misconception implied by the early game is anything that runs on burner power must be polluting (e.g. burner miner, boiler, furnace, etc.). Pollution is only ever produced by buildings, not entities like inserters or vehicles, and non burning buildings like assemblers also pollute. For more information reference the dedicated page on Pollution. Burner Inserters can still indirectly contribute to pollution significantly by consuming excessive amounts of fuel, which costs pollution to gather, so be mindful of that.&lt;br /&gt;
&lt;br /&gt;
== Fuel consumption ==&lt;br /&gt;
&lt;br /&gt;
A burner inserter consumes no power while idle and does not continuously consume the maximum amount of power when working. Burner Inserters spawn with an internal energy buffer of 500 kJ, represented as 25% the value of a piece of wood fuel (which is 2MJ). Aside from not having drain, all its other power characteristics are identical to the rest of the inserters. It simply pulls its joules from its fuel rather than your power grid. For more detailed information on inserter power characteristics you can reference the main page [[Inserters|here]].&lt;br /&gt;
&lt;br /&gt;
Burners also have a behavior known as &amp;quot;leeching&amp;quot; where they will pull fuel from their input and commandeer it for their own use. This leeching behavior is not exactly quantified, but it is triggered whenever the internal fuel inventory reaches zero, and performing the action also consumes fuel since motion is never free.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{history|2.0.7|&lt;br /&gt;
* All inserters now have filter option.&lt;br /&gt;
* Energy consumption increased from 94.2 kW to 144 kW.&lt;br /&gt;
* Burner inserters now reliably pick up items off of [[fast transport belt]]s and [[express transport belt]]s.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.2|&lt;br /&gt;
* Inserters connected to the circuit network now have the option to only read hand contents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Inserters can now send the item held in hand to the circuit network.&lt;br /&gt;
* Inserters are able to squeeze things &#039;&#039;slightly&#039;&#039; better to belts.&lt;br /&gt;
* All types of inserters can be controlled by the circuit and logistic network, once the respective network is researched.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.16|&lt;br /&gt;
* Improved burner inserter&#039;s fuel searching logic; it will now search both transport belt lines for fuel}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.11|&lt;br /&gt;
*  Burner inserter now grabs fuel for itself even if the target doesn&#039;t need it}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.2|&lt;br /&gt;
* Inserters will never take more than the max stack size of an item.&lt;br /&gt;
* Inserters and logistic robots no longer extract from enemy chests&lt;br /&gt;
* Inserters now correctly pick up items from splitters&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* Burner inserters start with enough energy to pick up 1 item and fuel themselves.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Inserters can now extract from roboports and beacons.&lt;br /&gt;
* Inserters now take items from right behind them, not from the center of the pickup target entity.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* New icon&lt;br /&gt;
* New sounds}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.2|&lt;br /&gt;
* Inserters can have arbitrary pickup and insert positions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.0|&lt;br /&gt;
* Inserter code optimisation, inserters that have nothing to do will sleep.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.0|&lt;br /&gt;
* Improved inserter&#039;s ability to pull from train wagons.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.7.1|&lt;br /&gt;
* Fast inserter now has the same speed as the smart inserter.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.5.0|&lt;br /&gt;
* Inserter can now pick up up to 5 items when researched.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.4.0|&lt;br /&gt;
* Smaller inserter bounding box}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.3.0|&lt;br /&gt;
* New Inserter graphics}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.2.1|&lt;br /&gt;
* The item in the hand of the inserter is returned to the player when mined.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.2.0|&lt;br /&gt;
* Show direction of inserter}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Inserters]]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Enemies&amp;diff=213937</id>
		<title>Talk:Enemies</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Enemies&amp;diff=213937"/>
		<updated>2025-05-10T21:21:42Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Fire Resistance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.factorioforums.com/forum/viewtopic.php?f=18&amp;amp;t=2011&lt;br /&gt;
&lt;br /&gt;
== Update required! ==&lt;br /&gt;
&lt;br /&gt;
The new update (.11) added Spitters. Please update :)&lt;br /&gt;
I&#039;ll link here from the Quick Start Guide, so it&#039;s important that this gets updated&lt;br /&gt;
&lt;br /&gt;
== Attack speed ==&lt;br /&gt;
&lt;br /&gt;
What are the the attack speeds of the various enemies?&lt;br /&gt;
:Here are the attack speeds of various enemies. They were measured by using Audacity to record attack sound effects and find the interval between them.&lt;br /&gt;
:* Small Biter - 1.7/s&lt;br /&gt;
:* Medium Biter - 1.7/s&lt;br /&gt;
:* Big Biter - 1.7/s&lt;br /&gt;
:* Behemoth Biter - 1.2/s&lt;br /&gt;
&lt;br /&gt;
:*Small Spitter - 0.46/s&lt;br /&gt;
:*Medium Spitter - 0.46/s&lt;br /&gt;
:*Big Spitter - 0.46/s&lt;br /&gt;
:*Behemoth Spitter - 0.46/s&lt;br /&gt;
&lt;br /&gt;
:*Small Worm - 0.91/s&lt;br /&gt;
:*Medium Worm - 0.65/s&lt;br /&gt;
:*Big Worm - 0.65/s&lt;br /&gt;
&lt;br /&gt;
:I&#039;ll add them into the table now. [[User:Swordstone|Swordstone]] ([[User talk:Swordstone|talk]]) 18:28, 22 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The &amp;quot;Advanced: Evolution factor components and computation&amp;quot; box is outdated ==&lt;br /&gt;
&lt;br /&gt;
The box uses the pre 0.13 formula for the evolution factor, that doesn&#039;t use the squared factor. It contradicts the description above and it can&#039;t be used in the current version. Imo it can be deleted. --[[User:Unique 2|Unique 2]] ([[User talk:Unique 2|talk]]) 23:09, 9 August 2022 (UTC)&lt;br /&gt;
: Thank you for pointing this out and thank you to [[User:Vornicus]] for updating the relevant text and removing the rest! -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 14:29, 7 October 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Evolution pollution equivalent ==&lt;br /&gt;
&lt;br /&gt;
Adding context here because the numbers were added without further context: Pollution equivalent for the different sources is &amp;lt;code&amp;gt;source_evo_increase ÷ pollution_evo_increase&amp;lt;/code&amp;gt;. So it is dependent on the map settings. For the table with evo factor and pollution equivalent it&#039;s based on the pollution only evolution factor explained in the advanced section, see also the chart there. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:19, 1 March 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Update to 2.0 ==&lt;br /&gt;
&lt;br /&gt;
So, Space Age should be out by now (haven&#039;t had the chance to play yet). Judging by the FFFs, that means most of this page is now Nauvis-exclusive.&lt;br /&gt;
&lt;br /&gt;
This page is long enough as is, so I propose moving this page&#039;s Nauvis-exclusive content to a new page (such as [[Enemies (Nauvis)]]), creating new pages for Gleba and Vulkanus (such as [[Enemies (Gleba)]] and either [[Enemies (Vulkanus)]] or [[Demolisher]]), and keeping this page with information applicable to all planets with enemies along with links to the new pages documenting each planet&#039;s own hostile biosphere.&lt;br /&gt;
&lt;br /&gt;
This is a major change, and we&#039;re still early in the 2.0 update phase (and I&#039;m a new editor on this wiki), so I&#039;d rather play it safe than do this without any input. So: Any thoughts?&lt;br /&gt;
&lt;br /&gt;
-[[User:Tecanec|tecanec]] ([[User talk:Tecanec|talk]]) 06:39, 21 October 2024 (UTC)&lt;br /&gt;
: Since the Space Age expansion is paid, not everyone will play with the different planets. So I&#039;m a bit hesitant to remove the nauvis enemies from the general overview. But I agree that the different planet enemies should have their own pages. I&#039;m wondering what mechanics will be similar between the different enemy types that would stay on the general overview. For example, demolishers don&#039;t have evolution and pollution and the defense section from this page also doesn&#039;t apply. Maybe we could have this page state something like &amp;quot;this is about nauvis enemies, for other planets see enemies (gleba) and enemies (vulcanus)&amp;quot; and separate it that way? Also, the expansion comes out in a few hours, it&#039;s not quite released yet ;) -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 08:15, 21 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Fair point about the non-expansion owners - we don&#039;t want to make anyone feel uncomfortable or left out by just assuming that everyone has the expansion. So, should this page be moved to Enemies (Nauvis), or should we make Enemies (Nauvis) a redirect to this page? Or should we just not have it at all? Also, if something applies to enemies on all planets, where should it go? Do we just keep it here and make this an &amp;quot;enemies not strictly found on a planet that isn&#039;t Nauvis&amp;quot;-page? - [[User:Tecanec|tecanec]] ([[User talk:Tecanec|talk]]) 08:49, 21 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Stomper damage ==&lt;br /&gt;
&lt;br /&gt;
I think it will be nice to have stomper impact damage on the page, as it doesn&#039;t show it in-game. [[User:Iridium235|Iridium235]]  ([[User talk:Iridium235|talk]]) 23:41, 18 January 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Also for demolisher ground explosion? [[User:Iridium235|Iridium235]]  ([[User talk:Iridium235|talk]]) 6:53, 21 January 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fire Resistance ==&lt;br /&gt;
&lt;br /&gt;
The wiki page for the [[Flamethrower turret]] says enemies have a fire resistance value of 3, so I&#039;m wondering why this isn&#039;t included anywhere on this page alongside the other resistances?&lt;br /&gt;
&lt;br /&gt;
--[[User:GregFirehawk|GregFirehawk]] ([[User talk:GregFirehawk|talk]]) 21:21, 10 May 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Enemies&amp;diff=213936</id>
		<title>Talk:Enemies</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Enemies&amp;diff=213936"/>
		<updated>2025-05-10T21:21:24Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Fire Resistance */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.factorioforums.com/forum/viewtopic.php?f=18&amp;amp;t=2011&lt;br /&gt;
&lt;br /&gt;
== Update required! ==&lt;br /&gt;
&lt;br /&gt;
The new update (.11) added Spitters. Please update :)&lt;br /&gt;
I&#039;ll link here from the Quick Start Guide, so it&#039;s important that this gets updated&lt;br /&gt;
&lt;br /&gt;
== Attack speed ==&lt;br /&gt;
&lt;br /&gt;
What are the the attack speeds of the various enemies?&lt;br /&gt;
:Here are the attack speeds of various enemies. They were measured by using Audacity to record attack sound effects and find the interval between them.&lt;br /&gt;
:* Small Biter - 1.7/s&lt;br /&gt;
:* Medium Biter - 1.7/s&lt;br /&gt;
:* Big Biter - 1.7/s&lt;br /&gt;
:* Behemoth Biter - 1.2/s&lt;br /&gt;
&lt;br /&gt;
:*Small Spitter - 0.46/s&lt;br /&gt;
:*Medium Spitter - 0.46/s&lt;br /&gt;
:*Big Spitter - 0.46/s&lt;br /&gt;
:*Behemoth Spitter - 0.46/s&lt;br /&gt;
&lt;br /&gt;
:*Small Worm - 0.91/s&lt;br /&gt;
:*Medium Worm - 0.65/s&lt;br /&gt;
:*Big Worm - 0.65/s&lt;br /&gt;
&lt;br /&gt;
:I&#039;ll add them into the table now. [[User:Swordstone|Swordstone]] ([[User talk:Swordstone|talk]]) 18:28, 22 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The &amp;quot;Advanced: Evolution factor components and computation&amp;quot; box is outdated ==&lt;br /&gt;
&lt;br /&gt;
The box uses the pre 0.13 formula for the evolution factor, that doesn&#039;t use the squared factor. It contradicts the description above and it can&#039;t be used in the current version. Imo it can be deleted. --[[User:Unique 2|Unique 2]] ([[User talk:Unique 2|talk]]) 23:09, 9 August 2022 (UTC)&lt;br /&gt;
: Thank you for pointing this out and thank you to [[User:Vornicus]] for updating the relevant text and removing the rest! -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 14:29, 7 October 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Evolution pollution equivalent ==&lt;br /&gt;
&lt;br /&gt;
Adding context here because the numbers were added without further context: Pollution equivalent for the different sources is &amp;lt;code&amp;gt;source_evo_increase ÷ pollution_evo_increase&amp;lt;/code&amp;gt;. So it is dependent on the map settings. For the table with evo factor and pollution equivalent it&#039;s based on the pollution only evolution factor explained in the advanced section, see also the chart there. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:19, 1 March 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Update to 2.0 ==&lt;br /&gt;
&lt;br /&gt;
So, Space Age should be out by now (haven&#039;t had the chance to play yet). Judging by the FFFs, that means most of this page is now Nauvis-exclusive.&lt;br /&gt;
&lt;br /&gt;
This page is long enough as is, so I propose moving this page&#039;s Nauvis-exclusive content to a new page (such as [[Enemies (Nauvis)]]), creating new pages for Gleba and Vulkanus (such as [[Enemies (Gleba)]] and either [[Enemies (Vulkanus)]] or [[Demolisher]]), and keeping this page with information applicable to all planets with enemies along with links to the new pages documenting each planet&#039;s own hostile biosphere.&lt;br /&gt;
&lt;br /&gt;
This is a major change, and we&#039;re still early in the 2.0 update phase (and I&#039;m a new editor on this wiki), so I&#039;d rather play it safe than do this without any input. So: Any thoughts?&lt;br /&gt;
&lt;br /&gt;
-[[User:Tecanec|tecanec]] ([[User talk:Tecanec|talk]]) 06:39, 21 October 2024 (UTC)&lt;br /&gt;
: Since the Space Age expansion is paid, not everyone will play with the different planets. So I&#039;m a bit hesitant to remove the nauvis enemies from the general overview. But I agree that the different planet enemies should have their own pages. I&#039;m wondering what mechanics will be similar between the different enemy types that would stay on the general overview. For example, demolishers don&#039;t have evolution and pollution and the defense section from this page also doesn&#039;t apply. Maybe we could have this page state something like &amp;quot;this is about nauvis enemies, for other planets see enemies (gleba) and enemies (vulcanus)&amp;quot; and separate it that way? Also, the expansion comes out in a few hours, it&#039;s not quite released yet ;) -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 08:15, 21 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Fair point about the non-expansion owners - we don&#039;t want to make anyone feel uncomfortable or left out by just assuming that everyone has the expansion. So, should this page be moved to Enemies (Nauvis), or should we make Enemies (Nauvis) a redirect to this page? Or should we just not have it at all? Also, if something applies to enemies on all planets, where should it go? Do we just keep it here and make this an &amp;quot;enemies not strictly found on a planet that isn&#039;t Nauvis&amp;quot;-page? - [[User:Tecanec|tecanec]] ([[User talk:Tecanec|talk]]) 08:49, 21 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Stomper damage ==&lt;br /&gt;
&lt;br /&gt;
I think it will be nice to have stomper impact damage on the page, as it doesn&#039;t show it in-game. [[User:Iridium235|Iridium235]]  ([[User talk:Iridium235|talk]]) 23:41, 18 January 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Also for demolisher ground explosion? [[User:Iridium235|Iridium235]]  ([[User talk:Iridium235|talk]]) 6:53, 21 January 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fire Resistance ==&lt;br /&gt;
&lt;br /&gt;
The wiki page for the [[Flamethrower turret]] says enemies have a fire resistance value of 3, so I&#039;m wondering why this isn&#039;t included anywhere on this page alongside the other resistances?&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213932</id>
		<title>Talk:Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213932"/>
		<updated>2025-05-10T09:08:48Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Multiplication sign notation */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [https://forums.factorio.com/viewtopic.php?f=7&amp;amp;t=22#p71]&lt;br /&gt;
&lt;br /&gt;
Removed. But eventually helpful. [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 02:45, 31 December 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Changes for 0.17 ==&lt;br /&gt;
&lt;br /&gt;
The faster belt speeds probably change the results for some of the entries in these tables. It looks like they haven&#039;t been updated yet. --[[User:Omnifarious|Omnifarious]] ([[User talk:Omnifarious|talk]]) 14:59, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
They have been updated by [[User:Bilka|Bilka]] in [[Special:PermanentLink/172015|This revision]]. --[[User:Swan|Swan]] ([[User talk:Swan|talk]]) 17:19, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
&lt;br /&gt;
I updated this wiki to show ticks per turn in the inserter speed section. My results seem to clash with the previous information about rotation speed (102 ticks = 1.7 seconds, there is a discrepancy between the rotation time of burner inserters most notably). The experiment I performed was done on vanilla factorio 0.14.22. I used two steel chests with varying inserters for each experiment. The inserters were fully powered at all times. The first chest is wired to a combinator which tests for any items in the chest, and outputs 1 signal X. This signal is added to a tallying arithmetic combinator. This arithmetic combinator is wired to itself, and outputs T + X. The value of T at setup is 0. I begin this experiment by placing large stacks of items into the first chest. I place only 201 transfers worth of material into the chest. This will stop the timer as soon as the last item is removed, which occurs after 200 transfers. With this setup I obtained the results as I have reported them. The timer always stopped on a multiple of 200, indicating that the number of ticks per full turn is an integer number. This is why I decided to add a separate column for this value. I may in the future update the other rotation speed metrics to match my results. --[[User:Reububble|Reububble]] ([[User talk:Reububble|talk]]) 18:19, 8 March 2017 (UTC)&lt;br /&gt;
:Which orientation were the inserters? Inserters facing north have lower throughput, might mean they have slower rotation speed. --[[User:Artorp|Artorp]] ([[User talk:Artorp|talk]]) 20:47, 5 April 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== put the &amp;quot;Inserters And Transport Belt Interaction&amp;quot; examples in a table so they are side by side ==&lt;br /&gt;
&lt;br /&gt;
i see why that was a bad idea, but i would rather see them side by side if it were possible to make a table that, when the horizontal space it has to display is smaller than all 4 makes it so there are 3 and on another &amp;quot;line&amp;quot; another 1 or 2x2 or all underneath one another like it is now.&lt;br /&gt;
&lt;br /&gt;
: I put them in a 2x2 square; I think that&#039;s the best way to see all of them at once. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 13:17, 14 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Problem with translation ==&lt;br /&gt;
&lt;br /&gt;
Could someone explain to me what it is &#039;&#039;&#039;Extension Speed&#039;&#039;&#039; and why it is expressed in &#039;&#039;&#039;Tiles per Tick&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a translation and can not find a word - without knowing what it is ;){{unsigned|JakubSTR|08:43, 6 March 2018‎}}&lt;br /&gt;
&lt;br /&gt;
:I&#039;d describe extension speed as how fast the inserter &amp;quot;extends&amp;quot;, so in this case how fast its arm gets longer/shorter to be able to reach an item on the far or near side of the belt. It&#039;s expressed in tiles per tick because that is a unit of speed, just like meters per second :) An inserter that has an extension speed of 1 tile per tick needs 1 tick to make its arm longer by a whole tile. I hope this helps. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:11, 6 March 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiplication sign notation ==&lt;br /&gt;
&lt;br /&gt;
To Cardinal, why are you changing all the multiplication signs from &amp;quot; * &amp;quot; to &amp;quot; x &amp;quot;? This is less proper notation mathematically, and can cause confusion algebraically which is why the * notation exists. I don&#039;t see any benefit to explicitly make this change which is arguably less correct.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213670</id>
		<title>Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213670"/>
		<updated>2025-04-30T03:31:28Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Power usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;For the common yellow electrical inserter, see [[Inserter]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inserters&#039;&#039;&#039; are devices which are used to move items over short distances. When placed, they have a fixed direction. They can move items from behind and place them in front of them. By doing this, they can move items from one transport belt to another, but also extract items from—and insert items into—machines or storage devices.&lt;br /&gt;
&lt;br /&gt;
== Types of inserters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| {{Imagelink|Burner inserter}} || The only [[fuel]]-powered inserter, with the slowest speed.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Inserter}} || The standard electrical inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Long-handed inserter}} || Capable of inserting and removing items from a greater distance.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Fast inserter}} || Much faster than the inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Bulk inserter}} || As fast as the fast inserter, but can move many more items at the same time at once.    &lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Stack inserter|space-age=yes}} || As fast as the bulk inserter, but can stack items on a belt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mechanics ==&lt;br /&gt;
Inserters &#039;&#039;&#039;will&#039;&#039;&#039;:&lt;br /&gt;
* Pick up items off the ground, off of a [[Transport belts|transport belt]], or from any object that has storage space, such as [[Chests|chests]], [[furnace]]s [[assembling machine]]s or [[vehicle]]s.&lt;br /&gt;
* Place the item onto the ground, onto a transport belt, or into any object that has storage space.&lt;br /&gt;
* Run at slower speeds when starved for energy.&lt;br /&gt;
* Pick up as many items as their [[inserter capacity bonus (research)|stack size]] allows at once, if they do not have to wait too long to pick them up.&lt;br /&gt;
* Pick up items and drop them into the void of space or lava, permanently destroying them. This is useful for getting rid of unwanted items.&lt;br /&gt;
&lt;br /&gt;
Inserters &#039;&#039;&#039;will not&#039;&#039;&#039;:&lt;br /&gt;
* Pick up any items that cannot be inserted into the adjacent entity.&lt;br /&gt;
* Pick up any items if the adjacent entity is a [[ghost]].&lt;br /&gt;
* Pick up items to place into an entity with a full inventory.&lt;br /&gt;
* Place more than one item at a time onto the same ground tile.&lt;br /&gt;
* Place items into an entity that cannot hold them, for example due to [[Stack#Filtered_stacks|filtered]] or [[Stack#Stack_limitation|limited slots]].&lt;br /&gt;
* Fill up the entire target inventory of [[boiler]]s, [[nuclear reactor]]s, [[:Category:Producers|production building]]s, [[furnace]]s and [[turret]]s.&lt;br /&gt;
&lt;br /&gt;
If two or more inserters are picking up from the same tile, the inserter who can grab the items the fastest will grab them first. Besides faster inserters, this favors inserters taking from the inner lane of a transport belt.&lt;br /&gt;
&lt;br /&gt;
=== Insertion limits ===&lt;br /&gt;
Depending on where an inserter is moving items, it does not always fill up the entire target inventory. This allows other inserters taking from the same transport belt to pick up their share of the items. For example, if a boiler has 5 or more items of fuel in it, an inserter will not insert additional fuel. This allows the other fuel to travel further down the transport belt. When the fuel drops below 5 items, the inserter will resume inserting fuel, up to the limit of 5 items.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Entity !! Item type !! Automatic insertion limit&lt;br /&gt;
|-&lt;br /&gt;
| [[Boiler]]s, [[burner inserter]]s, [[furnace]]s, and [[nuclear reactor]]s || [[Fuel]] || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Gun turret]]s || Bullet Magazines || align=&amp;quot;center&amp;quot; | 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Artillery turret]]s || [[Artillery shell]]s || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Assembling machine]]s, [[furnace]]s, [[centrifuge]]s, [[chemical plant]]s, and [[Oil refinery|oil refineries]]|| Items needed for the recipe || The ingredients for 1 craft in addition to the ingredients for the number of crafts that can be completed during one full inserter swing; but at least the ingredients for 2 crafts and at most the ingredients for 100 crafts.[https://forums.factorio.com/viewtopic.php?p=309796#p309796]&lt;br /&gt;
|-&lt;br /&gt;
| [[Lab]]s || [[Science pack]]s || The number of science packs needed for one research unit in addition to the science packs for the number of research units that can be completed during one full inserter swing; but at least the ingredients for 2 research units and at most the ingredients for 100 research units.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An inserter that has a higher [[inserter capacity bonus (research)|inserter capacity bonus]] than 1 can overfill the target building, due to the inserter picking up a higher amount of items than needed. Overfilling can also occur if  multiple inserters are used to insert items into one building.&lt;br /&gt;
&lt;br /&gt;
=== Inserters and transport belts ===&lt;br /&gt;
[[Transport belts]] have two lanes on which items can travel. Inserters only place items onto one side of the belt, either the far side from the inserter&#039;s perspective or if the belt is going the same or the opposite direction as the inserter the right side from the belt&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | [[File:Inserter_dropoff_locations.gif]] || [[File:Inserter_pickup_locations.gif]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | Inserters place the item on the furthest lane. If a belt is in the same orientation as the inserter, the item will be placed on the right-hand lane, from the belt&#039;s perspective. In curves the inserter always places on the far side.&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | If the belt is perpendicular to the inserter, inserters &#039;&#039;&#039;prefer&#039;&#039;&#039; taking items from the nearest lane. If the nearest lane is empty, the inserter will take from the far lane. If the belt is the same/opposite orientation of the inserter or a curve, the inserter &#039;&#039;&#039;prefers&#039;&#039;&#039; taking from the left lane, from the belt&#039;s perspective. If the left lane is empty it will take from the right lane.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Potential issues ===&lt;br /&gt;
Inserters may have problems picking up items:&lt;br /&gt;
&lt;br /&gt;
* From very fast belts, because the items are moving too quickly.&lt;br /&gt;
* From the entry or exit of an underground belt (because the time they have to pick up is shorter)&lt;br /&gt;
* From turning belts if the item is on the inside of the corner&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
[[File:all_inserter_speeds.gif|frame|right|Animation showing all inserter speeds at once.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Rotation-speed (turns per [[Time#Ticks|tick]])&amp;lt;br/&amp;gt;Extension-speed ([[Map_structure#Tile|Tiles]] per Tick)&lt;br /&gt;
! Turns per [[Time#Seconds|Game-second]]&lt;br /&gt;
! Game-second per full turn&lt;br /&gt;
! Ticks per full turn&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.013&amp;lt;br/&amp;gt;0.035 || ~0.7895 || ~1.267 || 76&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.014&amp;lt;br/&amp;gt;0.035 || ~0.857 || ~1.167 || 70&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 0.02&amp;lt;br/&amp;gt;0.05 || 1.2 || 0.833 || 50&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}}&amp;lt;br/&amp;gt;{{Imagelink|Bulk inserter}} || 0.04&amp;lt;br/&amp;gt;0.1 || 2.5 || 0.4 || 24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The speeds per tick come directly from the [https://github.com/wube/factorio-data/tree/master/base/prototypes/entity factorio-data github repository], while the other values have been verified empirically in game. Discrepancies are due to rounding errors during the games runtime, so the empirical values are more accurate when dealing with speeds.&lt;br /&gt;
&lt;br /&gt;
=== Rotation Speed ===&lt;br /&gt;
Convention: 2π rad = 100% of a circle rotation = &#039;&#039;&#039;1 turn&#039;&#039;&#039; (or one full rotation).&lt;br /&gt;
&lt;br /&gt;
Note: an Inserter doesn&#039;t always need to make full turns. When grabbing from a transport belt, it is slightly faster when grabbing items from the closest lane.&lt;br /&gt;
&lt;br /&gt;
Note: If the rotation speed of an inserter would result in an odd number of ticks per full turn, the actual number of ticks per full turn for this inserter is truncated to be the next lowest even number. The reason for this is that the inserter needs to do two half turns to pick and drop an item. This takes a certain number of ticks two times, therefore the number of ticks for the full turn is always an even number. Example: The Fast inserter&#039;s rotation speed of 864°/s or 0.04 turns per tick would result in 25 ticks per full turn, but the inserter cannot do a half turn in &amp;quot;12.5 ticks&amp;quot;, so it actually takes 2*12 = 24 ticks per full turn.&lt;br /&gt;
&lt;br /&gt;
=== Extension Speed ===&lt;br /&gt;
The extension-speed is normally not visible (only when compared to other inserters), but there are measurable speed differences when taking - for example - from the near or the far side of a belt. Also Some mods can alter the pickup and drop locations of inserters, making this stat more relevant.&lt;br /&gt;
&lt;br /&gt;
== Inserter Throughput ==&lt;br /&gt;
&lt;br /&gt;
=== Chest to chest ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 2.0.26, recorded in this doc [https://docs.google.com/spreadsheets/d/1L8Td5o6TAicGi-TPwzh4lz2YiH0n7Jkpp3E8FxNpnAs/edit?usp=sharing]. Chest to chest transfer transfers the entire hand size during a single tick, so most of the time is spent during the swing to and from.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=2 | Type&lt;br /&gt;
! rowspan=2 | Arm cycles per second (ticks per cycle)&lt;br /&gt;
! colspan=8 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | No capacity bonus&lt;br /&gt;
! colspan=2 | Capacity bonus 2&lt;br /&gt;
! colspan=2 | Capacity bonus 7&lt;br /&gt;
! colspan=2 | Transport belt stacking {{SA}}&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || {{Quality | 0.79 (76 ticks) | 1.03 (58 ticks) | 1.25 (48 ticks) | 1.5 (40 ticks) | 2 (30 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.79 |1.03 |1.25|1.5 |2 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.58 |2.07 |2.5|3 |4 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.37 |3.10 |3.75|4.5 |6 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.16 |4.14 |5|6 |8 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || {{Quality | 0.86 (70 ticks) | 1.03 (58 ticks) | 1.36 (44 ticks) | 1.67 (36 ticks) | 2.14 (28 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.86 |1.11 |1.36|1.67 |2.14 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.71 |2.22 |2.73|3.33 |4.29 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.57 |3.33 |4.09|5 |6.43 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.43 |4.44 |5.45|6.67 |8.57 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || {{Quality | 1.2 (50 ticks) | 1.58 (38 ticks) | 2 (30 ticks) | 2.31 (26 ticks) | 3.33 (18 ticks) }}&lt;br /&gt;
 || {{ Quality | 1.2 |1.58 |2|2.31 |3.33 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 2.4 |3.16 |4|4.62 |6.67 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 3.6 |4.74 |6|6.92 |10 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 4.8 |6.32 |8|9.23 |13.33 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 2.5 |3.33 | 4.29 | 5 | 7.5 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 5 |6.67 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 7.5 |10 |12.86|15 |22.5 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 5 |6.673 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Stack inserter}}{{SA}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 15 |20 | 25.71 | 30 | 45 }}&lt;br /&gt;
 || (6)&lt;br /&gt;
 || {{ Quality | 20 |26.67 | 34.29 | 40 | 60 }}&lt;br /&gt;
 || (8)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to belt ===&lt;br /&gt;
Throughput going from chest to belt depends on how full the belt is. An inserter will not put down an item on a belt that have items back-to-back (aka full compression) - it waits until there is a gap. However, if the gap is narrower than the item then the items upstream on the belt will stop to make room for the item being inserted. The direction of the belt compared to the inserter does not matter however.&lt;br /&gt;
&lt;br /&gt;
In these measurements inserters move items onto an empty belt. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=3 | Type&lt;br /&gt;
! colspan=12 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | No capacity bonus&lt;br /&gt;
! colspan=4 | Capacity bonus 2&lt;br /&gt;
! colspan=4 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || 0.60 || 0.60 || (1) || 1.19 || 1.19 || 1.19 || (2) || 1.67 || 1.73 || 1.76 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.83 || 0.83 || 0.83 || (1) || 1.64 || 1.64 || 1.64 || (2) || 2.25 || 2.37 || 2.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.20 || 1.20 || 1.20 || (1) || 2.35 || 2.35 || 2.35 || (2) || 3.10 || 3.33 || 3.46 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || 2.31 || 2.31 || 2.31 || (1) || 4.44 || 4.44 || 4.44 || (2) || 5.29 || 6.00 || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.44 || 4.44 || 4.44 || (2) || 5.71 || 7.06 || 7.74 || (4) || 6.79 || 10.91 || 13.85 || (12)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to splitter ===&lt;br /&gt;
When an inserter drops items onto the side of a perpendicular splitter, it always is considered to do so on the input side, enabling the splitter to move half of the items to the other belt (assuming that the splitter filter/priority settings allow it to do so and that there is available space on both belts). This allows the inserter to drop its items twice as fast. A fully upgraded bulk inserter can drop twelve items onto an express splitter every 38 ticks (18.95 items/second) instead of the usual 52.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter to splitter comparison.png|621px|thumb|center|By inserting onto the side of a splitter, a fully-upgraded bulk inserter can fill 84% of an express belt lane instead of the usual 62%.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter belt saturation.png|414px|thumb|center|Three bulk inserters can saturate an express belt if one of them inserts onto a splitter.]]&lt;br /&gt;
&lt;br /&gt;
===Belt to chest (perpendicular)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The following is based on experimental data from [https://docs.google.com/spreadsheets/d/1Q4hxL69qrK3qeEKU8aDkuwM3gJy6I2dJ4FYSs-FQUpI/edit?usp=sharing 1.1].    &lt;br /&gt;
Most of the 1.1 experimental data was gathered using the following circuit blueprint to measure the exact tick difference between inserter swings. A lot of the data on this page (specifically the belt to chest data) relies heavily on the conditions of the setup on which the measurements are done. If your setup differs from the ones tested on this page, you can use the following blueprint to do the measurements yourself.&lt;br /&gt;
&lt;br /&gt;
{{BlueprintString|bp-string=0eNrtXF1v4kYU/SuRq75UkMz32GhbKY996FvfuivkwBCsBYNss20U8d87NiHAwMVzHdjsKKtIURzb1zPn3K85Y3iOHmYrsyyyvIoGz9HYlKMiW1bZIo8G0V8mLVeFKW+yvDRFZYqbalosVo/T5aq6WeVj+49xNpmYwuTVzWiRj7P6xvL2c/45n1bVshzc3f2bfc1uJ+moWhTZ4na0mN/9+WKs/GX71/DvV7Of86gXZdZWGQ3+eY7K7DFPZ/XIqqelsUPKKjO3V+TpvD4qq3T0tb8dXbS2t9pR/RcN6LrXenNaZNV0bqps1LfDesjy1I5xzwZbf+lFdmZ2UmYzmubgaZiv5g/2aQPaYqoXLRdltsHyObIW+/pW9qIn+we3jxlnhRltzopeZKdcFYvZ8MFM02+ZvdvesjM73KFbn5hkRVkNj+b3LSuqlf3PDp/miv59PavS1DZqQxa1mm1KetFiaYr0he07e99iVVkSUJbX62bw+WYuzfBo/asw433QMnvE7ZVZMVplVXNI11/svQy4mEp7el3z6MDO0LCr94HdpKPpHvI4uvaZ+fSpAzWbpyPYkUfs9KLHwpi8hUa2o/Hk5VQBRHI0kfJHjp9frx4/1GWod3Ca8RYm2HH8neJFoHnhHzuvKUxea1g6BbtEw85+5jUPdtj5qNFgnlO4PMcEQKxCE0s/dp4T5xnjtIUJ6Zfn9Osot5M9zwrZsmLjbn2aiUk2qzvb070rBA6JGmurGuw+JVonXFEWtzSzkDV6YI3HgjLC2V5XizHGDowlhBCaaLqzxlHW+J41O0+uBY2ZeDUmUMbEwdCojmWSiD1rEmVNHnKQCE05FztrCmVN7VljVHAWJ/vGNMqYPhialDROmIjJq7UYZS0+sKY4lbFgUr1aS1DWkgNrzP5IHu9ZowRl7v7kVHfWNoHftZ89zCKJX5KIscmbfOxeiFJMM8Qh2BMs7PRnL+TBDtzsuLy1dTucAczVLvcyyrEZZWNTnOVNvLDWlNQ93tRp3l5Mvo20NH+qpln+uMk221gh9cF8mRbNQAfRHx0IqSFvjC6fhk0eG06KxXyY5dZKNJiks9JAbJ1mhZ/XSNgRaRC9nms/iha12MfuVeOWXjVpiSPPMkTRqpfY71XbA+tSvLxEwBEzfXrIzG9dowsXPwTMaqfC6ehqh0zlSRaHFOojlnT7mmL7xPlibIaLyXAPxT0lrjDpeDhNN5hXdkAWmapYmd0VzcnmstpS46rdgQSnvhOPynk6m/Vn6Xx5Yi0Vb+dNt/P2G4cg0IN38sncjLPVvG9m1mJho2S5mJlzQyDgENo1uKYK2ieb7HH6sFg1Sz/Ge5x+OTVG5QeOPgIHdIrXWO0QquR8/fsUoUKNnY8dGkPEaT9Q1PcBhV4UFJpAs46RrkCuOmt22Vkrh3wBNosJkvzrwsAvC4N2YYCkX0b8YJBBJgaIfEb9Zi261goNPZgh4b6u14nLwk1cr4P23xjHlkzRqWTy8y2yaK+otrjz5FRFZZ7tBg8xcOT5ispAXqUfKCzEisrAoFZIVwipojLhkC+hPphpJPkhVVQmXRigdQjz7K9oiImBg+R7tlOkY0WV0Ds5nCDhDqqixq7XQTu9nGIrKulUUdX5ihq/oaJyv96IhBg3SYu8A9LKvTChIdZTDoa0wDlCSOWUu9RLSJ3gEkd9SNWUcxcFSK3gqsueDv2eezqvOy8/yHaO327N2a0B5blnw/1aPhZkqwMGZoybdEgNB3eFIwUJRzxBNhy8m+jd8uap1m9QxQXBbRkQXM9K3aWTAN97pbiB4LcuHFahBbxgOHH4ur4tLyuKus20gLouwXHa8HVRUJfeF3BQgNowIXC+cN3kri+KgnDbMAWJO0LifIEG1IYJtw1TUM0TCqdbh5QXmOsLAkRB47YNkPWCHenTUFcsYhwd13XK+LJO6W7hKRCFBEcHfhPH6TUg8UsSnAAcVHS4dEhoU01SnP4bUtVkri9I8LM0DOcLIVVN6faRGmpoJcf5QkhVUx6tQcCIEDhtOqS8wF1fkNCaQkrc1gC2aroNrYRaOalwdIRUNaW71tRggtI4OvAbNc5AoFWWjFEyb1DB4bKhwNYhQam8IdVM7nqCgqqFIihPCKpkuqKDhpbbiqI8IaiK6aZoDdUKxTrI/cRV+9n3VPv5ETaXVvvrl6lxkafObzcqhnk3XQnfr2fw3TZQHKWgB5X53XhXYLyLDq5O39XVXWx+7/YZl4tta6mWN7/dzYG2T2+fuv4kdRLlvyH1kcqVBDUkhimF27NgSPUFBF/jZGl2VfSTy2pfwleQVTFOlr4uCveXRUEei/OekqBKcMIoC6i0iNjXOTTBCaPY0ITQ1xSnfYUUmpL5qj6a4bSvkEJT8mMF0FN30BynvoQUmlJ5O4fAqS/I0AS1Ly1RS+yQIlMR39WlVqgldkiBqeixzuDZyGndYSHC3nUhwi6w5r7vuOJ+2wpZ4FYs51fm9Uf8e29bymjcy2whJWUlT+cFC1nzdayDvS+g7UWz9MHYMUbbb4a9eUxXj/VrbN9MUW48PKZCJ0xLQbkkcr3+HxANddo=}}&lt;br /&gt;
&lt;br /&gt;
When picking items from a belt, many more factors come into play besides belt fullness:&lt;br /&gt;
&lt;br /&gt;
* How fast the items move (i.e. if they are queued up on the belt or move at belt speed).&lt;br /&gt;
* Whether the belt is perpendicular to the inserter or approaches it head on.&lt;br /&gt;
* Whether items are on the near or far lane of a perpendicular belt.&lt;br /&gt;
* Whether the belt turns or not, and whether the items are in the inner or outer side of the bend.&lt;br /&gt;
* If the belt is an underground entrance or exit. This shortens the time items are visible to the inserter for pickup.&lt;br /&gt;
* All sorts of intricate timing factors between the inserter and the items on the belt, since the game simulates the arm homing in on every item.&lt;br /&gt;
&lt;br /&gt;
The test setup used below is with an inserter taking items from a perpendicular belt with items on the far lane only. The belt is fully compressed and timings are both for items that move at full speed and queued up as much as possible. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=4 | Type&lt;br /&gt;
! colspan=15 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | No capacity bonus&lt;br /&gt;
! colspan=5 | Capacity bonus 2&lt;br /&gt;
! colspan=5 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || &#039;&#039;&#039;0.65&#039;&#039;&#039; || 0.50 || 0.64 || (1) || 1.11 || &#039;&#039;&#039;1.20&#039;&#039;&#039; || 1.13 || 1.26 || (2) || 1.61 || 1.61 || &#039;&#039;&#039;1.65&#039;&#039;&#039; || 1.71 /&amp;lt;br/&amp;gt;1.73 /&amp;lt;br/&amp;gt;1.86 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || 0.88 || (1) || &#039;&#039;&#039;1.67&#039;&#039;&#039; || &#039;&#039;&#039;1.67&#039;&#039;&#039; || 1.50 || 1.74 || (2) || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.25 || 2.33 || 2.37 /&amp;lt;br/&amp;gt;2.37 /&amp;lt;br/&amp;gt;2.54 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.18 || 1.18 || &#039;&#039;&#039;1.25&#039;&#039;&#039; || 1.20 || (1) || 2.20 || 2.31 || &#039;&#039;&#039;2.40&#039;&#039;&#039; || 2.40 || (2) || 3.21 || 3.21 || &#039;&#039;&#039;3.46&#039;&#039;&#039; || 3.40 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.31 || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.50 || (1) || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.00 || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || 7.50 || 7.50 || &#039;&#039;&#039;8.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;8.57 /&amp;lt;br/&amp;gt;8.28 * || (4) || 7.50 || 11.25 || &#039;&#039;&#039;15.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;13.09 /&amp;lt;br/&amp;gt;15.32 * || (12)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt; Throughput for basic/fast/express belt.&lt;br /&gt;
&lt;br /&gt;
Since there are many more factors involved, these measurements exhibit a more complex pattern than chest-to-belt.&lt;br /&gt;
&lt;br /&gt;
* Boldface cells show for which belt each inserter has the best throughput on each bonus level when items move at belt speed. Higher speed belts mean that inserters have to work harder to catch the fast moving items. The effect is most noticeable for slower inserters and smaller stack sizes.&lt;br /&gt;
* When items are queued up the belt type hardly matters, so there is only a single column for that. The exceptions are the stack inserters - for basic transport belts it&#039;s the belt that sets the limit for stack sizes above 4, and there is also a notable difference between fast and express belts.&lt;br /&gt;
&lt;br /&gt;
=== Belt to Chest (facing inserter) ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
When picking up items from a belt facing the inserter, there are multiple small differences between different setups. The following throughput tests are performed with [[express transport belt]]s and [[bulk inserter]]s with the maximum [[inserter capacity bonus (research)|capacity bonus]].&lt;br /&gt;
Each setup in the following picture shows the amount of ticks per cycle of the inserter and the amount of items per second the inserter moves. These measurements are consistent in all orientations of the setup.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter_belt_to_chest_throughput.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== Power usage ==&lt;br /&gt;
Inserter power draw is determined by several factors. &lt;br /&gt;
&lt;br /&gt;
Firstly like most machines, all of the inserters (with the exception of the burner) have drain. Drain is the energy cost of existence, and is expended constantly as long as the inserter exists on the power grid, regardless of activity or lack thereof.&lt;br /&gt;
&lt;br /&gt;
Inserters also have a two costs associated with movement. These costs are applied separately and cumulatively for rotational motion as well as extension/retraction.&lt;br /&gt;
&lt;br /&gt;
Lastly, inserters exhibit a power spike when acquiring and dropping off an item. This can be referred to as &amp;quot;item spike&amp;quot; because it is typically observed directly after item interaction. This is because after receiving/delivering an item it will begin extending/retracting a distance of 0.2 units (distance sourced from [https://github.com/wube/factorio-data/blob/master/base/prototypes/entity/entities.lua source code]). This power cost associated with linear movement is significantly more expensive than that of rotational movement, hence the sharp increase in power consumption.&lt;br /&gt;
&lt;br /&gt;
[[File:Yellow Inserter Power Spikes.png|thumb|Power Consumption graph of Yellow Inserter]]&lt;br /&gt;
&lt;br /&gt;
Here we can see that for the duration of the lateral movement the power consumption is significantly higher. &lt;br /&gt;
&lt;br /&gt;
Burner Inserters, despite not using electricity, also have the same power consumption characteristics as the rest of the inserters (excluding drain). Upon accepting fuel they will replenish something resembling an internal battery, and draw from it in the same manner other inserters draw from the power grid, item spikes and all. Aside from their exclusion from drain, Burner Inserters function identically to other Inserters.&lt;br /&gt;
&lt;br /&gt;
=== Energy Costs ===&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter Testing Setup.png|thumb|Inserter Testing Setup]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s important to note that due to rounding errors the games values cannot be taken at face value when doing calculations, so a blend of theoretical and empirical methods must be used to ensure accuracy. More information can be viewed here at this [https://forums.factorio.com/viewtopic.php?t=128389 forum topic]&lt;br /&gt;
&lt;br /&gt;
The game calculates inserter power based on its hard coded power modifiers:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inserter Power Modifiers (kJ)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are derived from [https://github.com/wube/factorio-data/blob/master/base/prototypes/entity/entities.lua source code]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 50 || 5 || 5 || 7 || 20 || 40&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The way the game uses these values is it takes the games programmed speed in ticks (which can be found higher up on the page), and then uses that alongside these numbers to derive a wattage, using the following equation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Speed * Power Modifier * Ticks per second&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Applying the equation we can derive the following values:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost of rotational movement in kW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 39 || 4.2 || 6 || 16.8 || 48 || 96&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost of linear movement in kW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 105 || 10.5 || 15 || 42 || 120 || 240&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Taking these two values and adding them together, alongside drain, will give you your max power. It is critical to note that while the duration of consumption is affected by rounding errors in the game like the time per spin and so on, the actual wattage is unaffected by these rounding errors. Just because the inserter spins slightly faster than in the games code doesn&#039;t mean it uses slightly more wattage, it still demands the same wattage.&lt;br /&gt;
&lt;br /&gt;
Your rotational power is used during the entire time the inserter is spinning, while the the extension cost is only used briefly during item interaction, causing item spike. By calculating the duration of both you can accurately calculate how many joules your inserter is using in any given situation. Just like with the rotational speeds, item spike duration is subject to rounding errors from the game. You can calculate it by taking the games rated distance of 0.2 and dividing it by the inserters rated speed, and then truncating the number. To save you some hassle here is a reference table&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tick duration of Item Spike&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 5 || 4 || 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Knowing these values, energy cost is easy to calculate, and is linear to inserter utilization. This means if your inserter is only running half the time, it will only use half the power, with the exception of drain which remains constant in all situations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost per transfer cycle in kJ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are isolated from drain. Values were theoretically derived and empirically confirmed for accuracy. [https://forums.factorio.com/viewtopic.php?t=128389 More information]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 66.9 || 6.65 || 7 || 8.12 || 23.2 || 46.4&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inserter Efficiency ===&lt;br /&gt;
&lt;br /&gt;
The above data can be used to compare inserter efficiency directly. Remember that the transfer cycle cost remains the same regardless of how many items are moved. This means that the later inserters with their larger stack sizes can outperform other inserters despite their higher transfer cost, since they can achieve a lower cost per item. Here are some graphs of chest-to-chest data showing the efficiency of different inserters at differing stack sizes. Because the other inserters maintain a proportional relationship (as in an identical stack size) these graphs will primarily focus on highlighting the Green Inserter and new Stack Inserter. Dots have been marked at the turning point where they overtake the other inserters in consumption&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Inserter Efficiency Graph (No Capacity Bonus).png||No Capacity Bonus&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 2).png|Capacity Bonus 2&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 4).png|Capacity Bonus 4&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 5) .png|Capacity Bonus 5&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png|Capacity Bonus 6&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 7).png|Capacity Bonus 7&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important to note is that the actual efficiency of the inserters is best measured in terms of kJ / item. Such a version of these graphs wasn&#039;t generated because it is almost a flat line. This is because for this kind of linear power consumption the kJ / item would just be the slope of the line, or in other words it would be the &#039;&#039;kJ per transfer cycle / stack size&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Now for an important caveat. The above graphs are assuming unlimited input. That is to say the graphs assume that the inserter is always spinning at its maximum hand size. In situations that are input limited however, the inserter will not always do so. When the inserter completes its spin, the only time it waits for items is when there are zero to take. As long as there is at least a single item, the inserter will transfer whatever is there immediately, regardless of the inefficiency of moving less than its maximum. Stack Inserters are an exception to this as they actually do wait for a full hand before making the transfer, but no other inserter does. An example of an input limited situation would be the unloading of an assembler. Here are some graphs showing power usage in input limited situations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 2, Input Minimum 1).png | Capacity Bonus 2, Input Minimum 1&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 2, Input Minimum 1, kJ).png | Capacity Bonus 2, Input Minimum 1&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 7, Input Minimum 1).png| Capacity Bonus 7, Input Minimum 1&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 7, Input Minimum 1, kJ).png| Capacity Bonus 7, Input Minimum 1&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is how the behavior works. The inserter will increase its spin speed to max power as a utilization function of its minimum input. In simpler terms, if the minimum input is 1, it will increase power consumption as though it had no capacity bonus. Once it reaches the maximum, it will maintain max power while gradually increasing the average hand size its moving, thereby gradually increasing its efficiency. We can see this behavior in the kJ graph, where we get this swooping descent curve as it gains efficiency. We can see that with each subsequent inserter the average improves, and it will ultimately converge towards the same value as the previous set of graphs, that being &#039;&#039;kJ per transfer cycle / stack size&#039;&#039;. The graphs shared cover the most common use cases, but input minimums can very quite largely. For example the input minimum for crafting yellow belts would be 2, and in general for any recipe the input minimum would be the minimum craft quantity. When belt feeding, its possible for inserters to experience inserter limiting as the belt approaches empty, or if using circuit limited sushi. Due to how many possible permutations of these graphs there are, sharing them all is simply not feasible. If you need a graph not displayed, you can generate one yourself using the code shared [https://forums.factorio.com/viewtopic.php?p=670540#p670540 here]&lt;br /&gt;
&lt;br /&gt;
Because the Burner Inserter doesn&#039;t have drain, its efficiency can only truly be appreciated in extremely low throughput situations. Thus we use these dedicated graphs. Before one graph with no capacity bonus would have been sufficient because at low throughputs inserters don&#039;t wait and always default to as stack size of 1. The new Stack Inserter changes this though, because Stack Inserters do in fact wait until they get a full hand before beginning their swing, meaning they always remain at optimal efficiency unlike the rest of the inserters. Though having generated the graphs it appears to be largely irrelevant, as the fundamental relationship never really changes from one extreme to the other.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Burner Efficiency Graph (No Capacity Bonus).png|No Capacity Bonus&lt;br /&gt;
File:Burner Efficiency Graph (Capacity Bonus 7).png|Capacity Bonus 7&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The Burner graphs are mislabeled on the y-axis. They should read kJ, not kW. &lt;br /&gt;
&lt;br /&gt;
=== Belt Differences===&lt;br /&gt;
Up until now all data was regarding chest-to-chest use cases, due to their sterile and consistent nature. The introduction of belts creates special conditions that require consideration. Here is a power chart from the game for reference:&lt;br /&gt;
&lt;br /&gt;
[[File:Yellow Inserter Belt-to-Belt Power Signature.png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
The Yellow Inserter above is doing a belt-to-belt transfer, and it has a stack bonus. &lt;br /&gt;
&lt;br /&gt;
The erratic section of the graph is the loading process. We can see the behavior is irregular as the inserter does not wait for the item, but rather fishes around for them. The exact behavior here is still being studied, and due to its dependence on stack size and belt speed it is very difficult to give any firm answers regarding how much power this actually uses as a quantifiable generalization. Likely a set of tables would need to be generated with every possible combination as a reference, but such data does not currently exist. The behavior should be consistent across belt speeds and stack sizes, so it can theoretically be gathered and collated into a reference table, though such data doesn&#039;t exist at this time.&lt;br /&gt;
&lt;br /&gt;
Looking at the unloading section, we can see the inserter swings around normally, but then there is this dip that doesn&#039;t exist in the chest to chest behavior. This is the inserter waiting at the belt to drop off all its items. During this waiting, it uses no power aside from its drain. Once all the items are delivered, it resumes operation as normal. Different amounts of delay caused by different belt speeds and stack sizes can create variations in both our throughput and our total cost per transfer due to the additional drain. This can also be easily modeled into a table, though such a table is currently unavailable&lt;br /&gt;
&lt;br /&gt;
If you are interested in volunteering to collect and share this data, you are encouraged to do so!&lt;br /&gt;
&lt;br /&gt;
What this currently means in practice is that you should just use the chest-to-chest data. The overall relationship between the inserters doesn&#039;t change significantly and their efficiency hierarchy remains undisturbed, though the exact consumption in joules per item likely increases noticeably. This could be problematic for other cost estimates in your factory, but for choosing inserters its not an issue.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; The above efficiency graphs only apply when loading from a chest. When loading from a belt, until a more accurate dedicated data set is provided, it is advised to reference the initial no capacity bonus version of the graph for all decisions. With an inserter stack size of 1, the efficiency relationship between chests and belts is identical.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regarding Quality:&#039;&#039;&#039; Quality inserters receive a linear speed boost for each level of quality, with a corresponding power cost increase. What this means is that the quality level of an inserter has no impact on its energy efficiency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;More data regarding inserters feeding from belts, as well as more detailed data regarding burner inserter power consumption is still needed. Please contribute if you are willing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Electric system]]&lt;br /&gt;
* [[Belt transport system]]&lt;br /&gt;
* [[Inserter capacity bonus (research)]]: Inserter moves more than an item per turn.&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Inserters}} {{C|Inserters{{!}}#Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7,_Input_Minimum_1).png&amp;diff=213669</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 7, Input Minimum 1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7,_Input_Minimum_1).png&amp;diff=213669"/>
		<updated>2025-04-30T02:53:06Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7,_Input_Minimum_1,_kJ).png&amp;diff=213668</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 7, Input Minimum 1, kJ).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7,_Input_Minimum_1,_kJ).png&amp;diff=213668"/>
		<updated>2025-04-30T02:46:59Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2,_Input_Minimum_1,_kJ).png&amp;diff=213667</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 2, Input Minimum 1, kJ).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2,_Input_Minimum_1,_kJ).png&amp;diff=213667"/>
		<updated>2025-04-30T02:32:48Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2,_Input_Minimum_1).png&amp;diff=213666</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 2, Input Minimum 1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2,_Input_Minimum_1).png&amp;diff=213666"/>
		<updated>2025-04-29T23:51:49Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213665</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213665"/>
		<updated>2025-04-29T23:30:27Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 2).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing the efficiency of Inserters at capacity bonus 2. Worth observing is how Stack Inserters and Green Inserters are identically efficient at this stage.&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 4&lt;br /&gt;
stack_stack = 8&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 2)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213664</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213664"/>
		<updated>2025-04-29T23:28:04Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk reverted File:Inserter Efficiency Graph (No Capacity Bonus).png to an old version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus. Intersection point at [~1.25418, 25] where stack inserters become more efficient than blue inserters has been marked with a dot.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
This is the matplot code used to generate this graph in python, in case it needs to be updated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 1&lt;br /&gt;
green_stack = 2&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (No Capacity Bonus)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
intersect = np.argwhere(np.diff(np.sign(blue - stack))).flatten()&lt;br /&gt;
plt.plot(x [intersect], stack[intersect] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wiki seems to not parse line breaks correctly but that can easily be handled by the end user.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213663</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213663"/>
		<updated>2025-04-29T23:24:14Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 2).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing the efficiency of Inserters at capacity bonus 2. Worth observing is how Stack Inserters and Green Inserters are identically efficient at this stage.&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 4&lt;br /&gt;
stack_stack = 8&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 2)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213662</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213662"/>
		<updated>2025-04-29T23:20:05Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (No Capacity Bonus).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus. Intersection point at [~1.25418, 25] where stack inserters become more efficient than blue inserters has been marked with a dot.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
This is the matplot code used to generate this graph in python, in case it needs to be updated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 1&lt;br /&gt;
green_stack = 2&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (No Capacity Bonus)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
intersect = np.argwhere(np.diff(np.sign(blue - stack))).flatten()&lt;br /&gt;
plt.plot(x [intersect], stack[intersect] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wiki seems to not parse line breaks correctly but that can easily be handled by the end user.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Burner_inserter&amp;diff=213575</id>
		<title>Burner inserter</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Burner_inserter&amp;diff=213575"/>
		<updated>2025-04-26T08:21:19Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Fuel consumption */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Burner inserter}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;burner inserter&#039;&#039;&#039; is the most basic and slowest type of [[inserters]]. It is powered by burning [[fuel]], compared to the more advanced inserters which are powered by [[electric system|electricity]]. It will add fuel to its own supply if it picks any up, which makes it useful for filling [[boiler|boilers]] with [[coal]]. This has the advantage that it will continue working even if the power fails, as opposed to electrically-powered inserters which will be unable to function. It consumes no fuel while idle, though it consumes vastly more energy than most other inserters when active.&lt;br /&gt;
&lt;br /&gt;
Even though it doesn&#039;t use electricity, a burner inserter can be connected to and controlled by the [[logistic network|logistic]] and the [[circuit network]].&lt;br /&gt;
&lt;br /&gt;
== Fuel consumption ==&lt;br /&gt;
&lt;br /&gt;
A burner inserter consumes no power while idle and does not continuously consume the maximum amount of power when working. Burner Inserters spawn with an internal energy buffer of 500 kJ, represented as 25% the value of a piece of wood fuel (which is 2MJ). Aside from not having drain, all its other power characteristics are identical to the rest of the inserters. It simply pulls its joules from its fuel rather than your power grid. For more detailed information on inserter power characteristics you can reference the main page [[Inserters|here]].&lt;br /&gt;
&lt;br /&gt;
Burners also have a behavior known as &amp;quot;leeching&amp;quot; where they will pull fuel from their input and commandeer it for their own use. This leeching behavior is not exactly quantified, but it is triggered whenever the internal fuel inventory reaches zero, and performing the action also consumes fuel since motion is never free.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{history|2.0.7|&lt;br /&gt;
* All inserters now have filter option.&lt;br /&gt;
* Energy consumption increased from 94.2 kW to 144 kW.&lt;br /&gt;
* Burner inserters now reliably pick up items off of [[fast transport belt]]s and [[express transport belt]]s.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.2|&lt;br /&gt;
* Inserters connected to the circuit network now have the option to only read hand contents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Inserters can now send the item held in hand to the circuit network.&lt;br /&gt;
* Inserters are able to squeeze things &#039;&#039;slightly&#039;&#039; better to belts.&lt;br /&gt;
* All types of inserters can be controlled by the circuit and logistic network, once the respective network is researched.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.16|&lt;br /&gt;
* Improved burner inserter&#039;s fuel searching logic; it will now search both transport belt lines for fuel}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.11|&lt;br /&gt;
*  Burner inserter now grabs fuel for itself even if the target doesn&#039;t need it}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.2|&lt;br /&gt;
* Inserters will never take more than the max stack size of an item.&lt;br /&gt;
* Inserters and logistic robots no longer extract from enemy chests&lt;br /&gt;
* Inserters now correctly pick up items from splitters&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* Burner inserters start with enough energy to pick up 1 item and fuel themselves.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Inserters can now extract from roboports and beacons.&lt;br /&gt;
* Inserters now take items from right behind them, not from the center of the pickup target entity.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* New icon&lt;br /&gt;
* New sounds}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.2|&lt;br /&gt;
* Inserters can have arbitrary pickup and insert positions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.0|&lt;br /&gt;
* Inserter code optimisation, inserters that have nothing to do will sleep.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.0|&lt;br /&gt;
* Improved inserter&#039;s ability to pull from train wagons.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.7.1|&lt;br /&gt;
* Fast inserter now has the same speed as the smart inserter.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.5.0|&lt;br /&gt;
* Inserter can now pick up up to 5 items when researched.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.4.0|&lt;br /&gt;
* Smaller inserter bounding box}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.3.0|&lt;br /&gt;
* New Inserter graphics}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.2.1|&lt;br /&gt;
* The item in the hand of the inserter is returned to the player when mined.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.2.0|&lt;br /&gt;
* Show direction of inserter}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Inserters]]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Burner_inserter&amp;diff=213574</id>
		<title>Burner inserter</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Burner_inserter&amp;diff=213574"/>
		<updated>2025-04-26T08:16:52Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Fuel consumption */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Burner inserter}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;burner inserter&#039;&#039;&#039; is the most basic and slowest type of [[inserters]]. It is powered by burning [[fuel]], compared to the more advanced inserters which are powered by [[electric system|electricity]]. It will add fuel to its own supply if it picks any up, which makes it useful for filling [[boiler|boilers]] with [[coal]]. This has the advantage that it will continue working even if the power fails, as opposed to electrically-powered inserters which will be unable to function. It consumes no fuel while idle, though it consumes vastly more energy than most other inserters when active.&lt;br /&gt;
&lt;br /&gt;
Even though it doesn&#039;t use electricity, a burner inserter can be connected to and controlled by the [[logistic network|logistic]] and the [[circuit network]].&lt;br /&gt;
&lt;br /&gt;
== Fuel consumption ==&lt;br /&gt;
&lt;br /&gt;
A burner inserter consumes no power while idle and does not continuously consume the maximum amount of power when working. Burner Inserters spawn with an internal energy buffer of 500 kJ, represented as 25% the value of a piece of wood fuel (which is 2MJ). Aside from not having drain, all its other power characteristics are identical to the rest of the inserters. It simply pulls its joules from its fuel rather than your power grid. For more detailed information on inserter power characteristics you can reference the main page [[Inserters|here]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{history|2.0.7|&lt;br /&gt;
* All inserters now have filter option.&lt;br /&gt;
* Energy consumption increased from 94.2 kW to 144 kW.&lt;br /&gt;
* Burner inserters now reliably pick up items off of [[fast transport belt]]s and [[express transport belt]]s.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.2|&lt;br /&gt;
* Inserters connected to the circuit network now have the option to only read hand contents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Inserters can now send the item held in hand to the circuit network.&lt;br /&gt;
* Inserters are able to squeeze things &#039;&#039;slightly&#039;&#039; better to belts.&lt;br /&gt;
* All types of inserters can be controlled by the circuit and logistic network, once the respective network is researched.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.16|&lt;br /&gt;
* Improved burner inserter&#039;s fuel searching logic; it will now search both transport belt lines for fuel}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.11|&lt;br /&gt;
*  Burner inserter now grabs fuel for itself even if the target doesn&#039;t need it}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.2|&lt;br /&gt;
* Inserters will never take more than the max stack size of an item.&lt;br /&gt;
* Inserters and logistic robots no longer extract from enemy chests&lt;br /&gt;
* Inserters now correctly pick up items from splitters&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* Burner inserters start with enough energy to pick up 1 item and fuel themselves.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Inserters can now extract from roboports and beacons.&lt;br /&gt;
* Inserters now take items from right behind them, not from the center of the pickup target entity.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* New icon&lt;br /&gt;
* New sounds}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.2|&lt;br /&gt;
* Inserters can have arbitrary pickup and insert positions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.0|&lt;br /&gt;
* Inserter code optimisation, inserters that have nothing to do will sleep.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.0|&lt;br /&gt;
* Improved inserter&#039;s ability to pull from train wagons.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.7.1|&lt;br /&gt;
* Fast inserter now has the same speed as the smart inserter.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.5.0|&lt;br /&gt;
* Inserter can now pick up up to 5 items when researched.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.4.0|&lt;br /&gt;
* Smaller inserter bounding box}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.3.0|&lt;br /&gt;
* New Inserter graphics}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.2.1|&lt;br /&gt;
* The item in the hand of the inserter is returned to the player when mined.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.2.0|&lt;br /&gt;
* Show direction of inserter}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Inserters]]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213573</id>
		<title>Talk:Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213573"/>
		<updated>2025-04-26T08:10:54Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: Removed obsolete talk topic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [https://forums.factorio.com/viewtopic.php?f=7&amp;amp;t=22#p71]&lt;br /&gt;
&lt;br /&gt;
Removed. But eventually helpful. [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 02:45, 31 December 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Changes for 0.17 ==&lt;br /&gt;
&lt;br /&gt;
The faster belt speeds probably change the results for some of the entries in these tables. It looks like they haven&#039;t been updated yet. --[[User:Omnifarious|Omnifarious]] ([[User talk:Omnifarious|talk]]) 14:59, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
They have been updated by [[User:Bilka|Bilka]] in [[Special:PermanentLink/172015|This revision]]. --[[User:Swan|Swan]] ([[User talk:Swan|talk]]) 17:19, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
&lt;br /&gt;
I updated this wiki to show ticks per turn in the inserter speed section. My results seem to clash with the previous information about rotation speed (102 ticks = 1.7 seconds, there is a discrepancy between the rotation time of burner inserters most notably). The experiment I performed was done on vanilla factorio 0.14.22. I used two steel chests with varying inserters for each experiment. The inserters were fully powered at all times. The first chest is wired to a combinator which tests for any items in the chest, and outputs 1 signal X. This signal is added to a tallying arithmetic combinator. This arithmetic combinator is wired to itself, and outputs T + X. The value of T at setup is 0. I begin this experiment by placing large stacks of items into the first chest. I place only 201 transfers worth of material into the chest. This will stop the timer as soon as the last item is removed, which occurs after 200 transfers. With this setup I obtained the results as I have reported them. The timer always stopped on a multiple of 200, indicating that the number of ticks per full turn is an integer number. This is why I decided to add a separate column for this value. I may in the future update the other rotation speed metrics to match my results. --[[User:Reububble|Reububble]] ([[User talk:Reububble|talk]]) 18:19, 8 March 2017 (UTC)&lt;br /&gt;
:Which orientation were the inserters? Inserters facing north have lower throughput, might mean they have slower rotation speed. --[[User:Artorp|Artorp]] ([[User talk:Artorp|talk]]) 20:47, 5 April 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== put the &amp;quot;Inserters And Transport Belt Interaction&amp;quot; examples in a table so they are side by side ==&lt;br /&gt;
&lt;br /&gt;
i see why that was a bad idea, but i would rather see them side by side if it were possible to make a table that, when the horizontal space it has to display is smaller than all 4 makes it so there are 3 and on another &amp;quot;line&amp;quot; another 1 or 2x2 or all underneath one another like it is now.&lt;br /&gt;
&lt;br /&gt;
: I put them in a 2x2 square; I think that&#039;s the best way to see all of them at once. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 13:17, 14 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Problem with translation ==&lt;br /&gt;
&lt;br /&gt;
Could someone explain to me what it is &#039;&#039;&#039;Extension Speed&#039;&#039;&#039; and why it is expressed in &#039;&#039;&#039;Tiles per Tick&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a translation and can not find a word - without knowing what it is ;){{unsigned|JakubSTR|08:43, 6 March 2018‎}}&lt;br /&gt;
&lt;br /&gt;
:I&#039;d describe extension speed as how fast the inserter &amp;quot;extends&amp;quot;, so in this case how fast its arm gets longer/shorter to be able to reach an item on the far or near side of the belt. It&#039;s expressed in tiles per tick because that is a unit of speed, just like meters per second :) An inserter that has an extension speed of 1 tile per tick needs 1 tick to make its arm longer by a whole tile. I hope this helps. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:11, 6 March 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213572</id>
		<title>Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213572"/>
		<updated>2025-04-26T08:09:51Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;For the common yellow electrical inserter, see [[Inserter]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inserters&#039;&#039;&#039; are devices which are used to move items over short distances. When placed, they have a fixed direction. They can move items from behind and place them in front of them. By doing this, they can move items from one transport belt to another, but also extract items from—and insert items into—machines or storage devices.&lt;br /&gt;
&lt;br /&gt;
== Types of inserters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| {{Imagelink|Burner inserter}} || The only [[fuel]]-powered inserter, with the slowest speed.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Inserter}} || The standard electrical inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Long-handed inserter}} || Capable of inserting and removing items from a greater distance.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Fast inserter}} || Much faster than the inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Bulk inserter}} || As fast as the fast inserter, but can move many more items at the same time at once.    &lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Stack inserter|space-age=yes}} || As fast as the bulk inserter, but can stack items on a belt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mechanics ==&lt;br /&gt;
Inserters &#039;&#039;&#039;will&#039;&#039;&#039;:&lt;br /&gt;
* Pick up items off the ground, off of a [[Transport belts|transport belt]], or from any object that has storage space, such as [[Chests|chests]], [[furnace]]s [[assembling machine]]s or [[vehicle]]s.&lt;br /&gt;
* Place the item onto the ground, onto a transport belt, or into any object that has storage space.&lt;br /&gt;
* Run at slower speeds when starved for energy.&lt;br /&gt;
* Pick up as many items as their [[inserter capacity bonus (research)|stack size]] allows at once, if they do not have to wait too long to pick them up.&lt;br /&gt;
* Pick up items and drop them into the void of space or lava, permanently destroying them. This is useful for getting rid of unwanted items.&lt;br /&gt;
&lt;br /&gt;
Inserters &#039;&#039;&#039;will not&#039;&#039;&#039;:&lt;br /&gt;
* Pick up any items that cannot be inserted into the adjacent entity.&lt;br /&gt;
* Pick up any items if the adjacent entity is a [[ghost]].&lt;br /&gt;
* Pick up items to place into an entity with a full inventory.&lt;br /&gt;
* Place more than one item at a time onto the same ground tile.&lt;br /&gt;
* Place items into an entity that cannot hold them, for example due to [[Stack#Filtered_stacks|filtered]] or [[Stack#Stack_limitation|limited slots]].&lt;br /&gt;
* Fill up the entire target inventory of [[boiler]]s, [[nuclear reactor]]s, [[:Category:Producers|production building]]s, [[furnace]]s and [[turret]]s.&lt;br /&gt;
&lt;br /&gt;
If two or more inserters are picking up from the same tile, the inserter who can grab the items the fastest will grab them first. Besides faster inserters, this favors inserters taking from the inner lane of a transport belt.&lt;br /&gt;
&lt;br /&gt;
=== Insertion limits ===&lt;br /&gt;
Depending on where an inserter is moving items, it does not always fill up the entire target inventory. This allows other inserters taking from the same transport belt to pick up their share of the items. For example, if a boiler has 5 or more items of fuel in it, an inserter will not insert additional fuel. This allows the other fuel to travel further down the transport belt. When the fuel drops below 5 items, the inserter will resume inserting fuel, up to the limit of 5 items.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Entity !! Item type !! Automatic insertion limit&lt;br /&gt;
|-&lt;br /&gt;
| [[Boiler]]s, [[burner inserter]]s, [[furnace]]s, and [[nuclear reactor]]s || [[Fuel]] || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Gun turret]]s || Bullet Magazines || align=&amp;quot;center&amp;quot; | 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Artillery turret]]s || [[Artillery shell]]s || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Assembling machine]]s, [[furnace]]s, [[centrifuge]]s, [[chemical plant]]s, and [[Oil refinery|oil refineries]]|| Items needed for the recipe || The ingredients for 1 craft in addition to the ingredients for the number of crafts that can be completed during one full inserter swing; but at least the ingredients for 2 crafts and at most the ingredients for 100 crafts.[https://forums.factorio.com/viewtopic.php?p=309796#p309796]&lt;br /&gt;
|-&lt;br /&gt;
| [[Lab]]s || [[Science pack]]s || The number of science packs needed for one research unit in addition to the science packs for the number of research units that can be completed during one full inserter swing; but at least the ingredients for 2 research units and at most the ingredients for 100 research units.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An inserter that has a higher [[inserter capacity bonus (research)|inserter capacity bonus]] than 1 can overfill the target building, due to the inserter picking up a higher amount of items than needed. Overfilling can also occur if  multiple inserters are used to insert items into one building.&lt;br /&gt;
&lt;br /&gt;
=== Inserters and transport belts ===&lt;br /&gt;
[[Transport belts]] have two lanes on which items can travel. Inserters only place items onto one side of the belt, either the far side from the inserter&#039;s perspective or if the belt is going the same or the opposite direction as the inserter the right side from the belt&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | [[File:Inserter_dropoff_locations.gif]] || [[File:Inserter_pickup_locations.gif]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | Inserters place the item on the furthest lane. If a belt is in the same orientation as the inserter, the item will be placed on the right-hand lane, from the belt&#039;s perspective. In curves the inserter always places on the far side.&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | If the belt is perpendicular to the inserter, inserters &#039;&#039;&#039;prefer&#039;&#039;&#039; taking items from the nearest lane. If the nearest lane is empty, the inserter will take from the far lane. If the belt is the same/opposite orientation of the inserter or a curve, the inserter &#039;&#039;&#039;prefers&#039;&#039;&#039; taking from the left lane, from the belt&#039;s perspective. If the left lane is empty it will take from the right lane.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Potential issues ===&lt;br /&gt;
Inserters may have problems picking up items:&lt;br /&gt;
&lt;br /&gt;
* From very fast belts, because the items are moving too quickly.&lt;br /&gt;
* From the entry or exit of an underground belt (because the time they have to pick up is shorter)&lt;br /&gt;
* From turning belts if the item is on the inside of the corner&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
[[File:all_inserter_speeds.gif|frame|right|Animation showing all inserter speeds at once.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Rotation-speed (turns per [[Time#Ticks|tick]])&amp;lt;br/&amp;gt;Extension-speed ([[Map_structure#Tile|Tiles]] per Tick)&lt;br /&gt;
! Turns per [[Time#Seconds|Game-second]]&lt;br /&gt;
! Game-second per full turn&lt;br /&gt;
! Ticks per full turn&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.013&amp;lt;br/&amp;gt;0.035 || ~0.7895 || ~1.267 || 76&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.014&amp;lt;br/&amp;gt;0.035 || ~0.857 || ~1.167 || 70&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 0.02&amp;lt;br/&amp;gt;0.05 || 1.2 || 0.833 || 50&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}}&amp;lt;br/&amp;gt;{{Imagelink|Bulk inserter}} || 0.04&amp;lt;br/&amp;gt;0.1 || 2.5 || 0.4 || 24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The speeds per tick come directly from the [https://github.com/wube/factorio-data/tree/master/base/prototypes/entity factorio-data github repository], while the other values have been verified empirically in game. Discrepancies are due to rounding errors during the games runtime, so the empirical values are more accurate when dealing with speeds.&lt;br /&gt;
&lt;br /&gt;
=== Rotation Speed ===&lt;br /&gt;
Convention: 2π rad = 100% of a circle rotation = &#039;&#039;&#039;1 turn&#039;&#039;&#039; (or one full rotation).&lt;br /&gt;
&lt;br /&gt;
Note: an Inserter doesn&#039;t always need to make full turns. When grabbing from a transport belt, it is slightly faster when grabbing items from the closest lane.&lt;br /&gt;
&lt;br /&gt;
Note: If the rotation speed of an inserter would result in an odd number of ticks per full turn, the actual number of ticks per full turn for this inserter is truncated to be the next lowest even number. The reason for this is that the inserter needs to do two half turns to pick and drop an item. This takes a certain number of ticks two times, therefore the number of ticks for the full turn is always an even number. Example: The Fast inserter&#039;s rotation speed of 864°/s or 0.04 turns per tick would result in 25 ticks per full turn, but the inserter cannot do a half turn in &amp;quot;12.5 ticks&amp;quot;, so it actually takes 2*12 = 24 ticks per full turn.&lt;br /&gt;
&lt;br /&gt;
=== Extension Speed ===&lt;br /&gt;
The extension-speed is normally not visible (only when compared to other inserters), but there are measurable speed differences when taking - for example - from the near or the far side of a belt. Also Some mods can alter the pickup and drop locations of inserters, making this stat more relevant.&lt;br /&gt;
&lt;br /&gt;
== Inserter Throughput ==&lt;br /&gt;
&lt;br /&gt;
=== Chest to chest ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 2.0.26, recorded in this doc [https://docs.google.com/spreadsheets/d/1L8Td5o6TAicGi-TPwzh4lz2YiH0n7Jkpp3E8FxNpnAs/edit?usp=sharing]. Chest to chest transfer transfers the entire hand size during a single tick, so most of the time is spent during the swing to and from.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=2 | Type&lt;br /&gt;
! rowspan=2 | Arm cycles per second (ticks per cycle)&lt;br /&gt;
! colspan=8 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | No capacity bonus&lt;br /&gt;
! colspan=2 | Capacity bonus 2&lt;br /&gt;
! colspan=2 | Capacity bonus 7&lt;br /&gt;
! colspan=2 | Transport belt stacking {{SA}}&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || {{Quality | 0.79 (76 ticks) | 1.03 (58 ticks) | 1.25 (48 ticks) | 1.5 (40 ticks) | 2 (30 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.79 |1.03 |1.25|1.5 |2 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.58 |2.07 |2.5|3 |4 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.37 |3.10 |3.75|4.5 |6 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.16 |4.14 |5|6 |8 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || {{Quality | 0.86 (70 ticks) | 1.03 (58 ticks) | 1.36 (44 ticks) | 1.67 (36 ticks) | 2.14 (28 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.86 |1.11 |1.36|1.67 |2.14 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.71 |2.22 |2.73|3.33 |4.29 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.57 |3.33 |4.09|5 |6.43 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.43 |4.44 |5.45|6.67 |8.57 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || {{Quality | 1.2 (50 ticks) | 1.58 (38 ticks) | 2 (30 ticks) | 2.31 (26 ticks) | 3.33 (18 ticks) }}&lt;br /&gt;
 || {{ Quality | 1.2 |1.58 |2|2.31 |3.33 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 2.4 |3.16 |4|4.62 |6.67 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 3.6 |4.74 |6|6.92 |10 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 4.8 |6.32 |8|9.23 |13.33 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 2.5 |3.33 | 4.29 | 5 | 7.5 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 5 |6.67 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 7.5 |10 |12.86|15 |22.5 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 5 |6.673 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Stack inserter}}{{SA}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 15 |20 | 25.71 | 30 | 45 }}&lt;br /&gt;
 || (6)&lt;br /&gt;
 || {{ Quality | 20 |26.67 | 34.29 | 40 | 60 }}&lt;br /&gt;
 || (8)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to belt ===&lt;br /&gt;
Throughput going from chest to belt depends on how full the belt is. An inserter will not put down an item on a belt that have items back-to-back (aka full compression) - it waits until there is a gap. However, if the gap is narrower than the item then the items upstream on the belt will stop to make room for the item being inserted. The direction of the belt compared to the inserter does not matter however.&lt;br /&gt;
&lt;br /&gt;
In these measurements inserters move items onto an empty belt. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=3 | Type&lt;br /&gt;
! colspan=12 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | No capacity bonus&lt;br /&gt;
! colspan=4 | Capacity bonus 2&lt;br /&gt;
! colspan=4 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || 0.60 || 0.60 || (1) || 1.19 || 1.19 || 1.19 || (2) || 1.67 || 1.73 || 1.76 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.83 || 0.83 || 0.83 || (1) || 1.64 || 1.64 || 1.64 || (2) || 2.25 || 2.37 || 2.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.20 || 1.20 || 1.20 || (1) || 2.35 || 2.35 || 2.35 || (2) || 3.10 || 3.33 || 3.46 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || 2.31 || 2.31 || 2.31 || (1) || 4.44 || 4.44 || 4.44 || (2) || 5.29 || 6.00 || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.44 || 4.44 || 4.44 || (2) || 5.71 || 7.06 || 7.74 || (4) || 6.79 || 10.91 || 13.85 || (12)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to splitter ===&lt;br /&gt;
When an inserter drops items onto the side of a perpendicular splitter, it always is considered to do so on the input side, enabling the splitter to move half of the items to the other belt (assuming that the splitter filter/priority settings allow it to do so and that there is available space on both belts). This allows the inserter to drop its items twice as fast. A fully upgraded bulk inserter can drop twelve items onto an express splitter every 38 ticks (18.95 items/second) instead of the usual 52.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter to splitter comparison.png|621px|thumb|center|By inserting onto the side of a splitter, a fully-upgraded bulk inserter can fill 84% of an express belt lane instead of the usual 62%.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter belt saturation.png|414px|thumb|center|Three bulk inserters can saturate an express belt if one of them inserts onto a splitter.]]&lt;br /&gt;
&lt;br /&gt;
===Belt to chest (perpendicular)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The following is based on experimental data from [https://docs.google.com/spreadsheets/d/1Q4hxL69qrK3qeEKU8aDkuwM3gJy6I2dJ4FYSs-FQUpI/edit?usp=sharing 1.1].    &lt;br /&gt;
Most of the 1.1 experimental data was gathered using the following circuit blueprint to measure the exact tick difference between inserter swings. A lot of the data on this page (specifically the belt to chest data) relies heavily on the conditions of the setup on which the measurements are done. If your setup differs from the ones tested on this page, you can use the following blueprint to do the measurements yourself.&lt;br /&gt;
&lt;br /&gt;
{{BlueprintString|bp-string=0eNrtXF1v4kYU/SuRq75UkMz32GhbKY996FvfuivkwBCsBYNss20U8d87NiHAwMVzHdjsKKtIURzb1zPn3K85Y3iOHmYrsyyyvIoGz9HYlKMiW1bZIo8G0V8mLVeFKW+yvDRFZYqbalosVo/T5aq6WeVj+49xNpmYwuTVzWiRj7P6xvL2c/45n1bVshzc3f2bfc1uJ+moWhTZ4na0mN/9+WKs/GX71/DvV7Of86gXZdZWGQ3+eY7K7DFPZ/XIqqelsUPKKjO3V+TpvD4qq3T0tb8dXbS2t9pR/RcN6LrXenNaZNV0bqps1LfDesjy1I5xzwZbf+lFdmZ2UmYzmubgaZiv5g/2aQPaYqoXLRdltsHyObIW+/pW9qIn+we3jxlnhRltzopeZKdcFYvZ8MFM02+ZvdvesjM73KFbn5hkRVkNj+b3LSuqlf3PDp/miv59PavS1DZqQxa1mm1KetFiaYr0he07e99iVVkSUJbX62bw+WYuzfBo/asw433QMnvE7ZVZMVplVXNI11/svQy4mEp7el3z6MDO0LCr94HdpKPpHvI4uvaZ+fSpAzWbpyPYkUfs9KLHwpi8hUa2o/Hk5VQBRHI0kfJHjp9frx4/1GWod3Ca8RYm2HH8neJFoHnhHzuvKUxea1g6BbtEw85+5jUPdtj5qNFgnlO4PMcEQKxCE0s/dp4T5xnjtIUJ6Zfn9Osot5M9zwrZsmLjbn2aiUk2qzvb070rBA6JGmurGuw+JVonXFEWtzSzkDV6YI3HgjLC2V5XizHGDowlhBCaaLqzxlHW+J41O0+uBY2ZeDUmUMbEwdCojmWSiD1rEmVNHnKQCE05FztrCmVN7VljVHAWJ/vGNMqYPhialDROmIjJq7UYZS0+sKY4lbFgUr1aS1DWkgNrzP5IHu9ZowRl7v7kVHfWNoHftZ89zCKJX5KIscmbfOxeiFJMM8Qh2BMs7PRnL+TBDtzsuLy1dTucAczVLvcyyrEZZWNTnOVNvLDWlNQ93tRp3l5Mvo20NH+qpln+uMk221gh9cF8mRbNQAfRHx0IqSFvjC6fhk0eG06KxXyY5dZKNJiks9JAbJ1mhZ/XSNgRaRC9nms/iha12MfuVeOWXjVpiSPPMkTRqpfY71XbA+tSvLxEwBEzfXrIzG9dowsXPwTMaqfC6ehqh0zlSRaHFOojlnT7mmL7xPlibIaLyXAPxT0lrjDpeDhNN5hXdkAWmapYmd0VzcnmstpS46rdgQSnvhOPynk6m/Vn6Xx5Yi0Vb+dNt/P2G4cg0IN38sncjLPVvG9m1mJho2S5mJlzQyDgENo1uKYK2ieb7HH6sFg1Sz/Ge5x+OTVG5QeOPgIHdIrXWO0QquR8/fsUoUKNnY8dGkPEaT9Q1PcBhV4UFJpAs46RrkCuOmt22Vkrh3wBNosJkvzrwsAvC4N2YYCkX0b8YJBBJgaIfEb9Zi261goNPZgh4b6u14nLwk1cr4P23xjHlkzRqWTy8y2yaK+otrjz5FRFZZ7tBg8xcOT5ispAXqUfKCzEisrAoFZIVwipojLhkC+hPphpJPkhVVQmXRigdQjz7K9oiImBg+R7tlOkY0WV0Ds5nCDhDqqixq7XQTu9nGIrKulUUdX5ihq/oaJyv96IhBg3SYu8A9LKvTChIdZTDoa0wDlCSOWUu9RLSJ3gEkd9SNWUcxcFSK3gqsueDv2eezqvOy8/yHaO327N2a0B5blnw/1aPhZkqwMGZoybdEgNB3eFIwUJRzxBNhy8m+jd8uap1m9QxQXBbRkQXM9K3aWTAN97pbiB4LcuHFahBbxgOHH4ur4tLyuKus20gLouwXHa8HVRUJfeF3BQgNowIXC+cN3kri+KgnDbMAWJO0LifIEG1IYJtw1TUM0TCqdbh5QXmOsLAkRB47YNkPWCHenTUFcsYhwd13XK+LJO6W7hKRCFBEcHfhPH6TUg8UsSnAAcVHS4dEhoU01SnP4bUtVkri9I8LM0DOcLIVVN6faRGmpoJcf5QkhVUx6tQcCIEDhtOqS8wF1fkNCaQkrc1gC2aroNrYRaOalwdIRUNaW71tRggtI4OvAbNc5AoFWWjFEyb1DB4bKhwNYhQam8IdVM7nqCgqqFIihPCKpkuqKDhpbbiqI8IaiK6aZoDdUKxTrI/cRV+9n3VPv5ETaXVvvrl6lxkafObzcqhnk3XQnfr2fw3TZQHKWgB5X53XhXYLyLDq5O39XVXWx+7/YZl4tta6mWN7/dzYG2T2+fuv4kdRLlvyH1kcqVBDUkhimF27NgSPUFBF/jZGl2VfSTy2pfwleQVTFOlr4uCveXRUEei/OekqBKcMIoC6i0iNjXOTTBCaPY0ITQ1xSnfYUUmpL5qj6a4bSvkEJT8mMF0FN30BynvoQUmlJ5O4fAqS/I0AS1Ly1RS+yQIlMR39WlVqgldkiBqeixzuDZyGndYSHC3nUhwi6w5r7vuOJ+2wpZ4FYs51fm9Uf8e29bymjcy2whJWUlT+cFC1nzdayDvS+g7UWz9MHYMUbbb4a9eUxXj/VrbN9MUW48PKZCJ0xLQbkkcr3+HxANddo=}}&lt;br /&gt;
&lt;br /&gt;
When picking items from a belt, many more factors come into play besides belt fullness:&lt;br /&gt;
&lt;br /&gt;
* How fast the items move (i.e. if they are queued up on the belt or move at belt speed).&lt;br /&gt;
* Whether the belt is perpendicular to the inserter or approaches it head on.&lt;br /&gt;
* Whether items are on the near or far lane of a perpendicular belt.&lt;br /&gt;
* Whether the belt turns or not, and whether the items are in the inner or outer side of the bend.&lt;br /&gt;
* If the belt is an underground entrance or exit. This shortens the time items are visible to the inserter for pickup.&lt;br /&gt;
* All sorts of intricate timing factors between the inserter and the items on the belt, since the game simulates the arm homing in on every item.&lt;br /&gt;
&lt;br /&gt;
The test setup used below is with an inserter taking items from a perpendicular belt with items on the far lane only. The belt is fully compressed and timings are both for items that move at full speed and queued up as much as possible. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=4 | Type&lt;br /&gt;
! colspan=15 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | No capacity bonus&lt;br /&gt;
! colspan=5 | Capacity bonus 2&lt;br /&gt;
! colspan=5 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || &#039;&#039;&#039;0.65&#039;&#039;&#039; || 0.50 || 0.64 || (1) || 1.11 || &#039;&#039;&#039;1.20&#039;&#039;&#039; || 1.13 || 1.26 || (2) || 1.61 || 1.61 || &#039;&#039;&#039;1.65&#039;&#039;&#039; || 1.71 /&amp;lt;br/&amp;gt;1.73 /&amp;lt;br/&amp;gt;1.86 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || 0.88 || (1) || &#039;&#039;&#039;1.67&#039;&#039;&#039; || &#039;&#039;&#039;1.67&#039;&#039;&#039; || 1.50 || 1.74 || (2) || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.25 || 2.33 || 2.37 /&amp;lt;br/&amp;gt;2.37 /&amp;lt;br/&amp;gt;2.54 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.18 || 1.18 || &#039;&#039;&#039;1.25&#039;&#039;&#039; || 1.20 || (1) || 2.20 || 2.31 || &#039;&#039;&#039;2.40&#039;&#039;&#039; || 2.40 || (2) || 3.21 || 3.21 || &#039;&#039;&#039;3.46&#039;&#039;&#039; || 3.40 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.31 || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.50 || (1) || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.00 || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || 7.50 || 7.50 || &#039;&#039;&#039;8.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;8.57 /&amp;lt;br/&amp;gt;8.28 * || (4) || 7.50 || 11.25 || &#039;&#039;&#039;15.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;13.09 /&amp;lt;br/&amp;gt;15.32 * || (12)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt; Throughput for basic/fast/express belt.&lt;br /&gt;
&lt;br /&gt;
Since there are many more factors involved, these measurements exhibit a more complex pattern than chest-to-belt.&lt;br /&gt;
&lt;br /&gt;
* Boldface cells show for which belt each inserter has the best throughput on each bonus level when items move at belt speed. Higher speed belts mean that inserters have to work harder to catch the fast moving items. The effect is most noticeable for slower inserters and smaller stack sizes.&lt;br /&gt;
* When items are queued up the belt type hardly matters, so there is only a single column for that. The exceptions are the stack inserters - for basic transport belts it&#039;s the belt that sets the limit for stack sizes above 4, and there is also a notable difference between fast and express belts.&lt;br /&gt;
&lt;br /&gt;
=== Belt to Chest (facing inserter) ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
When picking up items from a belt facing the inserter, there are multiple small differences between different setups. The following throughput tests are performed with [[express transport belt]]s and [[bulk inserter]]s with the maximum [[inserter capacity bonus (research)|capacity bonus]].&lt;br /&gt;
Each setup in the following picture shows the amount of ticks per cycle of the inserter and the amount of items per second the inserter moves. These measurements are consistent in all orientations of the setup.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter_belt_to_chest_throughput.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== Power usage ==&lt;br /&gt;
Inserter power draw is determined by several factors. &lt;br /&gt;
&lt;br /&gt;
Firstly like most machines, all of the inserters (with the exception of the burner) have drain. Drain is the energy cost of existence, and is expended constantly as long as the inserter exists on the power grid, regardless of activity or lack thereof.&lt;br /&gt;
&lt;br /&gt;
Inserters also have a two costs associated with movement. These costs are applied separately and cumulatively for rotational motion as well as extension/retraction.&lt;br /&gt;
&lt;br /&gt;
Lastly, inserters exhibit a power spike when acquiring and dropping off an item. This can be referred to as &amp;quot;item spike&amp;quot; because it is typically observed directly after item interaction. This is because after receiving/delivering an item it will begin extending/retracting a distance of 0.2 units (distance sourced from [https://github.com/wube/factorio-data/blob/master/base/prototypes/entity/entities.lua source code]). This power cost associated with linear movement is significantly more expensive than that of rotational movement, hence the sharp increase in power consumption.&lt;br /&gt;
&lt;br /&gt;
[[File:Yellow Inserter Power Spikes.png|thumb|Power Consumption graph of Yellow Inserter]]&lt;br /&gt;
&lt;br /&gt;
Here we can see that for the duration of the lateral movement the power consumption is significantly higher. &lt;br /&gt;
&lt;br /&gt;
Burner Inserters, despite not using electricity, also have the same power consumption characteristics as the rest of the inserters (excluding drain). Upon accepting fuel they will replenish something resembling an internal battery, and draw from it in the same manner other inserters draw from the power grid, item spikes and all. Aside from their exclusion from drain, Burner Inserters function identically to other Inserters.&lt;br /&gt;
&lt;br /&gt;
=== Energy Costs ===&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter Testing Setup.png|thumb|Inserter Testing Setup]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s important to note that due to rounding errors the games values cannot be taken at face value when doing calculations, so a blend of theoretical and empirical methods must be used to ensure accuracy. More information can be viewed here at this [https://forums.factorio.com/viewtopic.php?t=128389 forum topic]&lt;br /&gt;
&lt;br /&gt;
The game calculates inserter power based on its hard coded power modifiers:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inserter Power Modifiers (kJ)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are derived from [https://github.com/wube/factorio-data/blob/master/base/prototypes/entity/entities.lua source code]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 50 || 5 || 5 || 7 || 20 || 40&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The way the game uses these values is it takes the games programmed speed in ticks (which can be found higher up on the page), and then uses that alongside these numbers to derive a wattage, using the following equation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Speed * Power Modifier * Ticks per second&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Applying the equation we can derive the following values:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost of rotational movement in kW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 39 || 4.2 || 6 || 16.8 || 48 || 96&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost of linear movement in kW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 105 || 10.5 || 15 || 42 || 120 || 240&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Taking these two values and adding them together, alongside drain, will give you your max power. It is critical to note that while the duration of consumption is affected by rounding errors in the game like the time per spin and so on, the actual wattage is unaffected by these rounding errors. Just because the inserter spins slightly faster than in the games code doesn&#039;t mean it uses slightly more wattage, it still demands the same wattage.&lt;br /&gt;
&lt;br /&gt;
Your rotational power is used during the entire time the inserter is spinning, while the the extension cost is only used briefly during item interaction, causing item spike. By calculating the duration of both you can accurately calculate how many joules your inserter is using in any given situation. Just like with the rotational speeds, item spike duration is subject to rounding errors from the game. You can calculate it by taking the games rated distance of 0.2 and dividing it by the inserters rated speed, and then truncating the number. To save you some hassle here is a reference table&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tick duration of Item Spike&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 5 || 4 || 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Knowing these values, energy cost is easy to calculate, and is linear to inserter utilization. This means if your inserter is only running half the time, it will only use half the power, with the exception of drain which remains constant in all situations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost per transfer cycle in kJ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are isolated from drain. Values were theoretically derived and empirically confirmed for accuracy. [https://forums.factorio.com/viewtopic.php?t=128389 More information]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green !! Stack&lt;br /&gt;
|-&lt;br /&gt;
| 66.9 || 6.65 || 7 || 8.12 || 23.2 || 46.4&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inserter Efficiency ===&lt;br /&gt;
&lt;br /&gt;
The above data can be used to compare inserter efficiency directly. Remember that the transfer cycle cost remains the same regardless of how many items are moved. This means that the later inserters with their larger stack sizes can outperform other inserters despite their higher transfer cost, since they can achieve a lower cost per item. Here are some graphs of chest-to-chest data showing the efficiency of different inserters at differing stack sizes. Because the other inserters maintain a proportional relationship (as in an identical stack size) these graphs will primarily focus on highlighting the Green Inserter and new Stack Inserter. Dots have been marked at the turning point where they overtake the other inserters in efficiency&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Inserter Efficiency Graph (No Capacity Bonus).png||No Capacity Bonus&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 2).png|Capacity Bonus 2&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 4).png|Capacity Bonus 4&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 5) .png|Capacity Bonus 5&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png|Capacity Bonus 6&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 7).png|Capacity Bonus 7&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the Burner Inserter doesn&#039;t have drain, its efficiency can only be appreciated in extremely low throughput situations. Thus we use these dedicated graphs. Before one graph with no capacity bonus would have been sufficient because at low throughputs inserters don&#039;t wait and always default to as stack size of 1. The new Stack Inserter changes this though, because Stack Inserters do in fact wait until they get a full hand before beginning their swing, meaning they always remain at optimal efficiency unlike the rest of the inserters. Though having generated the graphs it appears to be largely irrelevant, as the fundamental relationship never really changes from one extreme to the other.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Burner Efficiency Graph (No Capacity Bonus).png|No Capacity Bonus&lt;br /&gt;
File:Burner Efficiency Graph (Capacity Bonus 7).png|Capacity Bonus 7&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Belt Differences===&lt;br /&gt;
Up until now all data was regarding chest-to-chest use cases, due to their sterile and consistent nature. The introduction of belts creates special conditions that require consideration. Here is a power chart from the game for reference:&lt;br /&gt;
&lt;br /&gt;
[[File:Yellow Inserter Belt-to-Belt Power Signature.png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
The Yellow Inserter above is doing a belt-to-belt transfer, and it has a stack bonus. &lt;br /&gt;
&lt;br /&gt;
The erratic section of the graph is the loading process. We can see the behavior is irregular as the inserter does not wait for the item, but rather fishes around for them. The exact behavior here is still being studied, and due to its dependence on stack size and belt speed it is very difficult to give any firm answers regarding how much power this actually uses as a quantifiable generalization. Likely a set of tables would need to be generated with every possible combination as a reference, but such data does not currently exist. The behavior should be consistent across belt speeds and stack sizes, so it can theoretically be gathered and collated into a reference table, though such data doesn&#039;t exist at this time.&lt;br /&gt;
&lt;br /&gt;
Looking at the unloading section, we can see the inserter swings around normally, but then there is this dip that doesn&#039;t exist in the chest to chest behavior. This is the inserter waiting at the belt to drop off all its items. During this waiting, it uses no power aside from its drain. Once all the items are delivered, it resumes operation as normal. Different amounts of delay caused by different belt speeds and stack sizes can create variations in both our throughput and our total cost per transfer due to the additional drain. This can also be easily modeled into a table, though such a table is currently unavailable&lt;br /&gt;
&lt;br /&gt;
If you are interested in volunteering to collect and share this data, you are encouraged to do so!&lt;br /&gt;
&lt;br /&gt;
What this currently means in practice is that you should just use the chest-to-chest data. The overall relationship between the inserters doesn&#039;t change significantly and their efficiency hierarchy remains undisturbed, though the exact consumption in joules per item likely increases noticeably. This could be problematic for other cost estimates in your factory, but for choosing inserters its not an issue.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; The above efficiency graphs only apply when loading from a chest. When loading from a belt, until a more accurate dedicated data set is provided, it is advised to reference the initial no capacity bonus version of the graph for all decisions. With an inserter stack size of 1, the efficiency relationship between chests and belts is identical.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regarding Quality:&#039;&#039;&#039; Quality inserters receive a linear speed boost for each level of quality, with a corresponding power cost increase. What this means is that the quality level of an inserter has no impact on its energy efficiency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;More data regarding inserters feeding from belts, as well as more detailed data regarding burner inserter power consumption is still needed. Please contribute if you are willing&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Electric system]]&lt;br /&gt;
* [[Belt transport system]]&lt;br /&gt;
* [[Inserter capacity bonus (research)]]: Inserter moves more than an item per turn.&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Inserters}} {{C|Inserters{{!}}#Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213571</id>
		<title>File:Burner Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213571"/>
		<updated>2025-04-26T07:55:39Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;br /&gt;
&lt;br /&gt;
Code if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, 500, 10000)&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy + x - x&lt;br /&gt;
yellow = (yellow_drain * x) + yellow_energy&lt;br /&gt;
red = (yellow_drain * x) + red_energy&lt;br /&gt;
blue = (blue_drain * x) + blue_energy&lt;br /&gt;
green = (green_drain * x) + green_energy&lt;br /&gt;
stack = (green_drain * x) + (stack_energy / stack_stack)&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = 160&lt;br /&gt;
ylim = burner_energy + 5&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 5&lt;br /&gt;
ytick = 1&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Burner Efficiency (No Capacity Bonus)&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Seconds / Item&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 2)&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(burner - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], burner[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(burner - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], burner[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(burner - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], burner[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(burner - green))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], burner[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect5 = np.argwhere(np.diff(np.sign(burner - stack))).flatten() &lt;br /&gt;
plt.plot(x[intersect5], burner[intersect5] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 12, loc = 4, borderpad = 3) &lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;) &lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 153&lt;br /&gt;
zylim = 68&lt;br /&gt;
zxinit = 147&lt;br /&gt;
zyinit = 66&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim) &lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.5&lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick)) &lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
plt.plot(x[intersect1], burner[intersect1] , &#039;ro&#039;)&lt;br /&gt;
plt.plot(x[intersect2], burner[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213570</id>
		<title>File:Burner Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213570"/>
		<updated>2025-04-26T07:54:21Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213569</id>
		<title>File:Burner Efficiency Graph (Capacity Bonus 7).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213569"/>
		<updated>2025-04-26T07:51:07Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;br /&gt;
&lt;br /&gt;
Code if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_stack = 16&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, 500, 10000)&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy + x - x&lt;br /&gt;
yellow = (yellow_drain * x) + yellow_energy&lt;br /&gt;
red = (yellow_drain * x) + red_energy&lt;br /&gt;
blue = (blue_drain * x) + blue_energy&lt;br /&gt;
green = (green_drain * x) + green_energy&lt;br /&gt;
stack = (green_drain * x) + (stack_energy / stack_stack)&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = 160&lt;br /&gt;
ylim = burner_energy + 5&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 5&lt;br /&gt;
ytick = 1&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Burner Efficiency (Capacity Bonus 7)&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Seconds / Item&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 2)&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(burner - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], burner[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(burner - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], burner[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(burner - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], burner[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(burner - green))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], burner[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect5 = np.argwhere(np.diff(np.sign(burner - stack))).flatten() &lt;br /&gt;
plt.plot(x[intersect5], burner[intersect5] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 12, loc = 4, borderpad = 3) &lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;) &lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 153&lt;br /&gt;
zylim = 68&lt;br /&gt;
zxinit = 147&lt;br /&gt;
zyinit = 66&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim) &lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.5&lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick)) &lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
plt.plot(x[intersect1], burner[intersect1] , &#039;ro&#039;)&lt;br /&gt;
plt.plot(x[intersect2], burner[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213568</id>
		<title>File:Burner Efficiency Graph (Capacity Bonus 7).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Burner_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213568"/>
		<updated>2025-04-26T07:45:11Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213567</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 5) .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213567"/>
		<updated>2025-04-26T07:40:14Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk reverted File:Inserter Efficiency Graph (Capacity Bonus 5) .png to an old version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 5. Intersection points are marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76 &lt;br /&gt;
yellow_speed = 60 / 70 &lt;br /&gt;
red_speed = 60 / 50 &lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2 &lt;br /&gt;
green_stack = 8&lt;br /&gt;
stack_stack = 12&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1 &lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1 &lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1 &lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size &lt;br /&gt;
dynamic_green = x / green_stack &lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack &lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count) &lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count) &lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count) &lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count) &lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack &lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1 &lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 5)&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1) &lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;) &lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 1.6 &lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0 &lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim) &lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1 &lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213566</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213566"/>
		<updated>2025-04-26T07:04:08Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing the efficiency of Inserters at capacity bonus 2. Worth observing is how Stack Inserters and Green Inserters are identically efficient at this stage.&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 4&lt;br /&gt;
stack_stack = 8&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 2)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213565</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_2).png&amp;diff=213565"/>
		<updated>2025-04-26T07:00:37Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing the efficiency of Inserters at capacity bonus 2&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Yellow_Inserter_Power_Spikes.png&amp;diff=213564</id>
		<title>File:Yellow Inserter Power Spikes.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Yellow_Inserter_Power_Spikes.png&amp;diff=213564"/>
		<updated>2025-04-26T06:12:43Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yellow Inserter Power Consumption graph showing item spiking&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_6)_(Zoomed).png&amp;diff=213563</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_6)_(Zoomed).png&amp;diff=213563"/>
		<updated>2025-04-26T05:39:54Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 6, and is zoomed in to the area of interest. Dots have been marked on the intersections.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate if necessary&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76 &lt;br /&gt;
yellow_speed = 60 / 70 &lt;br /&gt;
red_speed = 60 / 50 &lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2 &lt;br /&gt;
green_stack = 10&lt;br /&gt;
stack_stack = 14&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1 &lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1 &lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1 &lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size &lt;br /&gt;
dynamic_green = x / green_stack &lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack &lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count) &lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count) &lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count) &lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count) &lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = 5&lt;br /&gt;
ylim = 20&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.1 &lt;br /&gt;
ytick = 0.5&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 6) [Zoomed]&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect5 = np.argwhere(np.diff(np.sign(stack - red))).flatten() &lt;br /&gt;
plt.plot(x[intersect5], stack[intersect5] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect6 = np.argwhere(np.diff(np.sign(stack - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect6], stack[intersect6] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_6)_(Zoomed).png&amp;diff=213562</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_6)_(Zoomed).png&amp;diff=213562"/>
		<updated>2025-04-26T05:38:52Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 6, and is zoomed in to the area of interest&lt;br /&gt;
{{Screenshot}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213561</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 5) .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213561"/>
		<updated>2025-04-26T05:38:35Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 5) .png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 5. Intersection points are marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76 &lt;br /&gt;
yellow_speed = 60 / 70 &lt;br /&gt;
red_speed = 60 / 50 &lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2 &lt;br /&gt;
green_stack = 8&lt;br /&gt;
stack_stack = 12&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1 &lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1 &lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1 &lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size &lt;br /&gt;
dynamic_green = x / green_stack &lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack &lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count) &lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count) &lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count) &lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count) &lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack &lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1 &lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 5)&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1) &lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;) &lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 1.6 &lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0 &lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim) &lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1 &lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213560</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 5) .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213560"/>
		<updated>2025-04-26T05:36:48Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 5) .png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 5. Intersection points are marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76 &lt;br /&gt;
yellow_speed = 60 / 70 &lt;br /&gt;
red_speed = 60 / 50 &lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2 &lt;br /&gt;
green_stack = 8&lt;br /&gt;
stack_stack = 12&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1 &lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1 &lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1 &lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size &lt;br /&gt;
dynamic_green = x / green_stack &lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack &lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count) &lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count) &lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count) &lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count) &lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack &lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1 &lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 5)&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1) &lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;) &lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 1.6 &lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0 &lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim) &lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1 &lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213559</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 5) .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213559"/>
		<updated>2025-04-26T05:30:56Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 5. Intersection points are marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt &lt;br /&gt;
import numpy as np &lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76 &lt;br /&gt;
yellow_speed = 60 / 70 &lt;br /&gt;
red_speed = 60 / 50 &lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4 &lt;br /&gt;
blue_drain = 0.5 &lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9 &lt;br /&gt;
yellow_energy = 6.65 &lt;br /&gt;
red_energy = 7 &lt;br /&gt;
blue_energy = 8.12 &lt;br /&gt;
green_energy = 23.2 &lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2 &lt;br /&gt;
green_stack = 8&lt;br /&gt;
stack_stack = 12&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1 &lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1 &lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1 &lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size &lt;br /&gt;
dynamic_green = x / green_stack &lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack &lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count) &lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count) &lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count) &lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count) &lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15)) &lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack &lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim) &lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1 &lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick)) &lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 5)&amp;quot;) &lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid() &lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1) &lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;) &lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;) &lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;) &lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;) &lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;) &lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 1.6 &lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0 &lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim) &lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1 &lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten() &lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect4 = np.argwhere(np.diff(np.sign(stack - blue))).flatten() &lt;br /&gt;
plt.plot(x[intersect4], stack[intersect4] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213558</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 5) .png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_5)_.png&amp;diff=213558"/>
		<updated>2025-04-26T05:29:35Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 5) .png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 5.&lt;br /&gt;
{{Screenshot}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213557</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 7).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213557"/>
		<updated>2025-04-26T05:22:03Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7. Intersection points have been marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate graph if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 3&lt;br /&gt;
green_stack = 12&lt;br /&gt;
stack_stack = 16&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 7)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1)&lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 2.2&lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0&lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim)&lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1&lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten()&lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten()&lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213556</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 7).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213556"/>
		<updated>2025-04-26T05:21:41Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 7).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7. Intersection points have been marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate graph if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 3&lt;br /&gt;
green_stack = 12&lt;br /&gt;
stack_stack = 16&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 7)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1)&lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 2.2&lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0&lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim)&lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1&lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten()&lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten()&lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213555</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 4).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213555"/>
		<updated>2025-04-26T05:16:18Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: Fixed mixed up file code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 4. Worth noting is the significant overlap between stack inserters and green inserters.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Here is the code to reproduce the graph in python if it ever needs editing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 6&lt;br /&gt;
stack_stack = 10&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 4)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = 4)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 6, loc = 2, borderpad = 1)&lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 3.5&lt;br /&gt;
zylim = 15&lt;br /&gt;
zxinit = 2&lt;br /&gt;
zyinit = 5&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim)&lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1&lt;br /&gt;
zytick = 0.4&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten()&lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213554</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 4).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213554"/>
		<updated>2025-04-26T05:15:12Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 4).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 4. Worth noting is the significant overlap between stack inserters and green inserters.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Here is the code to reproduce the graph in python if it ever needs editing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 4&lt;br /&gt;
stack_stack = 8&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 2)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213553</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 4).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213553"/>
		<updated>2025-04-26T05:14:47Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 4).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 4. Worth noting is the significant overlap between stack inserters and green inserters.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Here is the code to reproduce the graph in python if it ever needs editing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 4&lt;br /&gt;
stack_stack = 8&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 2)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213552</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 7).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213552"/>
		<updated>2025-04-26T05:04:22Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7. Intersection points have been marked.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Code to recreate graph if needed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 3&lt;br /&gt;
green_stack = 12&lt;br /&gt;
stack_stack = 16&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 1&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 7)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1)&lt;br /&gt;
zax.yaxis.tick_right()&lt;br /&gt;
&lt;br /&gt;
zax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
zax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
zax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
zax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
zax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
zax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
zxlim = 2.2&lt;br /&gt;
zylim = 6&lt;br /&gt;
zxinit = 0&lt;br /&gt;
zyinit = 0&lt;br /&gt;
&lt;br /&gt;
zax.set_xlim(zxinit, zxlim)&lt;br /&gt;
zax.set_ylim(zyinit, zylim)&lt;br /&gt;
&lt;br /&gt;
zxtick = 0.1&lt;br /&gt;
zytick = 0.2&lt;br /&gt;
&lt;br /&gt;
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))&lt;br /&gt;
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))&lt;br /&gt;
&lt;br /&gt;
zax.grid()&lt;br /&gt;
&lt;br /&gt;
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten()&lt;br /&gt;
plt.plot(x[intersect1], green[intersect1] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()&lt;br /&gt;
plt.plot(x[intersect2], green[intersect2] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten()&lt;br /&gt;
plt.plot(x[intersect3], green[intersect3] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213551</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 7).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_7).png&amp;diff=213551"/>
		<updated>2025-04-26T05:03:17Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 7).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7.&lt;br /&gt;
{{Screenshot}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213550</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213550"/>
		<updated>2025-04-26T04:26:00Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus. Intersection point at [~1.25418, 25] where stack inserters become more efficient than blue inserters has been marked with a dot.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
This is the matplot code used to generate this graph in python, in case it needs to be updated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 1&lt;br /&gt;
green_stack = 2&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (No Capacity Bonus)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
intersect = np.argwhere(np.diff(np.sign(blue - stack))).flatten()&lt;br /&gt;
plt.plot(x [intersect], stack[intersect] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wiki seems to not parse line breaks correctly but that can easily be handled by the end user.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213549</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 4).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213549"/>
		<updated>2025-04-26T04:24:24Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 4. Worth noting is the significant overlap between stack inserters and green inserters.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
Here is the code to reproduce the graph in python if it ever needs editing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 2&lt;br /&gt;
green_stack = 4&lt;br /&gt;
stack_stack = 8&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (Capacity Bonus 2)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213548</id>
		<title>File:Inserter Efficiency Graph (Capacity Bonus 4).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(Capacity_Bonus_4).png&amp;diff=213548"/>
		<updated>2025-04-26T04:21:17Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 4).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 4.&lt;br /&gt;
{{Screenshot}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213547</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213547"/>
		<updated>2025-04-26T04:03:40Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus. Intersection point at [~1.25418, 25] where stack inserters become more efficient than blue inserters has been marked with a dot.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
This is the matplot code used to generate this graph in python, in case it needs to be updated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
import math&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 1&lt;br /&gt;
green_stack = 2&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (No Capacity Bonus)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
intersect = np.argwhere(np.diff(np.sign(blue - stack))).flatten()&lt;br /&gt;
plt.plot(x [intersect], stack[intersect] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wiki seems to not parse line breaks correctly but that can easily be handled by the end user.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213546</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213546"/>
		<updated>2025-04-26T03:58:25Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (No Capacity Bonus).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus. Intersection point has been marked with a dot.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
This is the matplot code used to generate this graph in python, in case it needs to be updated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
import math&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 1&lt;br /&gt;
green_stack = 2&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (No Capacity Bonus)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
intersect = np.argwhere(np.diff(np.sign(blue - stack))).flatten()&lt;br /&gt;
plt.plot(x [intersect], stack[intersect] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wiki seems to not parse line breaks correctly but that can easily be handled by the end user.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213545</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213545"/>
		<updated>2025-04-26T03:57:53Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus. Intersection point has been marked with a dot.&lt;br /&gt;
{{Screenshot}}&lt;br /&gt;
&lt;br /&gt;
This is the matplot code used to generate this graph in python, in case it needs to be updated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
import math&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes&lt;br /&gt;
&lt;br /&gt;
burner_speed = 60 / 76&lt;br /&gt;
yellow_speed = 60 / 70&lt;br /&gt;
red_speed = 60 / 50&lt;br /&gt;
blue_speed = 60 / 24&lt;br /&gt;
&lt;br /&gt;
yellow_drain = 0.4&lt;br /&gt;
blue_drain = 0.5&lt;br /&gt;
green_drain = 1&lt;br /&gt;
&lt;br /&gt;
burner_energy = 66.9&lt;br /&gt;
yellow_energy = 6.65&lt;br /&gt;
red_energy = 7&lt;br /&gt;
blue_energy = 8.12&lt;br /&gt;
green_energy = 23.2&lt;br /&gt;
stack_energy = 46.4&lt;br /&gt;
&lt;br /&gt;
stack_size = 1&lt;br /&gt;
green_stack = 2&lt;br /&gt;
stack_stack = 6&lt;br /&gt;
&lt;br /&gt;
x = np.linspace(0, blue_speed * stack_stack, 300)&lt;br /&gt;
&lt;br /&gt;
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1&lt;br /&gt;
red_count = np.trunc(x / (red_speed * stack_size)) + 1&lt;br /&gt;
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1&lt;br /&gt;
green_count = np.trunc(x / (blue_speed * green_stack)) + 1&lt;br /&gt;
&lt;br /&gt;
dynamic_stack = x / stack_size&lt;br /&gt;
dynamic_green = x / green_stack&lt;br /&gt;
dynamic_stacker = x / stack_stack&lt;br /&gt;
&lt;br /&gt;
burner = burner_energy * dynamic_stack&lt;br /&gt;
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)&lt;br /&gt;
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)&lt;br /&gt;
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)&lt;br /&gt;
green = (green_energy * dynamic_green) + (green_drain * green_count)&lt;br /&gt;
stack = (stack_energy * dynamic_stacker) + green_drain&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize = (20, 15))&lt;br /&gt;
ax = plt.axes()&lt;br /&gt;
&lt;br /&gt;
ax.plot(x, burner, label = &amp;quot;Burner&amp;quot;, color = &amp;quot;black&amp;quot;)&lt;br /&gt;
ax.plot(x, yellow, label = &amp;quot;Yellow&amp;quot;, color = &amp;quot;orange&amp;quot;)&lt;br /&gt;
ax.plot(x, red, label = &amp;quot;Red&amp;quot;, color = &amp;quot;red&amp;quot;)&lt;br /&gt;
ax.plot(x, blue, label = &amp;quot;Blue&amp;quot;, color = &amp;quot;blue&amp;quot;)&lt;br /&gt;
ax.plot(x, green, label = &amp;quot;Green&amp;quot;, color = &amp;quot;green&amp;quot;)&lt;br /&gt;
ax.plot(x, stack, label = &amp;quot;Stack&amp;quot;, color = &amp;quot;purple&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xlim = blue_speed * stack_stack&lt;br /&gt;
ylim = (stack_energy / stack_stack) * xlim&lt;br /&gt;
&lt;br /&gt;
ax.set_ylim(0, ylim)&lt;br /&gt;
ax.set_xlim(0, xlim)&lt;br /&gt;
&lt;br /&gt;
xtick = 0.5&lt;br /&gt;
ytick = 2&lt;br /&gt;
&lt;br /&gt;
ax.set_xticks(np.arange(0, xlim + xtick, xtick))&lt;br /&gt;
ax.set_yticks(np.arange(0, ylim + ytick, ytick))&lt;br /&gt;
&lt;br /&gt;
ax.set_title(&amp;quot;Inserter Efficiency (No Capacity Bonus)&amp;quot;)&lt;br /&gt;
ax.set_xlabel(&amp;quot;Items / second&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
ax.set_ylabel(&amp;quot;Power Cost (kW)&amp;quot;, fontweight = &amp;quot;bold&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ax.grid()&lt;br /&gt;
ax.legend(loc = &amp;quot;best&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
intersect = np.argwhere(np.diff(np.sign(blue - stack))).flatten()&lt;br /&gt;
plt.plot(x [intersect], stack[intersect] , &#039;ro&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wiki seems to not parse line breaks correctly but that can easily be handled by the end user.&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213544</id>
		<title>File:Inserter Efficiency Graph (No Capacity Bonus).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Inserter_Efficiency_Graph_(No_Capacity_Bonus).png&amp;diff=213544"/>
		<updated>2025-04-26T03:51:30Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (No Capacity Bonus).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graph showing efficiency of different inserters at different throughputs. This version has no capacity bonus&lt;br /&gt;
{{Screenshot}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213315</id>
		<title>Talk:Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213315"/>
		<updated>2025-04-13T23:12:45Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Recent Power Usage Edit for typo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [https://forums.factorio.com/viewtopic.php?f=7&amp;amp;t=22#p71]&lt;br /&gt;
&lt;br /&gt;
Removed. But eventually helpful. [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 02:45, 31 December 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Changes for 0.17 ==&lt;br /&gt;
&lt;br /&gt;
The faster belt speeds probably change the results for some of the entries in these tables. It looks like they haven&#039;t been updated yet. --[[User:Omnifarious|Omnifarious]] ([[User talk:Omnifarious|talk]]) 14:59, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
They have been updated by [[User:Bilka|Bilka]] in [[Special:PermanentLink/172015|This revision]]. --[[User:Swan|Swan]] ([[User talk:Swan|talk]]) 17:19, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
&lt;br /&gt;
I updated this wiki to show ticks per turn in the inserter speed section. My results seem to clash with the previous information about rotation speed (102 ticks = 1.7 seconds, there is a discrepancy between the rotation time of burner inserters most notably). The experiment I performed was done on vanilla factorio 0.14.22. I used two steel chests with varying inserters for each experiment. The inserters were fully powered at all times. The first chest is wired to a combinator which tests for any items in the chest, and outputs 1 signal X. This signal is added to a tallying arithmetic combinator. This arithmetic combinator is wired to itself, and outputs T + X. The value of T at setup is 0. I begin this experiment by placing large stacks of items into the first chest. I place only 201 transfers worth of material into the chest. This will stop the timer as soon as the last item is removed, which occurs after 200 transfers. With this setup I obtained the results as I have reported them. The timer always stopped on a multiple of 200, indicating that the number of ticks per full turn is an integer number. This is why I decided to add a separate column for this value. I may in the future update the other rotation speed metrics to match my results. --[[User:Reububble|Reububble]] ([[User talk:Reububble|talk]]) 18:19, 8 March 2017 (UTC)&lt;br /&gt;
:Which orientation were the inserters? Inserters facing north have lower throughput, might mean they have slower rotation speed. --[[User:Artorp|Artorp]] ([[User talk:Artorp|talk]]) 20:47, 5 April 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== put the &amp;quot;Inserters And Transport Belt Interaction&amp;quot; examples in a table so they are side by side ==&lt;br /&gt;
&lt;br /&gt;
i see why that was a bad idea, but i would rather see them side by side if it were possible to make a table that, when the horizontal space it has to display is smaller than all 4 makes it so there are 3 and on another &amp;quot;line&amp;quot; another 1 or 2x2 or all underneath one another like it is now.&lt;br /&gt;
&lt;br /&gt;
: I put them in a 2x2 square; I think that&#039;s the best way to see all of them at once. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 13:17, 14 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Problem with translation ==&lt;br /&gt;
&lt;br /&gt;
Could someone explain to me what it is &#039;&#039;&#039;Extension Speed&#039;&#039;&#039; and why it is expressed in &#039;&#039;&#039;Tiles per Tick&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a translation and can not find a word - without knowing what it is ;){{unsigned|JakubSTR|08:43, 6 March 2018‎}}&lt;br /&gt;
&lt;br /&gt;
:I&#039;d describe extension speed as how fast the inserter &amp;quot;extends&amp;quot;, so in this case how fast its arm gets longer/shorter to be able to reach an item on the far or near side of the belt. It&#039;s expressed in tiles per tick because that is a unit of speed, just like meters per second :) An inserter that has an extension speed of 1 tile per tick needs 1 tick to make its arm longer by a whole tile. I hope this helps. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:11, 6 March 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Recent Power Usage Edit ==&lt;br /&gt;
&lt;br /&gt;
The Power Usage section was recently edited by user &#039;&#039;Queithe1E&#039;&#039; in a way I find to be incorrect and misleading. I&#039;ll break down some of the problems I have with the edit and why I think they&#039;re problematic.&lt;br /&gt;
&lt;br /&gt;
Firstly large swaths of context were removed and branded as &amp;quot;speculation&amp;quot;. Those are actually very important contextually as inserter behavior is unusual and not what you&#039;d expect. I&#039;m okay with the section being rewritten for the sake of brevity (in fact I&#039;d probably recommend it as I was perhaps too verbose originally), but only if it&#039;s concise and accurate. &lt;br /&gt;
&lt;br /&gt;
Which segways directly into my second point, which is that the new information that took its place seems to show a misunderstanding of the original information, and is incorrect at times. For example at one point it says &amp;quot;The maximum power consumption as shown in an inserter&#039;s tooltip assumes that both types of movement take place at the same time&amp;quot;, but that&#039;s not actually true, and the previous explanation explicitly communicated a completely different idea. Inserters maximum power usage is absolutely not the sum of rotational and lateral movement costs being expended simultaneously, and there&#039;s absolutely nothing to even suggest that might be the case anywhere, neither in the games data or the empirical data that was gathered.&lt;br /&gt;
&lt;br /&gt;
And that once again segways neatly into my next problem which is I find the inclusion of the games lua data to be misleading and problematic, with the reason being that it&#039;s not actually accurate. Empirical testing shows the real values are very different from what the game claims in its lua data, which is something I went to great length to identify, explain, and quantify. The inclusion of the games lua data in such a position of prominence right at the top of the section, and with absolutely no disclaimer, is very misleading due to the discrepancy with actual measured data. &lt;br /&gt;
&lt;br /&gt;
There&#039;s also some other information that I don&#039;t really know what to make of. They mention part of the inserters initial power draw is used filling an energy buffer. I&#039;m not aware that electrical inserters even have an energy buffer, as far as I&#039;m aware that&#039;s just the burners, and how he can confidently attribute this power draw to this buffer is anyone&#039;s guess. It&#039;s really just idk, it could be right but I have no clue what he&#039;s basing this on. Also later he does an equation seemingly based off the graph and the lua data which does seem to check out, but it&#039;s completely at odds with the empirical data that was collected. This actually made me question my sanity so I went back and reviewed my original data and confirmed that my findings ultimately also agreed with the games power panel when averaged over time (this is cited in my forum post as 8.8kw of operational cost for red inserters during testing), and combined with the fact that it&#039;s a larger data set with more stringent analysis I&#039;m more inclined to believe my tests accuracy over a low detail in game graph and some numbers I know to be inaccurate. &lt;br /&gt;
&lt;br /&gt;
Also as I was reviewing this before hitting publish having already written everything further down I realized even the subject of the above paragraph is in self contradiction, because if you apply the equation he gives to extension/retraction using the value from lower down on the wiki you end up with &#039;&#039;0.0457 * 5 * 60&#039;&#039; which equals just 13.71. If you add drain that becomes 14.11, so it seems like the internal buffer he alleges is the remaining 0.89. But then he turns around and I guess to get that 21 max power equals these two numbers he takes 15 and adds the 6 he calculated, meaning he essentially adds this buffer as a second source of drain or something during extensions or during peaks? It just doesn&#039;t add up, it&#039;s very strange. I pulled that 0.0457 from further down on the wiki so it&#039;s possible that number is actually approximately 0.003 too low, in which case his formula for max power would add up properly, but of course then his buffer theory would disappear. Anyway remember the paragraph below this is meant to follow the paragraph directly above this one. &lt;br /&gt;
&lt;br /&gt;
And this is another important problem with the change, because now the entire section feels incoherent and self contradictory. It was specifically written to show these empirically derived numbers that differ from what the game claims, but now the original game numbers are present and conflicting with and undermining the empirical data, which most importantly is more accurate. &lt;br /&gt;
&lt;br /&gt;
And I could keep nitpicking about little stuff or how the little context around the burner was removed, but ultimately I think I made my point. The main problems with the change are that it says certain things at are provably wrong, removes certain important context, and ultimately confuses the issue by prominently asserting a separate data set that was tested to be inaccurate, and is in direct contradiction with the data set directly below it. I&#039;m gonna be rolling back the change for these reasons, since I believe the prior version was more accurate and less confusing. If you disagree or have questions please reach out as I&#039;m happy to discuss the topic further &lt;br /&gt;
&lt;br /&gt;
--[[User:GregFirehawk|GregFirehawk]] ([[User talk:GregFirehawk|talk]]) 01:01, 13 April 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213302</id>
		<title>Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213302"/>
		<updated>2025-04-13T01:04:10Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: Undo revision 213215 by Queith1E (talk) See Discussion topic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;For the common yellow electrical inserter, see [[Inserter]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inserters&#039;&#039;&#039; are devices which are used to move items over short distances. When placed, they have a fixed direction. They can move items from behind and place them in front of them. By doing this, they can move items from one transport belt to another, but also extract items from—and insert items into—machines or storage devices.&lt;br /&gt;
&lt;br /&gt;
== Types of inserters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| {{Imagelink|Burner inserter}} || The only [[fuel]]-powered inserter, with the slowest speed.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Inserter}} || The standard electrical inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Long-handed inserter}} || Capable of inserting and removing items from a greater distance.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Fast inserter}} || Much faster than the inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Bulk inserter}} || As fast as the fast inserter, but can move many more items at the same time at once.    &lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Stack inserter|space-age=yes}} || As fast as the bulk inserter, but can stack items on a belt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mechanics ==&lt;br /&gt;
Inserters &#039;&#039;&#039;will&#039;&#039;&#039;:&lt;br /&gt;
* Pick up items off the ground, off of a [[Transport belts|transport belt]], or from any object that has storage space, such as [[Chests|chests]], [[furnace]]s [[assembling machine]]s or [[vehicle]]s.&lt;br /&gt;
* Place the item onto the ground, onto a transport belt, or into any object that has storage space.&lt;br /&gt;
* Run at slower speeds when starved for energy.&lt;br /&gt;
* Pick up as many items as their [[inserter capacity bonus (research)|stack size]] allows at once, if they do not have to wait too long to pick them up.&lt;br /&gt;
* Pick up items and drop them into the void of space or lava, permanently destroying them. This is useful for getting rid of unwanted items.&lt;br /&gt;
&lt;br /&gt;
Inserters &#039;&#039;&#039;will not&#039;&#039;&#039;:&lt;br /&gt;
* Pick up any items that cannot be inserted into the adjacent entity.&lt;br /&gt;
* Pick up any items if the adjacent entity is a [[ghost]].&lt;br /&gt;
* Pick up items to place into an entity with a full inventory.&lt;br /&gt;
* Place more than one item at a time onto the same ground tile.&lt;br /&gt;
* Place items into an entity that cannot hold them, for example due to [[Stack#Filtered_stacks|filtered]] or [[Stack#Stack_limitation|limited slots]].&lt;br /&gt;
* Fill up the entire target inventory of [[boiler]]s, [[nuclear reactor]]s, [[:Category:Producers|production building]]s, [[furnace]]s and [[turret]]s.&lt;br /&gt;
&lt;br /&gt;
If two or more inserters are picking up from the same tile, the inserter who can grab the items the fastest will grab them first. Besides faster inserters, this favors inserters taking from the inner lane of a transport belt.&lt;br /&gt;
&lt;br /&gt;
=== Insertion limits ===&lt;br /&gt;
Depending on where an inserter is moving items, it does not always fill up the entire target inventory. This allows other inserters taking from the same transport belt to pick up their share of the items. For example, if a boiler has 5 or more items of fuel in it, an inserter will not insert additional fuel. This allows the other fuel to travel further down the transport belt. When the fuel drops below 5 items, the inserter will resume inserting fuel, up to the limit of 5 items.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Entity !! Item type !! Automatic insertion limit&lt;br /&gt;
|-&lt;br /&gt;
| [[Boiler]]s, [[burner inserter]]s, [[furnace]]s, and [[nuclear reactor]]s || [[Fuel]] || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Gun turret]]s || Bullet Magazines || align=&amp;quot;center&amp;quot; | 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Artillery turret]]s || [[Artillery shell]]s || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Assembling machine]]s, [[furnace]]s, [[centrifuge]]s, [[chemical plant]]s, and [[Oil refinery|oil refineries]]|| Items needed for the recipe || The ingredients for 1 craft in addition to the ingredients for the number of crafts that can be completed during one full inserter swing; but at least the ingredients for 2 crafts and at most the ingredients for 100 crafts.[https://forums.factorio.com/viewtopic.php?p=309796#p309796]&lt;br /&gt;
|-&lt;br /&gt;
| [[Lab]]s || [[Science pack]]s || The number of science packs needed for one research unit in addition to the science packs for the number of research units that can be completed during one full inserter swing; but at least the ingredients for 2 research units and at most the ingredients for 100 research units.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An inserter that has a higher [[inserter capacity bonus (research)|inserter capacity bonus]] than 1 can overfill the target building, due to the inserter picking up a higher amount of items than needed. Overfilling can also occur if  multiple inserters are used to insert items into one building.&lt;br /&gt;
&lt;br /&gt;
=== Inserters and transport belts ===&lt;br /&gt;
[[Transport belts]] have two lanes on which items can travel. Inserters only place items onto one side of the belt, either the far side from the inserter&#039;s perspective or if the belt is going the same or the opposite direction as the inserter the right side from the belt&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | [[File:Inserter_dropoff_locations.gif]] || [[File:Inserter_pickup_locations.gif]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | Inserters place the item on the furthest lane. If a belt is in the same orientation as the inserter, the item will be placed on the right-hand lane, from the belt&#039;s perspective. In curves the inserter always places on the far side.&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | If the belt is perpendicular to the inserter, inserters &#039;&#039;&#039;prefer&#039;&#039;&#039; taking items from the nearest lane. If the nearest lane is empty, the inserter will take from the far lane. If the belt is the same/opposite orientation of the inserter or a curve, the inserter &#039;&#039;&#039;prefers&#039;&#039;&#039; taking from the left lane, from the belt&#039;s perspective. If the left lane is empty it will take from the right lane.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Potential issues ===&lt;br /&gt;
Inserters may have problems picking up items:&lt;br /&gt;
&lt;br /&gt;
* From very fast belts, because the items are moving too quickly.&lt;br /&gt;
* From the entry or exit of an underground belt (because the time they have to pick up is shorter)&lt;br /&gt;
* From turning belts if the item is on the inside of the corner&lt;br /&gt;
&lt;br /&gt;
== Power usage ==&lt;br /&gt;
Inserter power draw is determined by several factors. &lt;br /&gt;
&lt;br /&gt;
Firstly like most machines, all of the inserters (with the exception of the burner) have drain. Drain is the energy cost of existence, and is expended constantly as long as the inserter exists on the power grid, regardless of activity or lack thereof.&lt;br /&gt;
&lt;br /&gt;
Inserters also have a cost associated with movement. This cost is applied separately and cumulatively for rotational motion as well as extension/retraction.&lt;br /&gt;
&lt;br /&gt;
Lastly, inserters exhibit a power spike when initializing an action or movement. This can be referred to as &amp;quot;item spike&amp;quot; because it is typically observed directly upon picking up an item. This is because after receiving an item, it will initialize its next action, such as unloading the item. We know this spike is a result of the initialization of a new command for the inserter, and not directly as a result of the item, because of behavior that will be covered later. In other words, the spike occurs when switching between loading and unloading behavior.&lt;br /&gt;
&lt;br /&gt;
Here is power graph of a red inserter receiving power for the very first time:&lt;br /&gt;
&lt;br /&gt;
[[File:Red Power Pulse.png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
Notice there is a spike as it boots, followed by a movement line. This movement line is the cost of rotation + the cost of extension, as inserters start scrunched up when first built, and then the arm extends. This specific behavior is only exhibited by newly built inserters receiving power for the first time, so we can largely ignore the behavior on the left. It is worth remembering for when devising a testing setup though, as this does need to be isolated out of the final results for accuracy. It will also become relevant again further down.&lt;br /&gt;
&lt;br /&gt;
Continuing on, we have the power signature of a single item being transferred chest-to-chest. First there is a spike when retrieving the item. Even though the spike is flattened, implying a duration, upon closer inspection it does appear to only be a single tick duration of spike. It is not clear from the testing why these peaks are flattened while the initial is not. The arm then begins rotating, and its cost of rotation is shown by the valley. It then drops off the item, resulting in a second spike, and proceeds to swing back towards the input. This completes one full cycle.&lt;br /&gt;
&lt;br /&gt;
Notice how when not active, the consumption remains above 0. This is the drain we discussed earlier, which in this example is 400W.&lt;br /&gt;
&lt;br /&gt;
Burner Inserters, despite not using electricity, also have the same power consumption characteristics as the rest of the inserters (excluding drain). Upon accepting fuel they will replenish something resembling an internal battery, and draw from it in the same manner other inserters draw from the power grid, consumption spikes and all. The exact behavior of burners is a bit quirky due to how this works, and that can be found in more detail on their dedicated page [information not yet added].&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter Testing Setup.png|thumb|Inserter Testing Setup]]&lt;br /&gt;
&lt;br /&gt;
=== Energy Costs ===&lt;br /&gt;
&lt;br /&gt;
Using the following equation and empirical testing, we derive the values below. Note that values for burner inserters are derived with coal as a baseline. The fuel density used in the burner actually affects its measured values due to some quirks with how they operate, with higher fuel densities leading to improved performance. More detailed information for all inserters is available in the original forum post here &#039;&#039;https://forums.factorio.com/124635&#039;&#039;, where the entirety of the calculations is shown and documented in detail for those interested. &lt;br /&gt;
&lt;br /&gt;
 ((Max Power Consumption - Drain) * (2 /seconds per tick)) + ((Power Consumption of Motion - Drain) * ((Full Rotation Constant / Rotation Speed) - (2 / seconds per tick))) = kJ per Inserter Rotation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost of rotational movement in kW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are isolated from drain. Values with &#039;&#039;~&#039;&#039; are rounded&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green&lt;br /&gt;
|-&lt;br /&gt;
| ~51.362 || ~5.437 || ~7.875 || ~16.741 || ~47.957&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost per transfer cycle in kJ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are isolated from drain. Values with &#039;&#039;~&#039;&#039; are rounded.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green&lt;br /&gt;
|-&lt;br /&gt;
| ~68.147 || ~6.652 || ~7 || ~8.115 || ~23.184&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inserter Efficiency ===&lt;br /&gt;
&lt;br /&gt;
The above data can be used to compare inserter efficiency directly. Remember that the transfer cycle cost remains the same regardless of how many items are moved (with one exception that will be covered later). This means that Green Inserters with their larger stack size can outperform other inserters despite their higher transfer cost, since they can achieve a lower cost per item. Here are some graphs of chest-to-chest data showing the efficiency of different inserters at differing stack sizes. Because the other inserters maintain a proportional relationship (as in an identical stack size) these graphs will primarily focus on highlighting the Green Inserter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Inserter Efficiency Graph (No Capacity Bonus).png||No Capacity Bonus&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 4).png|Capacity Bonus 4&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 5) .png|Capacity Bonus 5&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png|Capacity Bonus 6&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 7).png|Capacity Bonus 7&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the Burner Inserter doesn&#039;t have drain, its efficiency can only be appreciated in extremely low throughput situations. Thus we use this dedicated graph:&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter Efficiency Graph (Burner Version).png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
Because of how extremely low the throughput is, generating additional graphs for higher stack sizes is unnecessary. At higher stack sizes simply divide the reference time by the stack size.&lt;br /&gt;
&lt;br /&gt;
=== Belt Differences===&lt;br /&gt;
Up until now all data was regarding chest-to-chest use cases, due to their sterile and consistent nature. The introduction of belts creates special conditions that require consideration. Here is a power chart from the game for reference:&lt;br /&gt;
&lt;br /&gt;
[[File:Yellow Inserter Belt-to-Belt Power Signature.png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
The Yellow Inserter above is doing a belt-to-belt transfer, and it has a stack bonus. &lt;br /&gt;
&lt;br /&gt;
The erratic section of the graph is the loading process. We can see the behavior is irregular as the inserter does not wait for the item, but rather fishes around for them. The exact behavior here is still being studied, and due to its dependence on stack size and belt speed it is very difficult to give any firm answers regarding how much power this actually uses as a quantifiable generalization. Likely a set of tables would need to be generated with every possible combination as a reference, but such data does not currently exist. We can see the movement section seems to as an average indicate the combined cost of rotation and extension/retraction (this is not covered here as detailed data does not exist, but the games code suggests these two costs are identical), which we saw in our original power pulse earlier. This would make sense as the inserter is moving inwards and outwards as well as wiggling side to side as it fishes for items, but this isn&#039;t confirmed, and could be inapplicable in faster use cases. To add to the hypothesis, we can assume that faster belts increase inserter efficiency by shortening the loading time. But that&#039;s all speculative until more data is collected. What we can confirm is at the end of the loading cycle we have our distinctive power spike, which is indicative the inserter is now switching to unloading.&lt;br /&gt;
&lt;br /&gt;
Looking at the unloading section, we can see the inserter swings around normally, but then there is this dip that doesn&#039;t exist in the chest to chest behavior. This is the inserter waiting at the belt to drop off all its items. During this waiting, it uses no power aside from its drain. Once all the items are delivered, it spikes, indicating it is going back to its loading behavior. &lt;br /&gt;
&lt;br /&gt;
What this means in practice is whenever you are loading from a chest, regardless of whether you are delivering to a chest or belt, the efficiency relationship remains the same. The additional duration of drain has no bearing on the energy efficiency. When loading from a belt, we can see there is additional energy consumption for stack sizes greater than 1. Currently there is not much that can advised regarding how to compensate for this, so the best advice is to just pretend it doesn&#039;t exist for now. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; The above efficiency graphs only apply when loading from a chest. When loading from a belt, until a more accurate dedicated data set is provided, it is advised to reference the initial no capacity bonus version of the graph for all decisions. With an inserter stack size of 1, the efficiency relationship between chests and belts is identical.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regarding Quality:&#039;&#039;&#039; Quality inserters receive a linear speed boost for each level of quality, with a corresponding power cost increase. What this means is that the quality level of an inserter has no impact on its energy efficiency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;More data regarding inserters feeding from belts, as well as more detailed data regarding burner inserter power consumption is still needed. Please reach out via the forum if you would like to help or contribute in collecting this data, either here https://forums.factorio.com/124635 or here https://forums.factorio.com/125710&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
[[File:all_inserter_speeds.gif|frame|right|Animation showing all inserter speeds at once.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Rotation-speed (turns per [[Time#Ticks|tick]])&amp;lt;br/&amp;gt;Extension-speed ([[Map_structure#Tile|Tiles]] per Tick)&lt;br /&gt;
! Turns per [[Time#Seconds|Game-second]]&lt;br /&gt;
! Game-second per full turn&lt;br /&gt;
! Ticks per full turn&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.01&amp;lt;br/&amp;gt;0.0214 || 0.60 || 1.667 || 100&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.014&amp;lt;br/&amp;gt;0.03 || 0.83 || 1.2 || 72&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 0.02&amp;lt;br/&amp;gt;0.0457 || 1.2 || 0.833 || 50&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}}&amp;lt;br/&amp;gt;{{Imagelink|Bulk inserter}} || 0.04&amp;lt;br/&amp;gt;0.07 || 2.31 || 0.433 || 26&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; These numbers come directly from the [https://github.com/wube/factorio-data/tree/master/base/prototypes/entity factorio-data github repository].&lt;br /&gt;
&lt;br /&gt;
=== Rotation Speed ===&lt;br /&gt;
Convention: 2π rad = 100% of a circle rotation = &#039;&#039;&#039;1 turn&#039;&#039;&#039; (or one full rotation).&lt;br /&gt;
&lt;br /&gt;
Note: an Inserter doesn&#039;t always need to make full turns. When grabbing from a transport belt, it is slightly faster when grabbing items from the closest lane.&lt;br /&gt;
&lt;br /&gt;
Note: If the rotation speed of an inserter would result in an odd number of ticks per full turn, the actual number of ticks per full turn for this inserter is the next higher even number. The reason for this is that the inserter needs to do two half turns to pick and drop an item. This takes a certain number of ticks two times, therefore the number of ticks for the full turn is always an even number. Example: The Fast inserter&#039;s rotation speed of 864°/s or 0.04 turns per tick would result in 25 ticks per full turn, but the inserter cannot do a half turn in &amp;quot;12.5 ticks&amp;quot;, so it actually takes 2*13 = 26 ticks per full turn.&lt;br /&gt;
&lt;br /&gt;
=== Extension Speed ===&lt;br /&gt;
The extension-speed is normally not visible (only when compared to other inserters), but there are measurable speed differences when taking - for example - from the near or the far side of a belt. Also Some mods can alter the pickup and drop locations of inserters, making this stat more relevant.&lt;br /&gt;
&lt;br /&gt;
== Inserter Throughput ==&lt;br /&gt;
&lt;br /&gt;
=== Chest to chest ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 2.0.26, recorded in this doc [https://docs.google.com/spreadsheets/d/1L8Td5o6TAicGi-TPwzh4lz2YiH0n7Jkpp3E8FxNpnAs/edit?usp=sharing]. Chest to chest transfer transfers the entire hand size during a single tick, so most of the time is spent during the swing to and from.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=2 | Type&lt;br /&gt;
! rowspan=2 | Arm cycles per second (ticks per cycle)&lt;br /&gt;
! colspan=8 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | No capacity bonus&lt;br /&gt;
! colspan=2 | Capacity bonus 2&lt;br /&gt;
! colspan=2 | Capacity bonus 7&lt;br /&gt;
! colspan=2 | Transport belt stacking {{SA}}&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || {{Quality | 0.79 (76 ticks) | 1.03 (58 ticks) | 1.25 (48 ticks) | 1.5 (40 ticks) | 2 (30 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.79 |1.03 |1.25|1.5 |2 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.58 |2.07 |2.5|3 |4 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.37 |3.10 |3.75|4.5 |6 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.16 |4.14 |5|6 |8 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || {{Quality | 0.86 (70 ticks) | 1.03 (58 ticks) | 1.36 (44 ticks) | 1.67 (36 ticks) | 2.14 (28 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.86 |1.11 |1.36|1.67 |2.14 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.71 |2.22 |2.73|3.33 |4.29 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.57 |3.33 |4.09|5 |6.43 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.43 |4.44 |5.45|6.67 |8.57 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || {{Quality | 1.2 (50 ticks) | 1.58 (38 ticks) | 2 (30 ticks) | 2.31 (26 ticks) | 3.33 (18 ticks) }}&lt;br /&gt;
 || {{ Quality | 1.2 |1.58 |2|2.31 |3.33 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 2.4 |3.16 |4|4.62 |6.67 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 3.6 |4.74 |6|6.92 |10 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 4.8 |6.32 |8|9.23 |13.33 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 2.5 |3.33 | 4.29 | 5 | 7.5 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 5 |6.67 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 7.5 |10 |12.86|15 |22.5 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 5 |6.673 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Stack inserter}}{{SA}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 15 |20 | 25.71 | 30 | 45 }}&lt;br /&gt;
 || (6)&lt;br /&gt;
 || {{ Quality | 20 |26.67 | 34.29 | 40 | 60 }}&lt;br /&gt;
 || (8)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to belt ===&lt;br /&gt;
Throughput going from chest to belt depends on how full the belt is. An inserter will not put down an item on a belt that have items back-to-back (aka full compression) - it waits until there is a gap. However, if the gap is narrower than the item then the items upstream on the belt will stop to make room for the item being inserted. The direction of the belt compared to the inserter does not matter however.&lt;br /&gt;
&lt;br /&gt;
In these measurements inserters move items onto an empty belt. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=3 | Type&lt;br /&gt;
! colspan=12 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | No capacity bonus&lt;br /&gt;
! colspan=4 | Capacity bonus 2&lt;br /&gt;
! colspan=4 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || 0.60 || 0.60 || (1) || 1.19 || 1.19 || 1.19 || (2) || 1.67 || 1.73 || 1.76 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.83 || 0.83 || 0.83 || (1) || 1.64 || 1.64 || 1.64 || (2) || 2.25 || 2.37 || 2.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.20 || 1.20 || 1.20 || (1) || 2.35 || 2.35 || 2.35 || (2) || 3.10 || 3.33 || 3.46 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || 2.31 || 2.31 || 2.31 || (1) || 4.44 || 4.44 || 4.44 || (2) || 5.29 || 6.00 || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.44 || 4.44 || 4.44 || (2) || 5.71 || 7.06 || 7.74 || (4) || 6.79 || 10.91 || 13.85 || (12)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to splitter ===&lt;br /&gt;
When an inserter drops items onto the side of a perpendicular splitter, it always is considered to do so on the input side, enabling the splitter to move half of the items to the other belt (assuming that the splitter filter/priority settings allow it to do so and that there is available space on both belts). This allows the inserter to drop its items twice as fast. A fully upgraded stack inserter can drop twelve items onto an express splitter every 38 ticks (18.95 items/second) instead of the usual 52.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter to splitter comparison.png|621px|thumb|center|By inserting onto the side of a splitter, a fully-upgraded stack inserter can fill 84% of an express belt lane instead of the usual 62%.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter belt saturation.png|414px|thumb|center|Three stack inserters can saturate an express belt if one of them inserts onto a splitter.]]&lt;br /&gt;
&lt;br /&gt;
===Belt to chest (perpendicular)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The following is based on experimental data from [https://docs.google.com/spreadsheets/d/1Q4hxL69qrK3qeEKU8aDkuwM3gJy6I2dJ4FYSs-FQUpI/edit?usp=sharing 1.1].    &lt;br /&gt;
Most of the 1.1 experimental data was gathered using the following circuit blueprint to measure the exact tick difference between inserter swings. A lot of the data on this page (specifically the belt to chest data) relies heavily on the conditions of the setup on which the measurements are done. If your setup differs from the ones tested on this page, you can use the following blueprint to do the measurements yourself.&lt;br /&gt;
&lt;br /&gt;
{{BlueprintString|bp-string=0eNrtXF1v4kYU/SuRq75UkMz32GhbKY996FvfuivkwBCsBYNss20U8d87NiHAwMVzHdjsKKtIURzb1zPn3K85Y3iOHmYrsyyyvIoGz9HYlKMiW1bZIo8G0V8mLVeFKW+yvDRFZYqbalosVo/T5aq6WeVj+49xNpmYwuTVzWiRj7P6xvL2c/45n1bVshzc3f2bfc1uJ+moWhTZ4na0mN/9+WKs/GX71/DvV7Of86gXZdZWGQ3+eY7K7DFPZ/XIqqelsUPKKjO3V+TpvD4qq3T0tb8dXbS2t9pR/RcN6LrXenNaZNV0bqps1LfDesjy1I5xzwZbf+lFdmZ2UmYzmubgaZiv5g/2aQPaYqoXLRdltsHyObIW+/pW9qIn+we3jxlnhRltzopeZKdcFYvZ8MFM02+ZvdvesjM73KFbn5hkRVkNj+b3LSuqlf3PDp/miv59PavS1DZqQxa1mm1KetFiaYr0he07e99iVVkSUJbX62bw+WYuzfBo/asw433QMnvE7ZVZMVplVXNI11/svQy4mEp7el3z6MDO0LCr94HdpKPpHvI4uvaZ+fSpAzWbpyPYkUfs9KLHwpi8hUa2o/Hk5VQBRHI0kfJHjp9frx4/1GWod3Ca8RYm2HH8neJFoHnhHzuvKUxea1g6BbtEw85+5jUPdtj5qNFgnlO4PMcEQKxCE0s/dp4T5xnjtIUJ6Zfn9Osot5M9zwrZsmLjbn2aiUk2qzvb070rBA6JGmurGuw+JVonXFEWtzSzkDV6YI3HgjLC2V5XizHGDowlhBCaaLqzxlHW+J41O0+uBY2ZeDUmUMbEwdCojmWSiD1rEmVNHnKQCE05FztrCmVN7VljVHAWJ/vGNMqYPhialDROmIjJq7UYZS0+sKY4lbFgUr1aS1DWkgNrzP5IHu9ZowRl7v7kVHfWNoHftZ89zCKJX5KIscmbfOxeiFJMM8Qh2BMs7PRnL+TBDtzsuLy1dTucAczVLvcyyrEZZWNTnOVNvLDWlNQ93tRp3l5Mvo20NH+qpln+uMk221gh9cF8mRbNQAfRHx0IqSFvjC6fhk0eG06KxXyY5dZKNJiks9JAbJ1mhZ/XSNgRaRC9nms/iha12MfuVeOWXjVpiSPPMkTRqpfY71XbA+tSvLxEwBEzfXrIzG9dowsXPwTMaqfC6ehqh0zlSRaHFOojlnT7mmL7xPlibIaLyXAPxT0lrjDpeDhNN5hXdkAWmapYmd0VzcnmstpS46rdgQSnvhOPynk6m/Vn6Xx5Yi0Vb+dNt/P2G4cg0IN38sncjLPVvG9m1mJho2S5mJlzQyDgENo1uKYK2ieb7HH6sFg1Sz/Ge5x+OTVG5QeOPgIHdIrXWO0QquR8/fsUoUKNnY8dGkPEaT9Q1PcBhV4UFJpAs46RrkCuOmt22Vkrh3wBNosJkvzrwsAvC4N2YYCkX0b8YJBBJgaIfEb9Zi261goNPZgh4b6u14nLwk1cr4P23xjHlkzRqWTy8y2yaK+otrjz5FRFZZ7tBg8xcOT5ispAXqUfKCzEisrAoFZIVwipojLhkC+hPphpJPkhVVQmXRigdQjz7K9oiImBg+R7tlOkY0WV0Ds5nCDhDqqixq7XQTu9nGIrKulUUdX5ihq/oaJyv96IhBg3SYu8A9LKvTChIdZTDoa0wDlCSOWUu9RLSJ3gEkd9SNWUcxcFSK3gqsueDv2eezqvOy8/yHaO327N2a0B5blnw/1aPhZkqwMGZoybdEgNB3eFIwUJRzxBNhy8m+jd8uap1m9QxQXBbRkQXM9K3aWTAN97pbiB4LcuHFahBbxgOHH4ur4tLyuKus20gLouwXHa8HVRUJfeF3BQgNowIXC+cN3kri+KgnDbMAWJO0LifIEG1IYJtw1TUM0TCqdbh5QXmOsLAkRB47YNkPWCHenTUFcsYhwd13XK+LJO6W7hKRCFBEcHfhPH6TUg8UsSnAAcVHS4dEhoU01SnP4bUtVkri9I8LM0DOcLIVVN6faRGmpoJcf5QkhVUx6tQcCIEDhtOqS8wF1fkNCaQkrc1gC2aroNrYRaOalwdIRUNaW71tRggtI4OvAbNc5AoFWWjFEyb1DB4bKhwNYhQam8IdVM7nqCgqqFIihPCKpkuqKDhpbbiqI8IaiK6aZoDdUKxTrI/cRV+9n3VPv5ETaXVvvrl6lxkafObzcqhnk3XQnfr2fw3TZQHKWgB5X53XhXYLyLDq5O39XVXWx+7/YZl4tta6mWN7/dzYG2T2+fuv4kdRLlvyH1kcqVBDUkhimF27NgSPUFBF/jZGl2VfSTy2pfwleQVTFOlr4uCveXRUEei/OekqBKcMIoC6i0iNjXOTTBCaPY0ITQ1xSnfYUUmpL5qj6a4bSvkEJT8mMF0FN30BynvoQUmlJ5O4fAqS/I0AS1Ly1RS+yQIlMR39WlVqgldkiBqeixzuDZyGndYSHC3nUhwi6w5r7vuOJ+2wpZ4FYs51fm9Uf8e29bymjcy2whJWUlT+cFC1nzdayDvS+g7UWz9MHYMUbbb4a9eUxXj/VrbN9MUW48PKZCJ0xLQbkkcr3+HxANddo=}}&lt;br /&gt;
&lt;br /&gt;
When picking items from a belt, many more factors come into play besides belt fullness:&lt;br /&gt;
&lt;br /&gt;
* How fast the items move (i.e. if they are queued up on the belt or move at belt speed).&lt;br /&gt;
* Whether the belt is perpendicular to the inserter or approaches it head on.&lt;br /&gt;
* Whether items are on the near or far lane of a perpendicular belt.&lt;br /&gt;
* Whether the belt turns or not, and whether the items are in the inner or outer side of the bend.&lt;br /&gt;
* If the belt is an underground entrance or exit. This shortens the time items are visible to the inserter for pickup.&lt;br /&gt;
* All sorts of intricate timing factors between the inserter and the items on the belt, since the game simulates the arm homing in on every item.&lt;br /&gt;
&lt;br /&gt;
The test setup used below is with an inserter taking items from a perpendicular belt with items on the far lane only. The belt is fully compressed and timings are both for items that move at full speed and queued up as much as possible. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=4 | Type&lt;br /&gt;
! colspan=15 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | No capacity bonus&lt;br /&gt;
! colspan=5 | Capacity bonus 2&lt;br /&gt;
! colspan=5 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || &#039;&#039;&#039;0.65&#039;&#039;&#039; || 0.50 || 0.64 || (1) || 1.11 || &#039;&#039;&#039;1.20&#039;&#039;&#039; || 1.13 || 1.26 || (2) || 1.61 || 1.61 || &#039;&#039;&#039;1.65&#039;&#039;&#039; || 1.71 /&amp;lt;br/&amp;gt;1.73 /&amp;lt;br/&amp;gt;1.86 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || 0.88 || (1) || &#039;&#039;&#039;1.67&#039;&#039;&#039; || &#039;&#039;&#039;1.67&#039;&#039;&#039; || 1.50 || 1.74 || (2) || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.25 || 2.33 || 2.37 /&amp;lt;br/&amp;gt;2.37 /&amp;lt;br/&amp;gt;2.54 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.18 || 1.18 || &#039;&#039;&#039;1.25&#039;&#039;&#039; || 1.20 || (1) || 2.20 || 2.31 || &#039;&#039;&#039;2.40&#039;&#039;&#039; || 2.40 || (2) || 3.21 || 3.21 || &#039;&#039;&#039;3.46&#039;&#039;&#039; || 3.40 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.31 || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.50 || (1) || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.00 || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || 7.50 || 7.50 || &#039;&#039;&#039;8.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;8.57 /&amp;lt;br/&amp;gt;8.28 * || (4) || 7.50 || 11.25 || &#039;&#039;&#039;15.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;13.09 /&amp;lt;br/&amp;gt;15.32 * || (12)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt; Throughput for basic/fast/express belt.&lt;br /&gt;
&lt;br /&gt;
Since there are many more factors involved, these measurements exhibit a more complex pattern than chest-to-belt.&lt;br /&gt;
&lt;br /&gt;
* Boldface cells show for which belt each inserter has the best throughput on each bonus level when items move at belt speed. Higher speed belts mean that inserters have to work harder to catch the fast moving items. The effect is most noticeable for slower inserters and smaller stack sizes.&lt;br /&gt;
* When items are queued up the belt type hardly matters, so there is only a single column for that. The exceptions are the stack inserters - for basic transport belts it&#039;s the belt that sets the limit for stack sizes above 4, and there is also a notable difference between fast and express belts.&lt;br /&gt;
&lt;br /&gt;
=== Belt to Chest (facing inserter) ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
When picking up items from a belt facing the inserter, there are multiple small differences between different setups. The following throughput tests are performed with [[express transport belt]]s and [[stack inserter]]s with the maximum [[inserter capacity bonus (research)|capacity bonus]].&lt;br /&gt;
Each setup in the following picture shows the amount of ticks per cycle of the inserter and the amount of items per second the inserter moves. These measurements are consistent in all orientations of the setup.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter_belt_to_chest_throughput.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Electric system]]&lt;br /&gt;
* [[Belt transport system]]&lt;br /&gt;
* [[Inserter capacity bonus (research)]]: Inserter moves more than an item per turn.&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Inserters}} {{C|Inserters{{!}}#Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213301</id>
		<title>Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Inserters&amp;diff=213301"/>
		<updated>2025-04-13T01:03:27Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: Undo revision 213216 by Queith1E (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;For the common yellow electrical inserter, see [[Inserter]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inserters&#039;&#039;&#039; are devices which are used to move items over short distances. When placed, they have a fixed direction. They can move items from behind and place them in front of them. By doing this, they can move items from one transport belt to another, but also extract items from—and insert items into—machines or storage devices.&lt;br /&gt;
&lt;br /&gt;
== Types of inserters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| {{Imagelink|Burner inserter}} || The only [[fuel]]-powered inserter, with the slowest speed.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Inserter}} || The standard electrical inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Long-handed inserter}} || Capable of inserting and removing items from a greater distance.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Fast inserter}} || Much faster than the inserter.&lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Bulk inserter}} || As fast as the fast inserter, but can move many more items at the same time at once.    &lt;br /&gt;
|-&lt;br /&gt;
| {{Imagelink|Stack inserter|space-age=yes}} || As fast as the bulk inserter, but can stack items on a belt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mechanics ==&lt;br /&gt;
Inserters &#039;&#039;&#039;will&#039;&#039;&#039;:&lt;br /&gt;
* Pick up items off the ground, off of a [[Transport belts|transport belt]], or from any object that has storage space, such as [[Chests|chests]], [[furnace]]s [[assembling machine]]s or [[vehicle]]s.&lt;br /&gt;
* Place the item onto the ground, onto a transport belt, or into any object that has storage space.&lt;br /&gt;
* Run at slower speeds when starved for energy.&lt;br /&gt;
* Pick up as many items as their [[inserter capacity bonus (research)|stack size]] allows at once, if they do not have to wait too long to pick them up.&lt;br /&gt;
* Pick up items and drop them into the void of space or lava, permanently destroying them. This is useful for getting rid of unwanted items.&lt;br /&gt;
&lt;br /&gt;
Inserters &#039;&#039;&#039;will not&#039;&#039;&#039;:&lt;br /&gt;
* Pick up any items that cannot be inserted into the adjacent entity.&lt;br /&gt;
* Pick up any items if the adjacent entity is a [[ghost]].&lt;br /&gt;
* Pick up items to place into an entity with a full inventory.&lt;br /&gt;
* Place more than one item at a time onto the same ground tile.&lt;br /&gt;
* Place items into an entity that cannot hold them, for example due to [[Stack#Filtered_stacks|filtered]] or [[Stack#Stack_limitation|limited slots]].&lt;br /&gt;
* Fill up the entire target inventory of [[boiler]]s, [[nuclear reactor]]s, [[:Category:Producers|production building]]s, [[furnace]]s and [[turret]]s.&lt;br /&gt;
&lt;br /&gt;
If two or more inserters are picking up from the same tile, the inserter who can grab the items the fastest will grab them first. Besides faster inserters, this favors inserters taking from the inner lane of a transport belt.&lt;br /&gt;
&lt;br /&gt;
=== Insertion limits ===&lt;br /&gt;
Depending on where an inserter is moving items, it does not always fill up the entire target inventory. This allows other inserters taking from the same transport belt to pick up their share of the items. For example, if a boiler has 5 or more items of fuel in it, an inserter will not insert additional fuel. This allows the other fuel to travel further down the transport belt. When the fuel drops below 5 items, the inserter will resume inserting fuel, up to the limit of 5 items.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Entity !! Item type !! Automatic insertion limit&lt;br /&gt;
|-&lt;br /&gt;
| [[Boiler]]s, [[burner inserter]]s, [[furnace]]s, and [[nuclear reactor]]s || [[Fuel]] || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Gun turret]]s || Bullet Magazines || align=&amp;quot;center&amp;quot; | 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Artillery turret]]s || [[Artillery shell]]s || align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Assembling machine]]s, [[furnace]]s, [[centrifuge]]s, [[chemical plant]]s, and [[Oil refinery|oil refineries]]|| Items needed for the recipe || The ingredients for 1 craft in addition to the ingredients for the number of crafts that can be completed during one full inserter swing; but at least the ingredients for 2 crafts and at most the ingredients for 100 crafts.[https://forums.factorio.com/viewtopic.php?p=309796#p309796]&lt;br /&gt;
|-&lt;br /&gt;
| [[Lab]]s || [[Science pack]]s || The number of science packs needed for one research unit in addition to the science packs for the number of research units that can be completed during one full inserter swing; but at least the ingredients for 2 research units and at most the ingredients for 100 research units.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An inserter that has a higher [[inserter capacity bonus (research)|inserter capacity bonus]] than 1 can overfill the target building, due to the inserter picking up a higher amount of items than needed. Overfilling can also occur if  multiple inserters are used to insert items into one building.&lt;br /&gt;
&lt;br /&gt;
=== Inserters and transport belts ===&lt;br /&gt;
[[Transport belts]] have two lanes on which items can travel. Inserters only place items onto one side of the belt, either the far side from the inserter&#039;s perspective or if the belt is going the same or the opposite direction as the inserter the right side from the belt&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | [[File:Inserter_dropoff_locations.gif]] || [[File:Inserter_pickup_locations.gif]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | Inserters place the item on the furthest lane. If a belt is in the same orientation as the inserter, the item will be placed on the right-hand lane, from the belt&#039;s perspective. In curves the inserter always places on the far side.&lt;br /&gt;
| style=&amp;quot;width:320px;&amp;quot; | If the belt is perpendicular to the inserter, inserters &#039;&#039;&#039;prefer&#039;&#039;&#039; taking items from the nearest lane. If the nearest lane is empty, the inserter will take from the far lane. If the belt is the same/opposite orientation of the inserter or a curve, the inserter &#039;&#039;&#039;prefers&#039;&#039;&#039; taking from the left lane, from the belt&#039;s perspective. If the left lane is empty it will take from the right lane.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Potential issues ===&lt;br /&gt;
Inserters may have problems picking up items:&lt;br /&gt;
&lt;br /&gt;
* From very fast belts, because the items are moving too quickly.&lt;br /&gt;
* From the entry or exit of an underground belt (because the time they have to pick up is shorter)&lt;br /&gt;
* From turning belts if the item is on the inside of the corner&lt;br /&gt;
&lt;br /&gt;
== Power usage ==&lt;br /&gt;
[[File:Red Power Pulse.png|frame|upright 3|A power graph of a long-handed inserter being placed and then transferring an item. Upon placement the inserter fills its internal energy buffer and extends from its folded spawn position at a rate of 0.05 per tick to its resting position, resulting in 15W of power draw.]]&lt;br /&gt;
Inserters consume power while rotating and while extending/retracting. Electrically powered inserters also drain a small amount of power regardless of activity.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Drain (kW)&lt;br /&gt;
! Energy per&amp;lt;br/&amp;gt;rotation (kJ)&lt;br /&gt;
! Energy per&amp;lt;br/&amp;gt;movement (kJ)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0 || 5 || 5&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.4 || 5 || 5&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 0.4 || 5 || 5&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || 0.5 || 7 || 7&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 1 || 20 || 20&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Stack inserter}} || 1 || 40 || 40&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The maximum power consumption as shown in an inserter&#039;s tooltip assumes that both types of movement take place at the same time. In practice this only happens near the pickup and dropoff location. This is illustrated by a long-handed inserter being placed and transferring an item, as shown in the power graph on the right.&lt;br /&gt;
&lt;br /&gt;
The second half of the graph shows the inserter extending and rotating towards the pickup location with maximum power draw. As the lateral movement quickly completes, much of the travel time is spent only drawing power for rotation (0.02 rotation/tick * 5kJ/rotation * 60 tick/sec = 6kW). The same pattern repeats on the backwards swing.&lt;br /&gt;
[[File:Inserter Testing Setup.png|thumb|Inserter Testing Setup]]&lt;br /&gt;
&lt;br /&gt;
=== Energy Costs ===&lt;br /&gt;
&lt;br /&gt;
Using the following equation and empirical testing, we derive the values below. Note that values for burner inserters are derived with coal as a baseline. The fuel density used in the burner actually affects its measured values due to some quirks with how they operate, with higher fuel densities leading to improved performance. More detailed information for all inserters is available in the original forum post here &#039;&#039;https://forums.factorio.com/124635&#039;&#039;, where the entirety of the calculations is shown and documented in detail for those interested. &lt;br /&gt;
&lt;br /&gt;
 ((Max Power Consumption - Drain) * (2 /seconds per tick)) + ((Power Consumption of Motion - Drain) * ((Full Rotation Constant / Rotation Speed) - (2 / seconds per tick))) = kJ per Inserter Rotation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost of rotational movement in kW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are isolated from drain. Values with &#039;&#039;~&#039;&#039; are rounded&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green&lt;br /&gt;
|-&lt;br /&gt;
| ~51.362 || ~5.437 || ~7.875 || ~16.741 || ~47.957&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost per transfer cycle in kJ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These values are isolated from drain. Values with &#039;&#039;~&#039;&#039; are rounded.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Burner !! Yellow!! Red!! Blue !! Green&lt;br /&gt;
|-&lt;br /&gt;
| ~68.147 || ~6.652 || ~7 || ~8.115 || ~23.184&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inserter Efficiency ===&lt;br /&gt;
&lt;br /&gt;
The above data can be used to compare inserter efficiency directly. Remember that the transfer cycle cost remains the same regardless of how many items are moved (with one exception that will be covered later). This means that Green Inserters with their larger stack size can outperform other inserters despite their higher transfer cost, since they can achieve a lower cost per item. Here are some graphs of chest-to-chest data showing the efficiency of different inserters at differing stack sizes. Because the other inserters maintain a proportional relationship (as in an identical stack size) these graphs will primarily focus on highlighting the Green Inserter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Inserter Efficiency Graph (No Capacity Bonus).png||No Capacity Bonus&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 4).png|Capacity Bonus 4&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 5) .png|Capacity Bonus 5&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 6) (Zoomed).png|Capacity Bonus 6&lt;br /&gt;
File:Inserter Efficiency Graph (Capacity Bonus 7).png|Capacity Bonus 7&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the Burner Inserter doesn&#039;t have drain, its efficiency can only be appreciated in extremely low throughput situations. Thus we use this dedicated graph:&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter Efficiency Graph (Burner Version).png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
Because of how extremely low the throughput is, generating additional graphs for higher stack sizes is unnecessary. At higher stack sizes simply divide the reference time by the stack size.&lt;br /&gt;
&lt;br /&gt;
=== Belt Differences===&lt;br /&gt;
Up until now all data was regarding chest-to-chest use cases, due to their sterile and consistent nature. The introduction of belts creates special conditions that require consideration. Here is a power chart from the game for reference:&lt;br /&gt;
&lt;br /&gt;
[[File:Yellow Inserter Belt-to-Belt Power Signature.png|frameless|upright 3]]&lt;br /&gt;
&lt;br /&gt;
The Yellow Inserter above is doing a belt-to-belt transfer, and it has a stack bonus. &lt;br /&gt;
&lt;br /&gt;
The erratic section of the graph is the loading process. We can see the behavior is irregular as the inserter does not wait for the item, but rather fishes around for them. The exact behavior here is still being studied, and due to its dependence on stack size and belt speed it is very difficult to give any firm answers regarding how much power this actually uses as a quantifiable generalization. Likely a set of tables would need to be generated with every possible combination as a reference, but such data does not currently exist. We can see the movement section seems to as an average indicate the combined cost of rotation and extension/retraction (this is not covered here as detailed data does not exist, but the games code suggests these two costs are identical), which we saw in our original power pulse earlier. This would make sense as the inserter is moving inwards and outwards as well as wiggling side to side as it fishes for items, but this isn&#039;t confirmed, and could be inapplicable in faster use cases. To add to the hypothesis, we can assume that faster belts increase inserter efficiency by shortening the loading time. But that&#039;s all speculative until more data is collected. What we can confirm is at the end of the loading cycle we have our distinctive power spike, which is indicative the inserter is now switching to unloading.&lt;br /&gt;
&lt;br /&gt;
Looking at the unloading section, we can see the inserter swings around normally, but then there is this dip that doesn&#039;t exist in the chest to chest behavior. This is the inserter waiting at the belt to drop off all its items. During this waiting, it uses no power aside from its drain. Once all the items are delivered, it spikes, indicating it is going back to its loading behavior. &lt;br /&gt;
&lt;br /&gt;
What this means in practice is whenever you are loading from a chest, regardless of whether you are delivering to a chest or belt, the efficiency relationship remains the same. The additional duration of drain has no bearing on the energy efficiency. When loading from a belt, we can see there is additional energy consumption for stack sizes greater than 1. Currently there is not much that can advised regarding how to compensate for this, so the best advice is to just pretend it doesn&#039;t exist for now. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; The above efficiency graphs only apply when loading from a chest. When loading from a belt, until a more accurate dedicated data set is provided, it is advised to reference the initial no capacity bonus version of the graph for all decisions. With an inserter stack size of 1, the efficiency relationship between chests and belts is identical.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regarding Quality:&#039;&#039;&#039; Quality inserters receive a linear speed boost for each level of quality, with a corresponding power cost increase. What this means is that the quality level of an inserter has no impact on its energy efficiency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;More data regarding inserters feeding from belts, as well as more detailed data regarding burner inserter power consumption is still needed. Please reach out via the forum if you would like to help or contribute in collecting this data, either here https://forums.factorio.com/124635 or here https://forums.factorio.com/125710&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
[[File:all_inserter_speeds.gif|frame|right|Animation showing all inserter speeds at once.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Rotation-speed (turns per [[Time#Ticks|tick]])&amp;lt;br/&amp;gt;Extension-speed ([[Map_structure#Tile|Tiles]] per Tick)&lt;br /&gt;
! Turns per [[Time#Seconds|Game-second]]&lt;br /&gt;
! Game-second per full turn&lt;br /&gt;
! Ticks per full turn&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.01&amp;lt;br/&amp;gt;0.0214 || 0.60 || 1.667 || 100&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.014&amp;lt;br/&amp;gt;0.03 || 0.83 || 1.2 || 72&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 0.02&amp;lt;br/&amp;gt;0.0457 || 1.2 || 0.833 || 50&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}}&amp;lt;br/&amp;gt;{{Imagelink|Bulk inserter}} || 0.04&amp;lt;br/&amp;gt;0.07 || 2.31 || 0.433 || 26&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; These numbers come directly from the [https://github.com/wube/factorio-data/tree/master/base/prototypes/entity factorio-data github repository].&lt;br /&gt;
&lt;br /&gt;
=== Rotation Speed ===&lt;br /&gt;
Convention: 2π rad = 100% of a circle rotation = &#039;&#039;&#039;1 turn&#039;&#039;&#039; (or one full rotation).&lt;br /&gt;
&lt;br /&gt;
Note: an Inserter doesn&#039;t always need to make full turns. When grabbing from a transport belt, it is slightly faster when grabbing items from the closest lane.&lt;br /&gt;
&lt;br /&gt;
Note: If the rotation speed of an inserter would result in an odd number of ticks per full turn, the actual number of ticks per full turn for this inserter is the next higher even number. The reason for this is that the inserter needs to do two half turns to pick and drop an item. This takes a certain number of ticks two times, therefore the number of ticks for the full turn is always an even number. Example: The Fast inserter&#039;s rotation speed of 864°/s or 0.04 turns per tick would result in 25 ticks per full turn, but the inserter cannot do a half turn in &amp;quot;12.5 ticks&amp;quot;, so it actually takes 2*13 = 26 ticks per full turn.&lt;br /&gt;
&lt;br /&gt;
=== Extension Speed ===&lt;br /&gt;
The extension-speed is normally not visible (only when compared to other inserters), but there are measurable speed differences when taking - for example - from the near or the far side of a belt. Also Some mods can alter the pickup and drop locations of inserters, making this stat more relevant.&lt;br /&gt;
&lt;br /&gt;
== Inserter Throughput ==&lt;br /&gt;
&lt;br /&gt;
=== Chest to chest ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 2.0.26, recorded in this doc [https://docs.google.com/spreadsheets/d/1L8Td5o6TAicGi-TPwzh4lz2YiH0n7Jkpp3E8FxNpnAs/edit?usp=sharing]. Chest to chest transfer transfers the entire hand size during a single tick, so most of the time is spent during the swing to and from.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=2 | Type&lt;br /&gt;
! rowspan=2 | Arm cycles per second (ticks per cycle)&lt;br /&gt;
! colspan=8 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | No capacity bonus&lt;br /&gt;
! colspan=2 | Capacity bonus 2&lt;br /&gt;
! colspan=2 | Capacity bonus 7&lt;br /&gt;
! colspan=2 | Transport belt stacking {{SA}}&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || {{Quality | 0.79 (76 ticks) | 1.03 (58 ticks) | 1.25 (48 ticks) | 1.5 (40 ticks) | 2 (30 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.79 |1.03 |1.25|1.5 |2 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.58 |2.07 |2.5|3 |4 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.37 |3.10 |3.75|4.5 |6 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.16 |4.14 |5|6 |8 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || {{Quality | 0.86 (70 ticks) | 1.03 (58 ticks) | 1.36 (44 ticks) | 1.67 (36 ticks) | 2.14 (28 ticks) }}&lt;br /&gt;
 || {{ Quality | 0.86 |1.11 |1.36|1.67 |2.14 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 1.71 |2.22 |2.73|3.33 |4.29 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 2.57 |3.33 |4.09|5 |6.43 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 3.43 |4.44 |5.45|6.67 |8.57 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || {{Quality | 1.2 (50 ticks) | 1.58 (38 ticks) | 2 (30 ticks) | 2.31 (26 ticks) | 3.33 (18 ticks) }}&lt;br /&gt;
 || {{ Quality | 1.2 |1.58 |2|2.31 |3.33 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 2.4 |3.16 |4|4.62 |6.67 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 3.6 |4.74 |6|6.92 |10 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 4.8 |6.32 |8|9.23 |13.33 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 2.5 |3.33 | 4.29 | 5 | 7.5 }}&lt;br /&gt;
 || (1)&lt;br /&gt;
 || {{ Quality | 5 |6.67 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 7.5 |10 |12.86|15 |22.5 }}&lt;br /&gt;
 || (3)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 5 |6.673 | 8.57 | 10 | 15 }}&lt;br /&gt;
 || (2)&lt;br /&gt;
 || {{ Quality | 10 |13.33 |17.14|20 |30 }}&lt;br /&gt;
 || (4)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
 || {{ Quality | 30 |40 |51.43|60 |90 }}&lt;br /&gt;
 || (12)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Stack inserter}}{{SA}} || {{Quality | 2.5 (24 ticks) | 3.33 (18 ticks) | 4.29 (14 ticks) | 5 (12 ticks) | 7.5 (8 ticks) }}&lt;br /&gt;
 || {{ Quality | 15 |20 | 25.71 | 30 | 45 }}&lt;br /&gt;
 || (6)&lt;br /&gt;
 || {{ Quality | 20 |26.67 | 34.29 | 40 | 60 }}&lt;br /&gt;
 || (8)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
 || {{ Quality | 40 | 53.33 | 68.57 | 80 | 120 }}&lt;br /&gt;
 || (16)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to belt ===&lt;br /&gt;
Throughput going from chest to belt depends on how full the belt is. An inserter will not put down an item on a belt that have items back-to-back (aka full compression) - it waits until there is a gap. However, if the gap is narrower than the item then the items upstream on the belt will stop to make room for the item being inserted. The direction of the belt compared to the inserter does not matter however.&lt;br /&gt;
&lt;br /&gt;
In these measurements inserters move items onto an empty belt. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=3 | Type&lt;br /&gt;
! colspan=12 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | No capacity bonus&lt;br /&gt;
! colspan=4 | Capacity bonus 2&lt;br /&gt;
! colspan=4 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]] ||&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || 0.60 || 0.60 || (1) || 1.19 || 1.19 || 1.19 || (2) || 1.67 || 1.73 || 1.76 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || 0.83 || 0.83 || 0.83 || (1) || 1.64 || 1.64 || 1.64 || (2) || 2.25 || 2.37 || 2.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.20 || 1.20 || 1.20 || (1) || 2.35 || 2.35 || 2.35 || (2) || 3.10 || 3.33 || 3.46 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || 2.31 || 2.31 || 2.31 || (1) || 4.44 || 4.44 || 4.44 || (2) || 5.29 || 6.00 || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.44 || 4.44 || 4.44 || (2) || 5.71 || 7.06 || 7.74 || (4) || 6.79 || 10.91 || 13.85 || (12)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chest to splitter ===&lt;br /&gt;
When an inserter drops items onto the side of a perpendicular splitter, it always is considered to do so on the input side, enabling the splitter to move half of the items to the other belt (assuming that the splitter filter/priority settings allow it to do so and that there is available space on both belts). This allows the inserter to drop its items twice as fast. A fully upgraded stack inserter can drop twelve items onto an express splitter every 38 ticks (18.95 items/second) instead of the usual 52.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter to splitter comparison.png|621px|thumb|center|By inserting onto the side of a splitter, a fully-upgraded stack inserter can fill 84% of an express belt lane instead of the usual 62%.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter belt saturation.png|414px|thumb|center|Three stack inserters can saturate an express belt if one of them inserts onto a splitter.]]&lt;br /&gt;
&lt;br /&gt;
===Belt to chest (perpendicular)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The following is based on experimental data from [https://docs.google.com/spreadsheets/d/1Q4hxL69qrK3qeEKU8aDkuwM3gJy6I2dJ4FYSs-FQUpI/edit?usp=sharing 1.1].    &lt;br /&gt;
Most of the 1.1 experimental data was gathered using the following circuit blueprint to measure the exact tick difference between inserter swings. A lot of the data on this page (specifically the belt to chest data) relies heavily on the conditions of the setup on which the measurements are done. If your setup differs from the ones tested on this page, you can use the following blueprint to do the measurements yourself.&lt;br /&gt;
&lt;br /&gt;
{{BlueprintString|bp-string=0eNrtXF1v4kYU/SuRq75UkMz32GhbKY996FvfuivkwBCsBYNss20U8d87NiHAwMVzHdjsKKtIURzb1zPn3K85Y3iOHmYrsyyyvIoGz9HYlKMiW1bZIo8G0V8mLVeFKW+yvDRFZYqbalosVo/T5aq6WeVj+49xNpmYwuTVzWiRj7P6xvL2c/45n1bVshzc3f2bfc1uJ+moWhTZ4na0mN/9+WKs/GX71/DvV7Of86gXZdZWGQ3+eY7K7DFPZ/XIqqelsUPKKjO3V+TpvD4qq3T0tb8dXbS2t9pR/RcN6LrXenNaZNV0bqps1LfDesjy1I5xzwZbf+lFdmZ2UmYzmubgaZiv5g/2aQPaYqoXLRdltsHyObIW+/pW9qIn+we3jxlnhRltzopeZKdcFYvZ8MFM02+ZvdvesjM73KFbn5hkRVkNj+b3LSuqlf3PDp/miv59PavS1DZqQxa1mm1KetFiaYr0he07e99iVVkSUJbX62bw+WYuzfBo/asw433QMnvE7ZVZMVplVXNI11/svQy4mEp7el3z6MDO0LCr94HdpKPpHvI4uvaZ+fSpAzWbpyPYkUfs9KLHwpi8hUa2o/Hk5VQBRHI0kfJHjp9frx4/1GWod3Ca8RYm2HH8neJFoHnhHzuvKUxea1g6BbtEw85+5jUPdtj5qNFgnlO4PMcEQKxCE0s/dp4T5xnjtIUJ6Zfn9Osot5M9zwrZsmLjbn2aiUk2qzvb070rBA6JGmurGuw+JVonXFEWtzSzkDV6YI3HgjLC2V5XizHGDowlhBCaaLqzxlHW+J41O0+uBY2ZeDUmUMbEwdCojmWSiD1rEmVNHnKQCE05FztrCmVN7VljVHAWJ/vGNMqYPhialDROmIjJq7UYZS0+sKY4lbFgUr1aS1DWkgNrzP5IHu9ZowRl7v7kVHfWNoHftZ89zCKJX5KIscmbfOxeiFJMM8Qh2BMs7PRnL+TBDtzsuLy1dTucAczVLvcyyrEZZWNTnOVNvLDWlNQ93tRp3l5Mvo20NH+qpln+uMk221gh9cF8mRbNQAfRHx0IqSFvjC6fhk0eG06KxXyY5dZKNJiks9JAbJ1mhZ/XSNgRaRC9nms/iha12MfuVeOWXjVpiSPPMkTRqpfY71XbA+tSvLxEwBEzfXrIzG9dowsXPwTMaqfC6ehqh0zlSRaHFOojlnT7mmL7xPlibIaLyXAPxT0lrjDpeDhNN5hXdkAWmapYmd0VzcnmstpS46rdgQSnvhOPynk6m/Vn6Xx5Yi0Vb+dNt/P2G4cg0IN38sncjLPVvG9m1mJho2S5mJlzQyDgENo1uKYK2ieb7HH6sFg1Sz/Ge5x+OTVG5QeOPgIHdIrXWO0QquR8/fsUoUKNnY8dGkPEaT9Q1PcBhV4UFJpAs46RrkCuOmt22Vkrh3wBNosJkvzrwsAvC4N2YYCkX0b8YJBBJgaIfEb9Zi261goNPZgh4b6u14nLwk1cr4P23xjHlkzRqWTy8y2yaK+otrjz5FRFZZ7tBg8xcOT5ispAXqUfKCzEisrAoFZIVwipojLhkC+hPphpJPkhVVQmXRigdQjz7K9oiImBg+R7tlOkY0WV0Ds5nCDhDqqixq7XQTu9nGIrKulUUdX5ihq/oaJyv96IhBg3SYu8A9LKvTChIdZTDoa0wDlCSOWUu9RLSJ3gEkd9SNWUcxcFSK3gqsueDv2eezqvOy8/yHaO327N2a0B5blnw/1aPhZkqwMGZoybdEgNB3eFIwUJRzxBNhy8m+jd8uap1m9QxQXBbRkQXM9K3aWTAN97pbiB4LcuHFahBbxgOHH4ur4tLyuKus20gLouwXHa8HVRUJfeF3BQgNowIXC+cN3kri+KgnDbMAWJO0LifIEG1IYJtw1TUM0TCqdbh5QXmOsLAkRB47YNkPWCHenTUFcsYhwd13XK+LJO6W7hKRCFBEcHfhPH6TUg8UsSnAAcVHS4dEhoU01SnP4bUtVkri9I8LM0DOcLIVVN6faRGmpoJcf5QkhVUx6tQcCIEDhtOqS8wF1fkNCaQkrc1gC2aroNrYRaOalwdIRUNaW71tRggtI4OvAbNc5AoFWWjFEyb1DB4bKhwNYhQam8IdVM7nqCgqqFIihPCKpkuqKDhpbbiqI8IaiK6aZoDdUKxTrI/cRV+9n3VPv5ETaXVvvrl6lxkafObzcqhnk3XQnfr2fw3TZQHKWgB5X53XhXYLyLDq5O39XVXWx+7/YZl4tta6mWN7/dzYG2T2+fuv4kdRLlvyH1kcqVBDUkhimF27NgSPUFBF/jZGl2VfSTy2pfwleQVTFOlr4uCveXRUEei/OekqBKcMIoC6i0iNjXOTTBCaPY0ITQ1xSnfYUUmpL5qj6a4bSvkEJT8mMF0FN30BynvoQUmlJ5O4fAqS/I0AS1Ly1RS+yQIlMR39WlVqgldkiBqeixzuDZyGndYSHC3nUhwi6w5r7vuOJ+2wpZ4FYs51fm9Uf8e29bymjcy2whJWUlT+cFC1nzdayDvS+g7UWz9MHYMUbbb4a9eUxXj/VrbN9MUW48PKZCJ0xLQbkkcr3+HxANddo=}}&lt;br /&gt;
&lt;br /&gt;
When picking items from a belt, many more factors come into play besides belt fullness:&lt;br /&gt;
&lt;br /&gt;
* How fast the items move (i.e. if they are queued up on the belt or move at belt speed).&lt;br /&gt;
* Whether the belt is perpendicular to the inserter or approaches it head on.&lt;br /&gt;
* Whether items are on the near or far lane of a perpendicular belt.&lt;br /&gt;
* Whether the belt turns or not, and whether the items are in the inner or outer side of the bend.&lt;br /&gt;
* If the belt is an underground entrance or exit. This shortens the time items are visible to the inserter for pickup.&lt;br /&gt;
* All sorts of intricate timing factors between the inserter and the items on the belt, since the game simulates the arm homing in on every item.&lt;br /&gt;
&lt;br /&gt;
The test setup used below is with an inserter taking items from a perpendicular belt with items on the far lane only. The belt is fully compressed and timings are both for items that move at full speed and queued up as much as possible. Values are given for the stack sizes at three different [[inserter capacity bonus (research)|capacity bonus]] levels.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=4 | Type&lt;br /&gt;
! colspan=15 | Items/second at [[inserter capacity bonus (research)|capacity bonus]] level (stack size)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | No capacity bonus&lt;br /&gt;
! colspan=5 | Capacity bonus 2&lt;br /&gt;
! colspan=5 | Capacity bonus 7&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
! colspan=3 | Items at&amp;lt;br/&amp;gt;belt speed&lt;br /&gt;
! rowspan=2 | Items&amp;lt;br/&amp;gt;queued&amp;lt;br/&amp;gt;up&lt;br /&gt;
! rowspan=2 |&lt;br /&gt;
|-&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
! [[File:Transport belt.png|link=Transport belt|32px]] || [[File:Fast transport belt.png|link=Fast transport belt|32px]] || [[File:Express transport belt.png|link=Express transport belt|32px]]&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Burner inserter}} || 0.60 || &#039;&#039;&#039;0.65&#039;&#039;&#039; || 0.50 || 0.64 || (1) || 1.11 || &#039;&#039;&#039;1.20&#039;&#039;&#039; || 1.13 || 1.26 || (2) || 1.61 || 1.61 || &#039;&#039;&#039;1.65&#039;&#039;&#039; || 1.71 /&amp;lt;br/&amp;gt;1.73 /&amp;lt;br/&amp;gt;1.86 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Inserter}} || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || &#039;&#039;&#039;0.94&#039;&#039;&#039; || 0.88 || (1) || &#039;&#039;&#039;1.67&#039;&#039;&#039; || &#039;&#039;&#039;1.67&#039;&#039;&#039; || 1.50 || 1.74 || (2) || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.25 || 2.33 || 2.37 /&amp;lt;br/&amp;gt;2.37 /&amp;lt;br/&amp;gt;2.54 * || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Long-handed inserter}} || 1.18 || 1.18 || &#039;&#039;&#039;1.25&#039;&#039;&#039; || 1.20 || (1) || 2.20 || 2.31 || &#039;&#039;&#039;2.40&#039;&#039;&#039; || 2.40 || (2) || 3.21 || 3.21 || &#039;&#039;&#039;3.46&#039;&#039;&#039; || 3.40 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Fast inserter}} || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.31 || &#039;&#039;&#039;2.50&#039;&#039;&#039; || 2.50 || (1) || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.00 || &#039;&#039;&#039;6.43&#039;&#039;&#039; || 6.43 || (3)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;| {{Imagelink|Bulk inserter}} || 4.50 || 4.29 || &#039;&#039;&#039;5.00&#039;&#039;&#039; || 4.80 || (2) || 7.50 || 7.50 || &#039;&#039;&#039;8.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;8.57 /&amp;lt;br/&amp;gt;8.28 * || (4) || 7.50 || 11.25 || &#039;&#039;&#039;15.00&#039;&#039;&#039; || 7.50 /&amp;lt;br/&amp;gt;13.09 /&amp;lt;br/&amp;gt;15.32 * || (12)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt; Throughput for basic/fast/express belt.&lt;br /&gt;
&lt;br /&gt;
Since there are many more factors involved, these measurements exhibit a more complex pattern than chest-to-belt.&lt;br /&gt;
&lt;br /&gt;
* Boldface cells show for which belt each inserter has the best throughput on each bonus level when items move at belt speed. Higher speed belts mean that inserters have to work harder to catch the fast moving items. The effect is most noticeable for slower inserters and smaller stack sizes.&lt;br /&gt;
* When items are queued up the belt type hardly matters, so there is only a single column for that. The exceptions are the stack inserters - for basic transport belts it&#039;s the belt that sets the limit for stack sizes above 4, and there is also a notable difference between fast and express belts.&lt;br /&gt;
&lt;br /&gt;
=== Belt to Chest (facing inserter) ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Experimental data from 1.1&lt;br /&gt;
&lt;br /&gt;
When picking up items from a belt facing the inserter, there are multiple small differences between different setups. The following throughput tests are performed with [[express transport belt]]s and [[stack inserter]]s with the maximum [[inserter capacity bonus (research)|capacity bonus]].&lt;br /&gt;
Each setup in the following picture shows the amount of ticks per cycle of the inserter and the amount of items per second the inserter moves. These measurements are consistent in all orientations of the setup.&lt;br /&gt;
&lt;br /&gt;
[[File:Inserter_belt_to_chest_throughput.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Electric system]]&lt;br /&gt;
* [[Belt transport system]]&lt;br /&gt;
* [[Inserter capacity bonus (research)]]: Inserter moves more than an item per turn.&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Inserters}} {{C|Inserters{{!}}#Inserters}}&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213300</id>
		<title>Talk:Inserters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Inserters&amp;diff=213300"/>
		<updated>2025-04-13T01:01:02Z</updated>

		<summary type="html">&lt;p&gt;GregFirehawk: /* Recent Power Usage Edit */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [https://forums.factorio.com/viewtopic.php?f=7&amp;amp;t=22#p71]&lt;br /&gt;
&lt;br /&gt;
Removed. But eventually helpful. [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 02:45, 31 December 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Changes for 0.17 ==&lt;br /&gt;
&lt;br /&gt;
The faster belt speeds probably change the results for some of the entries in these tables. It looks like they haven&#039;t been updated yet. --[[User:Omnifarious|Omnifarious]] ([[User talk:Omnifarious|talk]]) 14:59, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
They have been updated by [[User:Bilka|Bilka]] in [[Special:PermanentLink/172015|This revision]]. --[[User:Swan|Swan]] ([[User talk:Swan|talk]]) 17:19, 27 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inserter speed ==&lt;br /&gt;
&lt;br /&gt;
I updated this wiki to show ticks per turn in the inserter speed section. My results seem to clash with the previous information about rotation speed (102 ticks = 1.7 seconds, there is a discrepancy between the rotation time of burner inserters most notably). The experiment I performed was done on vanilla factorio 0.14.22. I used two steel chests with varying inserters for each experiment. The inserters were fully powered at all times. The first chest is wired to a combinator which tests for any items in the chest, and outputs 1 signal X. This signal is added to a tallying arithmetic combinator. This arithmetic combinator is wired to itself, and outputs T + X. The value of T at setup is 0. I begin this experiment by placing large stacks of items into the first chest. I place only 201 transfers worth of material into the chest. This will stop the timer as soon as the last item is removed, which occurs after 200 transfers. With this setup I obtained the results as I have reported them. The timer always stopped on a multiple of 200, indicating that the number of ticks per full turn is an integer number. This is why I decided to add a separate column for this value. I may in the future update the other rotation speed metrics to match my results. --[[User:Reububble|Reububble]] ([[User talk:Reububble|talk]]) 18:19, 8 March 2017 (UTC)&lt;br /&gt;
:Which orientation were the inserters? Inserters facing north have lower throughput, might mean they have slower rotation speed. --[[User:Artorp|Artorp]] ([[User talk:Artorp|talk]]) 20:47, 5 April 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== put the &amp;quot;Inserters And Transport Belt Interaction&amp;quot; examples in a table so they are side by side ==&lt;br /&gt;
&lt;br /&gt;
i see why that was a bad idea, but i would rather see them side by side if it were possible to make a table that, when the horizontal space it has to display is smaller than all 4 makes it so there are 3 and on another &amp;quot;line&amp;quot; another 1 or 2x2 or all underneath one another like it is now.&lt;br /&gt;
&lt;br /&gt;
: I put them in a 2x2 square; I think that&#039;s the best way to see all of them at once. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 13:17, 14 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Problem with translation ==&lt;br /&gt;
&lt;br /&gt;
Could someone explain to me what it is &#039;&#039;&#039;Extension Speed&#039;&#039;&#039; and why it is expressed in &#039;&#039;&#039;Tiles per Tick&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a translation and can not find a word - without knowing what it is ;){{unsigned|JakubSTR|08:43, 6 March 2018‎}}&lt;br /&gt;
&lt;br /&gt;
:I&#039;d describe extension speed as how fast the inserter &amp;quot;extends&amp;quot;, so in this case how fast its arm gets longer/shorter to be able to reach an item on the far or near side of the belt. It&#039;s expressed in tiles per tick because that is a unit of speed, just like meters per second :) An inserter that has an extension speed of 1 tile per tick needs 1 tick to make its arm longer by a whole tile. I hope this helps. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:11, 6 March 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Recent Power Usage Edit ==&lt;br /&gt;
&lt;br /&gt;
The Power Usage section was recently edited by user &#039;&#039;Queithe1E&#039;&#039; in a way I find to be incorrect and misleading. I&#039;ll break down some of the problems I have with the edit and why I think they&#039;re problematic.&lt;br /&gt;
&lt;br /&gt;
Firstly large swaths of context were removed and branded as &amp;quot;speculation&amp;quot;. Those are actually very important contextually as inserter behavior is unusual and not what you&#039;d expect. I&#039;m okay with the section being rewritten for the sake of brevity (in fact I&#039;d probably recommend it as I was perhaps too verbose originally), but only if it&#039;s concise and accurate. &lt;br /&gt;
&lt;br /&gt;
Which segways directly into my second point, which is that the new information that took its place seems to show a misunderstanding of the original information, and is incorrect at times. For example at one point it says &amp;quot;The maximum power consumption as shown in an inserter&#039;s tooltip assumes that both types of movement take place at the same time&amp;quot;, but that&#039;s not actually true, and the previous explanation explicitly communicated a completely different idea. Inserters maximum power usage is absolutely not the sum of rotational and lateral movement costs being expended simultaneously, and there&#039;s absolutely nothing to even suggest that might be the case anywhere, neither in the games data or the empirical data that was gathered.&lt;br /&gt;
&lt;br /&gt;
And that once again segways neatly into my next problem which is I find the inclusion of the games lua data to be misleading and problematic, with the reason being that it&#039;s not actually accurate. Empirical testing shows the real values are very different from what the game claims in its lua data, which is something I went to great length to identify, explain, and quantify. The inclusion of the games lua data in such a position of prominence right at the top of the section, and with absolutely no disclaimer, is very misleading due to the discrepancy with actual measured data. &lt;br /&gt;
&lt;br /&gt;
There&#039;s also some other information that I don&#039;t really know what to make of. They mention part of the inserters initial power draw is used filling an energy buffer. I&#039;m not aware that electrical inserters even have an energy buffer, as far as I&#039;m aware that&#039;s just the burners, and how he can confidently attribute this power draw to this buffer is anyone&#039;s guess. It&#039;s really just idk, it could be right but I have no clue what he&#039;s basing this on. Also later he does an equation seemingly based off the graph and the lua data which does seem to check out, but it&#039;s completely at odds with the empirical data that was collected. This actually made me question my sanity so I went back and reviewed my original data and confirmed that my findings ultimately also agreed with the games power panel when averaged over time (this is cited in my forum post as 8.8kw of operational cost for red inserters during testing), and combined with the fact that it&#039;s a larger data set with more stringent analysis I&#039;m more inclined to believe my tests accuracy over a low detail in game graph and some numbers I know to be inaccurate. &lt;br /&gt;
&lt;br /&gt;
Also as I was reviewing this before hitting publish having already written everything further down I realized even the subject of the above paragraph is in self contradiction, because if you apply the equation he gives to extension/retraction using the value from lower down on the wiki you end up with &#039;&#039;0.0457 * 5 * 60&#039;&#039; which equals just 13.71. If you add drain that becomes 14.11, so it seems like the internal buffer he alleges is the remaining 0.89. But then he turns around and I guess to get that 21 max power equals these two numbers he takes 15 and adds the 6 he calculated, meaning he essentially adds this buffer as a second source of drain or something during extensions or during peaks? It just doesn&#039;t add up, it&#039;s very strange. I pulled that 0.0457 from further down on the wiki so it&#039;s possible that number is actually approximately 0.03 too low, in which case his formula for max power would add up properly, but of course then his buffer theory would disappear. Anyway remember the paragraph below this is meant to follow the paragraph directly above this one. &lt;br /&gt;
&lt;br /&gt;
And this is another important problem with the change, because now the entire section feels incoherent and self contradictory. It was specifically written to show these empirically derived numbers that differ from what the game claims, but now the original game numbers are present and conflicting with and undermining the empirical data, which most importantly is more accurate. &lt;br /&gt;
&lt;br /&gt;
And I could keep nitpicking about little stuff or how the little context around the burner was removed, but ultimately I think I made my point. The two main problems with the change are that it says certain things at are provably wrong, removes certain important context, and ultimately confuses the issue by prominently asserting a separate data set that was tested to be inaccurate, and is in direct contradiction with the data set directly below it. I&#039;m gonna be rolling back the change for these reasons, since I believe the prior version was more accurate and less confusing. If you disagree or have questions please reach out as I&#039;m happy to discuss the topic further &lt;br /&gt;
&lt;br /&gt;
--[[User:GregFirehawk|GregFirehawk]] ([[User talk:GregFirehawk|talk]]) 01:01, 13 April 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>GregFirehawk</name></author>
	</entry>
</feed>