diff --git a/control/json/manager.cpp b/control/json/manager.cpp
index 22c11f1..b29c5e9 100644
--- a/control/json/manager.cpp
+++ b/control/json/manager.cpp
@@ -90,15 +90,6 @@
 
 void Manager::load()
 {
-    // TODO - Remove Manager JSON config support since it's not needed with init
-    // mode removed
-    auto confFile =
-        fan::JsonConfig::getConfFile(_bus, confAppName, confFileName, true);
-    if (!confFile.empty())
-    {
-        _jsonObj = fan::JsonConfig::load(confFile);
-    }
-
     // Load the available profiles and which are active
     setProfiles();
 
@@ -544,19 +535,6 @@
     }
 }
 
-unsigned int Manager::getPowerOnDelay()
-{
-    auto powerOnDelay = 0;
-
-    // Parse optional "power_on_delay" from JSON object
-    if (!_jsonObj.empty() && _jsonObj.contains("power_on_delay"))
-    {
-        powerOnDelay = _jsonObj["power_on_delay"].get<unsigned int>();
-    }
-
-    return powerOnDelay;
-}
-
 void Manager::setProfiles()
 {
     // Profiles JSON config file is optional
diff --git a/control/json/manager.hpp b/control/json/manager.hpp
index 9f57ac9..5668138 100644
--- a/control/json/manager.hpp
+++ b/control/json/manager.hpp
@@ -404,14 +404,6 @@
     }
 
     /**
-     * @brief Get the configured power on delay(OPTIONAL)
-     *
-     * @return Power on delay in seconds
-     *     Configured power on delay in seconds, otherwise 0
-     */
-    unsigned int getPowerOnDelay();
-
-    /**
      * @brief Is the power state on
      *
      * @return Current power state of the system
@@ -422,12 +414,6 @@
     }
 
   private:
-    /* JSON file name for manager configuration attributes */
-    static constexpr auto confFileName = "manager.json";
-
-    /* The parsed JSON object */
-    json _jsonObj;
-
     /**
      * The sdbusplus bus object to use
      */
