diff --git a/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java b/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java
index 12f87fe..91af1f3 100644
--- a/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java
+++ b/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java
@@ -17,6 +17,8 @@
 
 import com.google.common.base.MoreObjects;
 
+import static com.google.common.base.Preconditions.checkArgument;
+
 /**
  * Implementation of a load.
  */
@@ -62,6 +64,7 @@
      * @param interval poll interval for this load
      */
     public DefaultLoad(long current, long previous, int interval) {
+        checkArgument(interval > 0, "Interval must be greater than 0");
         this.current = current;
         this.previous = previous;
         this.time = System.currentTimeMillis();
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/impl/PortStatisticsManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/impl/PortStatisticsManager.java
index 9d6e1cb..19b093c 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/impl/PortStatisticsManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/impl/PortStatisticsManager.java
@@ -46,8 +46,11 @@
 @Component(immediate = true)
 @Service
 public class PortStatisticsManager implements PortStatisticsService {
+
     private final Logger log = getLogger(getClass());
 
+    private static final int SECOND = 1_000;
+
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected DeviceService deviceService;
 
@@ -73,9 +76,9 @@
     public Load load(ConnectPoint connectPoint) {
         DataPoint c = current.get(connectPoint);
         DataPoint p = previous.get(connectPoint);
-        if (c != null && p != null) {
+        if (c != null && p != null && (c.time > p.time + SECOND)) {
             return new DefaultLoad(c.stats.bytesSent(), p.stats.bytesSent(),
-                                   (int) (c.time - p.time) / 1000);
+                                   (int) (c.time - p.time) / SECOND);
         }
         return null;
     }
