diff --git a/src/mainapp.cpp b/src/mainapp.cpp
index 34c7ed9..063b8d3 100644
--- a/src/mainapp.cpp
+++ b/src/mainapp.cpp
@@ -130,10 +130,16 @@
                  "Should we reset the time remaining any time a postcode "
                  "is signaled.");
 
+    // Interval related options
     uint64_t minInterval = phosphor::watchdog::DEFAULT_MIN_INTERVAL_MS;
     app.add_option("-m,--min_interval", minInterval,
                    "Set minimum interval for watchdog in milliseconds");
 
+    // 0 to indicate to use default from PDI if not passed in
+    uint64_t defaultInterval = 0;
+    app.add_option("-d,--default_interval", defaultInterval,
+                   "Set default interval for watchdog in milliseconds");
+
     CLI11_PARSE(app, argc, argv);
 
     // Put together a list of actions and associated systemd targets
@@ -222,7 +228,8 @@
 
         // Create a watchdog object
         Watchdog watchdog(bus, path.c_str(), event, std::move(actionTargetMap),
-                          std::move(maybeFallback), minInterval);
+                          std::move(maybeFallback), minInterval,
+                          defaultInterval);
 
         std::optional<sdbusplus::bus::match::match> watchPostcodeMatch;
         if (watchPostcodes)
diff --git a/src/watchdog.hpp b/src/watchdog.hpp
index 7de9bb3..63839a8 100644
--- a/src/watchdog.hpp
+++ b/src/watchdog.hpp
@@ -54,24 +54,35 @@
 
     /** @brief Constructs the Watchdog object
      *
-     *  @param[in] bus            - DBus bus to attach to.
-     *  @param[in] objPath        - Object path to attach to.
-     *  @param[in] event          - reference to sdeventplus::Event loop
-     *  @param[in] actionTargets  - map of systemd targets called on timeout
-     *  @param[in] fallback
+     *  @param[in] bus             - DBus bus to attach to.
+     *  @param[in] objPath         - Object path to attach to.
+     *  @param[in] event           - reference to sdeventplus::Event loop
+     *  @param[in] actionTargets   - map of systemd targets called on timeout
+     *  @param[in] fallback        - fallback watchdog
+     *  @param[in] minInterval     - minimum intervale value allowed
+     *  @param[in] defaultInterval - default interval to start with
      */
     Watchdog(sdbusplus::bus::bus& bus, const char* objPath,
              const sdeventplus::Event& event,
              ActionTargetMap&& actionTargetMap = {},
              std::optional<Fallback>&& fallback = std::nullopt,
-             uint64_t minInterval = DEFAULT_MIN_INTERVAL_MS) :
+             uint64_t minInterval = DEFAULT_MIN_INTERVAL_MS,
+             uint64_t defaultInterval = 0) :
         WatchdogInherits(bus, objPath),
         bus(bus), actionTargetMap(std::move(actionTargetMap)),
         fallback(std::move(fallback)), minInterval(minInterval),
         timer(event, std::bind(&Watchdog::timeOutHandler, this))
     {
-        // We set the watchdog interval with the default value.
-        interval(interval());
+        // Use default if passed in otherwise just use default that comes
+        // with object
+        if (defaultInterval)
+        {
+            interval(defaultInterval);
+        }
+        else
+        {
+            interval(interval());
+        }
         // We need to poke the enable mechanism to make sure that the timer
         // enters the fallback state if the fallback is always enabled.
         tryFallbackOrDisable();
