Added IntakeAir Usage readout.
Added IntakeAir Usage readout.

--- a/KerbalEngineer/Extensions/DoubleExtensions.cs
+++ b/KerbalEngineer/Extensions/DoubleExtensions.cs
@@ -54,6 +54,11 @@
             return Units.ToMass(value);
         }
 
+        public static string ToPercent(this double value)
+        {
+            return Units.ToPercent(value);
+        }
+
         public static string ToRate(this double value)
         {
             return Units.ToRate(value);

--- a/KerbalEngineer/Extensions/FloatExtensions.cs
+++ b/KerbalEngineer/Extensions/FloatExtensions.cs
@@ -54,6 +54,11 @@
             return Units.ToMass(value);
         }
 
+        public static string ToPercent(this float value)
+        {
+            return Units.ToPercent(value);
+        }
+
         public static string ToRate(this float value)
         {
             return Units.ToRate(value);

--- a/KerbalEngineer/Flight/Readouts/ReadoutLibrary.cs
+++ b/KerbalEngineer/Flight/Readouts/ReadoutLibrary.cs
@@ -116,9 +116,10 @@
                 readouts.Add(new Thrust());
                 readouts.Add(new ThrustToWeight());
                 readouts.Add(new Acceleration());
+                readouts.Add(new IntakeAirUsage());
                 readouts.Add(new IntakeAirDemand());
                 readouts.Add(new IntakeAirSupply());
-                readouts.Add(new IntakeAirSupplyDemand());
+                readouts.Add(new IntakeAirDemandSupply());
 
                 // Rendezvous
                 readouts.Add(new TargetSelector());

--- a/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirDemand.cs
+++ b/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirDemand.cs
@@ -54,7 +54,7 @@
 
         public override void Update()
         {
-            this.demand = IntakeAirSupplyDemand.GetDemand();
+            this.demand = IntakeAirDemandSupply.GetDemand();
         }
 
         #endregion

--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirDemandSupply.cs
@@ -1,1 +1,100 @@
+// 
+//     Kerbal Engineer Redux
+// 
+//     Copyright (C) 2014 CYBUTEK
+// 
+//     This program is free software: you can redistribute it and/or modify
+//     it under the terms of the GNU General Public License as published by
+//     the Free Software Foundation, either version 3 of the License, or
+//     (at your option) any later version.
+// 
+//     This program is distributed in the hope that it will be useful,
+//     but WITHOUT ANY WARRANTY; without even the implied warranty of
+//     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//     GNU General Public License for more details.
+// 
+//     You should have received a copy of the GNU General Public License
+//     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// 
 
+#region Using Directives
+
+using System.Linq;
+
+#endregion
+
+namespace KerbalEngineer.Flight.Readouts.Vessel
+{
+    public class IntakeAirDemandSupply : ReadoutModule
+    {
+        #region Fields
+
+        private double demand;
+        private double supply;
+
+        #endregion
+
+        #region Constructors
+
+        public IntakeAirDemandSupply()
+        {
+            this.Name = "Intake Air (D/S)";
+            this.Category = ReadoutCategory.GetCategory("Vessel");
+            this.HelpString = string.Empty;
+            this.IsDefault = true;
+        }
+
+        #endregion
+
+        #region Methods: public
+
+        public static double GetDemand()
+        {
+            var demand = 0.0;
+            foreach (var part in FlightGlobals.ActiveVessel.Parts)
+            {
+                if (part.Modules.Contains("ModuleEngines"))
+                {
+                    var engine = part.Modules["ModuleEngines"] as ModuleEngines;
+                    if (engine.isOperational)
+                    {
+                        demand += engine.propellants
+                            .Where(p => p.name == "IntakeAir")
+                            .Sum(p => p.currentRequirement);
+                    }
+                }
+                if (part.Modules.Contains("ModuleEnginesFX"))
+                {
+                    var engine = part.Modules["ModuleEngines"] as ModuleEnginesFX;
+                    if (engine.isOperational)
+                    {
+                        demand += engine.propellants
+                            .Where(p => p.name == "IntakeAir")
+                            .Sum(p => p.currentRequirement);
+                    }
+                }
+            }
+            return demand;
+        }
+
+        public static double GetSupply()
+        {
+            return FlightGlobals.ActiveVessel.Parts
+                .Where(p => p.Resources.Contains("IntakeAir"))
+                .Sum(p => p.Resources["IntakeAir"].amount);
+        }
+
+        public override void Draw()
+        {
+            this.DrawLine(this.demand.ToString("F4") + " / " + this.supply.ToString("F4"));
+        }
+
+        public override void Update()
+        {
+            this.demand = GetDemand();
+            this.supply = GetSupply();
+        }
+
+        #endregion
+    }
+}

--- a/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirSupply.cs
+++ b/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirSupply.cs
@@ -54,7 +54,7 @@
 
         public override void Update()
         {
-            this.supply = IntakeAirSupplyDemand.GetSupply();
+            this.supply = IntakeAirDemandSupply.GetSupply();
         }
 
         #endregion

--- a/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirSupplyDemand.cs
+++ /dev/null
@@ -1,100 +1,1 @@
-// 
-//     Kerbal Engineer Redux
-// 
-//     Copyright (C) 2014 CYBUTEK
-// 
-//     This program is free software: you can redistribute it and/or modify
-//     it under the terms of the GNU General Public License as published by
-//     the Free Software Foundation, either version 3 of the License, or
-//     (at your option) any later version.
-// 
-//     This program is distributed in the hope that it will be useful,
-//     but WITHOUT ANY WARRANTY; without even the implied warranty of
-//     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//     GNU General Public License for more details.
-// 
-//     You should have received a copy of the GNU General Public License
-//     along with this program.  If not, see <http://www.gnu.org/licenses/>.
-// 
 
-#region Using Directives
-
-using System.Linq;
-
-#endregion
-
-namespace KerbalEngineer.Flight.Readouts.Vessel
-{
-    public class IntakeAirSupplyDemand : ReadoutModule
-    {
-        #region Fields
-
-        private double demand;
-        private double supply;
-
-        #endregion
-
-        #region Constructors
-
-        public IntakeAirSupplyDemand()
-        {
-            this.Name = "Intake Air (D/S)";
-            this.Category = ReadoutCategory.GetCategory("Vessel");
-            this.HelpString = string.Empty;
-            this.IsDefault = true;
-        }
-
-        #endregion
-
-        #region Methods: public
-
-        public static double GetDemand()
-        {
-            var demand = 0.0;
-            foreach (var part in FlightGlobals.ActiveVessel.Parts)
-            {
-                if (part.Modules.Contains("ModuleEngines"))
-                {
-                    var engine = part.Modules["ModuleEngines"] as ModuleEngines;
-                    if (engine.isOperational)
-                    {
-                        demand += engine.propellants
-                            .Where(p => p.name == "IntakeAir")
-                            .Sum(p => p.currentRequirement);
-                    }
-                }
-                if (part.Modules.Contains("ModuleEnginesFX"))
-                {
-                    var engine = part.Modules["ModuleEngines"] as ModuleEnginesFX;
-                    if (engine.isOperational)
-                    {
-                        demand += engine.propellants
-                            .Where(p => p.name == "IntakeAir")
-                            .Sum(p => p.currentRequirement);
-                    }
-                }
-            }
-            return demand;
-        }
-
-        public static double GetSupply()
-        {
-            return FlightGlobals.ActiveVessel.Parts
-                .Where(p => p.Resources.Contains("IntakeAir"))
-                .Sum(p => p.Resources["IntakeAir"].amount);
-        }
-
-        public override void Draw()
-        {
-            this.DrawLine(this.demand.ToString("F4") + " / " + this.supply.ToString("F4"));
-        }
-
-        public override void Update()
-        {
-            this.demand = GetDemand();
-            this.supply = GetSupply();
-        }
-
-        #endregion
-    }
-}

--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Vessel/IntakeAirUsage.cs
@@ -1,1 +1,71 @@
+// 
+//     Kerbal Engineer Redux
+// 
+//     Copyright (C) 2014 CYBUTEK
+// 
+//     This program is free software: you can redistribute it and/or modify
+//     it under the terms of the GNU General Public License as published by
+//     the Free Software Foundation, either version 3 of the License, or
+//     (at your option) any later version.
+// 
+//     This program is distributed in the hope that it will be useful,
+//     but WITHOUT ANY WARRANTY; without even the implied warranty of
+//     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//     GNU General Public License for more details.
+// 
+//     You should have received a copy of the GNU General Public License
+//     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// 
 
+#region Using Directives
+
+using System;
+
+using KerbalEngineer.Extensions;
+using KerbalEngineer.Helpers;
+
+#endregion
+
+
+
+namespace KerbalEngineer.Flight.Readouts.Vessel
+{
+    public class IntakeAirUsage : ReadoutModule
+    {
+        #region Fields
+
+        private double percentage;
+
+        #endregion
+
+        #region Constructors
+
+        public IntakeAirUsage()
+        {
+            this.Name = "Intake Air (Usage)";
+            this.Category = ReadoutCategory.GetCategory("Vessel");
+            this.HelpString = string.Empty;
+            this.IsDefault = true;
+        }
+
+        #endregion
+
+        #region Methods: public
+
+        public override void Draw()
+        {
+            this.DrawLine(Units.ToPercent(this.percentage));
+        }
+
+        public override void Update()
+        {
+            this.percentage = IntakeAirDemandSupply.GetDemand() / IntakeAirDemandSupply.GetSupply();
+            if (Double.IsNaN(this.percentage) || Double.IsInfinity(this.percentage))
+            {
+                this.percentage = 0.0;
+            }
+        }
+
+        #endregion
+    }
+}

--- a/KerbalEngineer/Helpers/Units.cs
+++ b/KerbalEngineer/Helpers/Units.cs
@@ -97,6 +97,12 @@
             return value1.ToString("N" + decimals) + " / " + value2.ToString("N" + decimals) + "kg";
         }
 
+        public static string ToPercent(double value, int decimals = 2)
+        {
+            value *= 100.0;
+            return value.ToString("F" + decimals) + "%";
+        }
+
         public static string ToRate(double value, int decimals = 1)
         {
             return value > 0 ? value.ToString("F" + decimals) + "/sec" : (value * 60.0).ToString("F" + decimals);

--- a/KerbalEngineer/KerbalEngineer.csproj
+++ b/KerbalEngineer/KerbalEngineer.csproj
@@ -87,7 +87,8 @@
     <Compile Include="Flight\Readouts\Surface\ImpactBiome.cs" />
     <Compile Include="Flight\Readouts\Surface\Slope.cs" />
     <Compile Include="Flight\Readouts\Surface\Biome.cs" />
-    <Compile Include="Flight\Readouts\Vessel\IntakeAirSupplyDemand.cs" />
+    <Compile Include="Flight\Readouts\Vessel\IntakeAirUsage.cs" />
+    <Compile Include="Flight\Readouts\Vessel\IntakeAirDemandSupply.cs" />
     <Compile Include="Flight\Readouts\Vessel\IntakeAirSupply.cs" />
     <Compile Include="Flight\Readouts\Vessel\IntakeAirDemand.cs" />
     <Compile Include="Flight\Readouts\Miscellaneous\SimulationDelay.cs" />

 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ