diff --git a/monitor/system.cpp b/monitor/system.cpp
index 6e2ccfa..0447cfa 100644
--- a/monitor/system.cpp
+++ b/monitor/system.cpp
@@ -107,6 +107,9 @@
 
     if (_powerState->isPowerOn())
     {
+        // Fans could be missing on startup, so check the power off rules.
+        // Tach sensors default to functional, so they wouldn't cause a power
+        // off here.
         std::for_each(_powerOffRules.begin(), _powerOffRules.end(),
                       [this](auto& rule) {
                           rule->check(PowerRuleState::runtime, _fanHealth);
diff --git a/monitor/tach_sensor.cpp b/monitor/tach_sensor.cpp
index be56c69..660a732 100644
--- a/monitor/tach_sensor.cpp
+++ b/monitor/tach_sensor.cpp
@@ -87,9 +87,6 @@
     _timer(event, std::bind(&Fan::updateState, &fan, std::ref(*this))),
     _errorDelay(errorDelay), _countInterval(countInterval)
 {
-    // Query functional state from inventory
-    // TODO - phosphor-fan-presence/issues/25
-
     _prevTachs.resize(MAX_PREV_TACHS);
 
     if (_hasTarget)
@@ -97,37 +94,8 @@
         _prevTargets.resize(MAX_PREV_TARGETS);
     }
 
-    _functional = true;
-
-    try
-    {
-        // see if any object paths in the inventory have the
-        // OperationalStatus interface.
-        auto subtree = util::SDBusPlus::getSubTreeRaw(
-            _bus, util::INVENTORY_PATH, util::OPERATIONAL_STATUS_INTF, 0);
-
-        // if the tach sensor's entry already exists, we for sure can
-        // read its functional state from the inventory
-        if (subtree.end() != subtree.find(util::INVENTORY_PATH + _invName))
-        {
-            _functional = util::SDBusPlus::getProperty<bool>(
-                _bus, util::INVENTORY_PATH + _invName,
-                util::OPERATIONAL_STATUS_INTF, util::FUNCTIONAL_PROPERTY);
-        }
-    }
-    catch (const util::DBusError& e)
-    {
-        log<level::DEBUG>(e.what());
-    }
-
     updateInventory(_functional);
 
-    if (!_functional && MethodMode::count == _method)
-    {
-        // force continual nonfunctional state
-        _counter = _threshold;
-    }
-
     // Load in current Target and Input values when entering monitor mode
 #ifndef MONITOR_USE_JSON
     if (mode != Mode::init)
