diff --git a/tools/chunks/catchunks/pipeline-interests-aimd.cpp b/tools/chunks/catchunks/pipeline-interests-aimd.cpp
index bf530ff..cdf502d 100644
--- a/tools/chunks/catchunks/pipeline-interests-aimd.cpp
+++ b/tools/chunks/catchunks/pipeline-interests-aimd.cpp
@@ -51,6 +51,7 @@
   , m_nLossEvents(0)
   , m_nRetransmitted(0)
   , m_nCongMarks(0)
+  , m_nSent(0)
   , m_cwnd(m_options.initCwnd)
   , m_ssthresh(m_options.initSsthresh)
   , m_hasFailure(false)
@@ -162,6 +163,7 @@
                                            bind(&PipelineInterestsAimd::handleNack, this, _1, _2),
                                            bind(&PipelineInterestsAimd::handleLifetimeExpiration, this, _1));
   m_nInFlight++;
+  m_nSent++;
 
   if (isRetransmission) {
     SegmentInfo& segInfo = m_segmentInfo[segNo];
@@ -437,15 +439,23 @@
 PipelineInterestsAimd::printSummary() const
 {
   PipelineInterests::printSummary();
-  std::cerr << "Total # of packet loss events: " << m_nLossEvents << "\n"
+  std::cerr << "Total # of lost/retransmitted segments: " << m_nRetransmitted
+            << " (caused " << m_nLossEvents << " window decreases)\n"
             << "Packet loss rate: "
-            << static_cast<double>(m_nLossEvents) / static_cast<double>(m_nReceived) << "\n"
-            << "Total # of retransmitted segments: " << m_nRetransmitted << "\n"
+            << (static_cast<double>(m_nRetransmitted) / static_cast<double>(m_nSent)) * 100 << "%\n"
             << "Total # of received congestion marks: " << m_nCongMarks << "\n"
-            << "RTT min/avg/max = " << std::fixed << std::setprecision(3)
-                                    << m_rttEstimator.getMinRtt() << "/"
-                                    << m_rttEstimator.getAvgRtt() << "/"
-                                    << m_rttEstimator.getMaxRtt() << " ms\n";
+            << "RTT ";
+
+  if (m_rttEstimator.getMinRtt() == std::numeric_limits<double>::max() ||
+      m_rttEstimator.getMaxRtt() == std::numeric_limits<double>::min()) {
+     std::cerr << "stats unavailable\n";
+   }
+   else {
+     std::cerr << "min/avg/max = " << std::fixed << std::setprecision(3)
+                                   << m_rttEstimator.getMinRtt() << "/"
+                                   << m_rttEstimator.getAvgRtt() << "/"
+                                   << m_rttEstimator.getMaxRtt() << " ms\n";
+  }
 }
 
 std::ostream&
diff --git a/tools/chunks/catchunks/pipeline-interests-aimd.hpp b/tools/chunks/catchunks/pipeline-interests-aimd.hpp
index bbc9940..0257e7b 100644
--- a/tools/chunks/catchunks/pipeline-interests-aimd.hpp
+++ b/tools/chunks/catchunks/pipeline-interests-aimd.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2017, Regents of the University of California,
+ * Copyright (c) 2016-2018, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -184,6 +184,7 @@
   void
   cancelInFlightSegmentsGreaterThan(uint64_t segNo);
 
+PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   void
   printSummary() const final;
 
@@ -203,6 +204,7 @@
   int64_t m_nLossEvents; ///< # of loss events occurred
   int64_t m_nRetransmitted; ///< # of segments retransmitted
   int64_t m_nCongMarks; ///< # of data packets with congestion mark
+  int64_t m_nSent; ///< # of interest packets sent out (including retransmissions)
 
   double m_cwnd; ///< current congestion window size (in segments)
   double m_ssthresh; ///< current slow start threshold
