diff --git a/impl/src/main/java/com/groupon/lex/metrics/timeseries/expression/RateExpression.java b/impl/src/main/java/com/groupon/lex/metrics/timeseries/expression/RateExpression.java
index <HASH>..<HASH> 100644
--- a/impl/src/main/java/com/groupon/lex/metrics/timeseries/expression/RateExpression.java
+++ b/impl/src/main/java/com/groupon/lex/metrics/timeseries/expression/RateExpression.java
@@ -116,9 +116,9 @@ public class RateExpression implements TimeSeriesMetricExpression {
 
     @Override
     public TimeSeriesMetricDeltaSet apply(Context ctx) {
-        final Context previous = new PreviousContextWrapper(ctx, interval_
-                .map(intv -> ctx.getTSData().getPreviousCollectionPairAt(intv))
-                .orElseGet(() -> ctx.getTSData().getPreviousCollectionPair(1)));
+        final Context previous = new PreviousContextWrapper(
+                ctx,
+                ctx.getTSData().getPreviousCollectionPairAt(interval_.orElseGet(() -> ctx.getTSData().getCollectionInterval())));
         final Duration collection_interval = new Duration(
                 previous.getTSData().getCurrentCollection().getTimestamp(),
                 ctx.getTSData().getCurrentCollection().getTimestamp());
Change how rate expression finds the previous collection.