diff --git a/lib/determine-basal/determine-basal.js b/lib/determine-basal/determine-basal.js
index <HASH>..<HASH> 100644
--- a/lib/determine-basal/determine-basal.js
+++ b/lib/determine-basal/determine-basal.js
@@ -210,8 +210,9 @@ var determine_basal = function determine_basal(glucose_status, currenttemp, iob_
             iobArray.forEach(function(iobTick) {
                 //console.error(iobTick);
                 predBGI = Math.round(( -iobTick.activity * sens * 5 )*100)/100;
-                // predicted carb impact drops from current carb impact down to zero over duration of carb impact
-                predCI = Math.max(0, ci * ( 1 - predBGs.length/Math.max(cid,1) ) );
+                // predicted carb impact drops linearly from current carb impact down to zero
+                // eventually accounting for all carbs (if they can be absorbed over DIA)
+                predCI = Math.max(0, ci * ( 1 - predBGs.length/Math.max(cid*2,1) ) );
                 predBG = predBGs[predBGs.length-1] + predBGI + predCI;
                 console.error(predBGI, predCI, predBG);
                 predBGs.push(predBG);
extend carb impact to account for all carbs (if they can be absorbed over DIA)