diff --git a/src/compatibility/cts/interpret.jd b/src/compatibility/cts/interpret.jd
index 7109ded..0014044 100644
--- a/src/compatibility/cts/interpret.jd
+++ b/src/compatibility/cts/interpret.jd
@@ -31,6 +31,11 @@
 this file in any web browser (HTML5 compatible browser recommended) to view the
 test results. It will resemble the following screenshots.</p>
 
+<p class="note"><strong>Note:</strong> The results are provided to help you
+ensure the software remains compatible throughout the development process and
+act as a common format for communicating the compatibility status of your
+device with other parties.</p>
+
 <img src="images/cts-test-summary.png" alt="CTS test summary" id="figure1" />
 <p class="img-caption">
   <strong>Figure 1.</strong> CTS test summary
diff --git a/src/devices/audio/latency_measurements.jd b/src/devices/audio/latency_measurements.jd
index c5763b5..2811ae0 100644
--- a/src/devices/audio/latency_measurements.jd
+++ b/src/devices/audio/latency_measurements.jd
@@ -423,7 +423,52 @@
 
 </table>
 
-<img src="images/round_trip_bar_graph.png" alt="Round-trip latency bar graph" id="figure3" />
-<p class="img-caption">
-  <strong>Figure 3.</strong> Round-trip latency bar graph
-</p>
+<p></p>
+<p></p>
+
+<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['bar']}]}"></script>
+    <script type="text/javascript">
+
+
+google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = google.visualization.arrayToDataTable([
+        ['Device', '2.3', '4.0', '4.1', '4.2', '4.3', '4.4', '5.0', '5.1', '6.0'],
+        ['Nexus One', 345, null, null, null, null, null, null, null, null,],
+        ['Nexus S', 260, 260, 210, null, null, null, null, null, null,],
+        ['Galaxy Nexus', null, 270, null, null, 130, null, null, null, null,],
+        ['Nexus 4', null, null, null, 195, null, null, null, 58, null,],
+        ['Nexus 10', null, null, null, null, null, null, 36, 35, null,],
+        ['Nexus 7 2013', null, null, null, null, 149, 85, 64, 55, 55,],
+        ['Nexus 5', null, null, null, null, null, 95, 47, 42, 38,],
+        ['Nexus 9', null, null, null, null, null, null, 38, 32, 15,],
+        ['Nexus 6', null, null, null, null, null, null, 65, 42, 33,],
+        ['Nexus 5X', null, null, null, null, null, null, null, null, 18,],
+        ['Nexus 6P', null, null, null, null, null, null, null, null, 18,]
+      ]);
+
+        var options = {
+          chart: {
+            title: 'Round Trip Audio Latency',
+            subtitle: 'Over headset, using native APIs',
+          },
+          bars: 'horizontal', // Required for Material Bar Charts.
+          bar: {groupWidth: '100%'},
+          hAxis: {
+            title: 'Milliseconds'
+          },
+          height: 800,
+          width: 600
+        };
+
+        var chart = new google.charts.Bar(document.getElementById('chart_div'));
+
+        chart.draw(data, google.charts.Bar.convertOptions(options));
+
+      }
+</script>
+
+    <div id="chart_div"></div>
+    <p></p>
+    <p class="img-caption">
+<strong>Figure 3.</strong> Round trip latencies.</p>
\ No newline at end of file
