<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>The Mode Shift</title>
<link>https://themodeshift.scot/</link>
<atom:link href="https://themodeshift.scot/index.xml" rel="self" type="application/rss+xml"/>
<description></description>
<generator>quarto-1.10.18</generator>
<lastBuildDate>Thu, 24 Sep 2026 23:00:00 GMT</lastBuildDate>
<item>
  <title>Pre-registration</title>
  <link>https://themodeshift.scot/posts/2026-09-25-collision-stats-preregister/</link>
  <description><![CDATA[ 




<p>I was recently listening to the excellent <a href="https://timharford.com/2026/09/cautionary-tales-how-a-broken-arm-improved-my-french-with-david-epstein/">Cautionary Tales Podcast</a> where the host, Tim Harford<sup>1</sup> is discussing the importance of constraints on creativity with the author David Epstein. In it, David refers to the replication crisis that developed in the late 20th and early 21st century, where many wild findings would crop up in the news - largely from psychological or medical studies. Stuff like ‘you’re more likely to eat excessively from a blue bowl than a red bowl’ or the myriad claims of almost every foodstuff both causing and preventing cancer. Other researchers would try to replicate the studies and in many cases weren’t able to casting doubt as to whether the effects are real. After a while the realisation hit that the issue was that the researchers were pressurised to publish <em>something</em> so if their experiments yielded a null result, they’d simply interrogate the data they’d collected to find any correlations significant enough to be accepted by a journal. A good way to find a lot of false positives!</p>
<p>The solution (which is still evolving in many fields) has been for funding bodies and journals to require researchers to register their proposed methods and hypotheses in advance. This places a crucial constraint on the researchers - a methodological discipline that prevents torturing the data for answers that aren’t real. I don’t doubt there are still problems in those fields, but on all accounts I’ve seen it’s been a good move in the right direction.</p>
<p>What’s this got to do with active travel stats? It’s given me an idea to build on the data I looked at related to <a href="https://themodeshift.scot/posts/2026-09-10-courier-20mph-article/">20mph zones in Scotland and road collisions</a>, where I found that the collision data isn’t available yet to assess the effectiveness of the new speed limits. One day it will be, so now is a good time to say what I plan to look for in the data when it arrives. I’m not 100% sure what data I’ll have access to but I’ll do my best to provide myself with a framework to be accountable to.</p>
<section id="which-collisions-to-look-at" class="level4">
<h4 class="anchored" data-anchor-id="which-collisions-to-look-at">Which collisions to look at?</h4>
<p>One of the aims of the 20mph scheme is to reduce the frequency <em>and</em> severity of collisions. To capture both of these dimensions I’ll focus on the collisions in which there is a casualty who is killed or severely injured (KSI collisions). Of course, reducing collisions overall would be a good target to aim for as well but reducing KSI collisions should be where the real benefits of the 20mph limits lie.</p>
</section>
<section id="what-time-frame-to-look-at" class="level4">
<h4 class="anchored" data-anchor-id="what-time-frame-to-look-at">What time frame to look at?</h4>
<p>For my baseline I’ll look at the collisions in 2023-2025. While some of this data will include the effects of changes in the Highland and Borders council areas, much of Scotland was yet to fully adopt 20mph limits at that time. I’ll treat 2026 as a preliminary post-implementation year but wait until the 2027 data is available before drawing any solid conclusions.</p>
</section>
<section id="what-should-my-denominator-be" class="level4">
<h4 class="anchored" data-anchor-id="what-should-my-denominator-be">What should my denominator be?</h4>
<p>Again, this was discussed in my previous post. I want to capture the exposure of drivers to each speed limit. Ideally, I’d like to have the distance driver per km of road in each speed limit. As far as I can see, this isn’t currently published and the traffic volume data seems to lag behind collisions when it comes to being published. I’ll do my best to get this data, perhaps with an FOI, but in its absence I can use the volume data split by major/minor road or simply use the total length of roads at each speed limit. Since I can’t commit exactly at the moment, I’ll update here when I have a clearer picture as well as in a separate post before I start the analysis.</p>
</section>
<section id="which-speed-limits-to-consider" class="level4">
<h4 class="anchored" data-anchor-id="which-speed-limits-to-consider">Which speed limits to consider?</h4>
<p>This is an important step - I want to separate the signal from the noise without throwing out too much data. I don’t expect the 20mph policy to have much effect on roads over 40mph, and indeed I want to insulate my results from any changes that happen on these faster roads. Given that the vast majority of new 20mph roads will have been previously 30mph, I’ll look at the number of KSI collisions on those speed limits combined. This is also the methodology used by <a href="https://www.gov.wales/police-recorded-road-collisions-and-casualties-2025-html">the Welsh Government in their collision reporting</a> and the independent Office for Statistics Regulation were happy with that. More than good enough for me.</p>
<p>I’ll also look at the trend in collisions on 40mph roads as a separate group to act as a kind of control. I don’t think it’s likely to be a clean comparison, but worth looking for any significant increases in 40mph collisions could tell us if collisions are being displaced to elsewhere on the network.</p>
</section>
<section id="what-effect-size-will-i-look-for" class="level4">
<h4 class="anchored" data-anchor-id="what-effect-size-will-i-look-for">What effect size will I look for?</h4>
<p>With roughly 900 KSI collisions a year on roads with 20 and 30mph limits, random chance alone would move the annual count by around 7% either way, so I’ll treat any reduction under 10% as indistinguishable from normal variation As a reference point for a large effect I’m using Wales, where collisions on 20 and 30mph roads fell about a fifth after its national switch. Because Scotland’s roll-out is staggered and partial, I expect a smaller change than that, so anything in the 10–20% range would still be consistent with the policy working. The caveats here are that the Welsh figures include all collisions<sup>2</sup> whereas I’m looking for KSIs, and any effect should stand out against the trend on 40mph roads, though with only around 100 KSI collisions a year there, that comparison will be noisy and is really a check for obvious displacement.</p>
</section>
<section id="when-will-i-report" class="level4">
<h4 class="anchored" data-anchor-id="when-will-i-report">When will I report?</h4>
<p>I’ll use the UK Dept for Transport’s STATS19 final data release for each year. This seems to arrive in late July the following year. I’d expect to be able to put something on thie site within a month of each release. I’ve set a reminder in my calendar and I’m sure you will too.</p>
</section>
<section id="do-i-have-a-prediction" class="level4">
<h4 class="anchored" data-anchor-id="do-i-have-a-prediction">Do I have a prediction?</h4>
<p>Based on the experience in Wales I think a significant reduction in KSIs is likely. I’m less confident about the scale of that reduction given the differences in the nature of the road networks in Scotland and Wales but if I had to put a number on it I’d go for a 10-20% reduction. Any more than that and I’ll be delighted.</p>


</section>


<div id="quarto-appendix" class="default"><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>Also the host of BBC’s More or Less. If you’ve read any of this blog it will come as no surprise to you that I am a Loyal Listener.↩︎</p></li>
<li id="fn2"><p>Some of the Welsh police forces changed how they measure collision severity during the measured period. Police Scotland have used the same system since 2019 so KSI data is more comparable.↩︎</p></li>
</ol>
</section></div> ]]></description>
  <category>20mph</category>
  <category>road safety</category>
  <category>methodology</category>
  <category>pre-registration</category>
  <guid>https://themodeshift.scot/posts/2026-09-25-collision-stats-preregister/</guid>
  <pubDate>Thu, 24 Sep 2026 23:00:00 GMT</pubDate>
</item>
<item>
  <title>Millburn Road - Cycling Volume Analysis</title>
  <link>https://themodeshift.scot/posts/2026-09-12-millburn-volume analysis/</link>
  <description><![CDATA[ 




<p>This is the third in a series of posts about a cycle lane in Millburn Road, Inverness. The previous post, detailing where we’re getting the data from can be found <a href="https://themodeshift.scot/posts/2026-09-04-inverness-data/">here</a>.</p>
<section id="what-data-are-we-looking-at" class="level2">
<h2 class="anchored" data-anchor-id="what-data-are-we-looking-at">What data are we looking at?</h2>
<p>I’ve decided to concentrate on the main entry points and routes through the city. There’s a continuous counter placed anywhere you see this icon <img src="https://themodeshift.scot/posts/2026-09-12-millburn-volume analysis/count_icon.png" style="height:1.2em"> on the map below<sup>1</sup>:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://themodeshift.scot/posts/2026-09-12-millburn-volume analysis/usmart-screenshot-inverness-centre.png" class="img-fluid figure-img" style="width:70.0%" alt="A map zoomed in on Inverness city centre on which several traffic counters are marked."></p>
<figcaption>Image taken from Cycling Scotland Open Data portal (usmart.io)</figcaption>
</figure>
</div>
<p>This gives counts at the following locations:</p>
<div class="columns">
<div class="column" style="width:33%;">
<ul>
<li>Millburn Road</li>
<li>Ness Walk</li>
<li>Greig Street</li>
</ul>
</div><div class="column" style="width:33%;">
<ul>
<li>Huntly Street</li>
<li>Academy Street</li>
<li>Crown Road</li>
</ul>
</div><div class="column" style="width:33%;">
<ul>
<li>Bank Street</li>
<li>Bridge Street</li>
<li>Castle Road</li>
</ul>
</div>
</div>
<p>Both Millburn Road and Academy Street have two counters each, one for eastbound and one for westbound traffic. Since this analysis isn’t interested in the directional distinction, they have been combined into one count for each street.</p>
</section>
<section id="cycling-volume-history" class="level2">
<h2 class="anchored" data-anchor-id="cycling-volume-history">Cycling volume history</h2>
<p>The first number we want to look at is just how busy each counter is with cycle traffic. Figure&nbsp;1 shows all of the cycle traffic volume data since collection started in March 2021. Millburn Road is highlighted orange, and you can mouse over the other lines to see which counter they correspond to.</p>
<div class="cell">
<div id="fig-volume" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-volume-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-8dfeec531852248cbd90" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-8dfeec531852248cbd90">{"x":{"visdat":{"22315266bbc5":["function () ","plotlyVisDat"],"223156b1acc6":["function () ","data"],"22312ac627a1":["function () ","data"],"22313753d0f7":["function () ","data"],"22315fbc2481":["function () ","data"],"22313900c241":["function () ","data"],"223160d156a3":["function () ","data"],"22314f8f18fd":["function () ","data"],"22313bb1b2d9":["function () ","data"],"2231f54e32d":["function () ","data"]},"cur_data":"2231f54e32d","attrs":{"223156b1acc6":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Millburn Road","type":"scatter","mode":"lines","line":{"color":"#eb6834","width":3.5},"inherit":true},"22312ac627a1":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Ness Walk","type":"scatter","mode":"lines","line":{"color":"#3d6b8a","width":1.5},"inherit":true},"22313753d0f7":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Greig Street","type":"scatter","mode":"lines","line":{"color":"#4a8a5f","width":1.5},"inherit":true},"22315fbc2481":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Huntly Street","type":"scatter","mode":"lines","line":{"color":"#b08a3d","width":1.5},"inherit":true},"22313900c241":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Academy Street","type":"scatter","mode":"lines","line":{"color":"#7d5a9e","width":1.5},"inherit":true},"223160d156a3":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Crown Road","type":"scatter","mode":"lines","line":{"color":"#a14f4f","width":1.5},"inherit":true},"22314f8f18fd":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Bank Street","type":"scatter","mode":"lines","line":{"color":"#3d8a8a","width":1.5},"inherit":true},"22313bb1b2d9":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Bridge Street","type":"scatter","mode":"lines","line":{"color":"#8a7a2e","width":1.5},"inherit":true},"2231f54e32d":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Castle Road","type":"scatter","mode":"lines","line":{"color":"#6b6b6b","width":1.5},"inherit":true}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":""},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Avg daily cycle count"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":true},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[17.5,33.866666666666667,102.41935483870965,490.13333333333333,487.09677419354841,534.29032258064512,467.36666666666667,577.51612903225805,680.70000000000005,519.29032258064512,540.16129032258073,540.57142857142856,684.25806451612902,650.23333333333335,772.22580645161293,905.26666666666665,851.67741935483866,951.77419354838707,931.73333333333335,583.22580645161293,542.76666666666665,326,336.45161290322579,420,442.19354838709677,524.70000000000005,599.41935483870964,639.56666666666672,550,606.22580645161293,635.93333333333328,524.51612903225805,486.03333333333336,371.87096774193549,310.38709677419354,385.55172413793105,447.77419354838707,480.06666666666672,533.38709677419354,508.26666666666665,488.58064516129036,526.67741935483866,514.5333333333333,455.35483870967744,386.63333333333333,105,16.741935483870968,19.071428571428573,191.35483870967741,261.73333333333335,260.09677419354841,249.09999999999999,259.61290322580646,265.51612903225805,243.19999999999999,198.03333333333333,192.62068965517241,149.66666666666669,132.48275862068965,167.75,184.26666666666668,168.11111111111111,246.55555555555554,227.86666666666667],"name":"Millburn Road","type":"scatter","mode":"lines","line":{"color":"#eb6834","width":3.5},"marker":{"color":"rgba(31,119,180,1)","line":{"color":"rgba(31,119,180,1)"}},"error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[70,357.56666666666666,339.03225806451616,420.56666666666666,431.61290322580646,512.16129032258073,410.43333333333334,489.12903225806451,599.16666666666674,354.51612903225805,326.32258064516134,365.92857142857144,671.74193548387098,903.33333333333337,739.0322580645161,805.79999999999995,93.354838709677423,775.51612903225805,741.13333333333333,691.61290322580646,553.0333333333333,282.74193548387098,222.12903225806454,346.85714285714283,414.22580645161293,651.83333333333326,677.16129032258073,732.13333333333333,660.48387096774195,738.09677419354841,732.9666666666667,693.41935483870964,292.63333333333333,172.45161290322579,57.612903225806448,46.517241379310342,71.258064516129039,72.96666666666664,0,56.800000000000026,692.87096774193549,714.70967741935488,601.79999999999995,476.45161290322579,431.39999999999998,287.09677419354841,155.27586206896552,201.62962962962962,263.60000000000002,448.70000000000005,359.77419354838707,334.43333333333334,354.63333333333333,333.14285714285717,276.72413793103448,208.78571428571428,155.17241379310343,124.88888888888889,113.03999999999999,173.03703703703704,217.59999999999999,238.44444444444446,372.22222222222223,330.19999999999999],"name":"Ness Walk","type":"scatter","mode":"lines","line":{"color":"#3d6b8a","width":1.5},"marker":{"color":"rgba(255,127,14,1)","line":{"color":"rgba(255,127,14,1)"}},"error_y":{"color":"rgba(255,127,14,1)"},"error_x":{"color":"rgba(255,127,14,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[71,208.06666666666666,247.45161290322579,302.03333333333336,305.12903225806451,323.06451612903226,326.16666666666669,348.61290322580646,422.76666666666665,337.12903225806451,1128.0322580645163,289.14285714285717,452.12903225806451,413.23333333333335,492.93548387096774,647.5333333333333,597.54838709677415,652.70967741935488,584.63333333333333,376.32258064516128,362.26666666666665,212.29032258064518,200.93548387096774,272.35714285714283,283.61290322580646,356.69999999999999,408.29032258064518,433.19999999999999,322.35483870967744,324.67741935483866,369.19999999999999,284.70967741935482,278.86666666666667,193.93548387096774,175.7741935483871,239.31034482758622,277.61290322580646,278.26666666666665,356.22580645161293,325.69999999999999,281.03225806451616,278.77419354838707,298.33333333333331,215.51612903225805,195.66666666666669,157.83870967741933,71.13333333333334,89.821428571428569,110.09677419354838,129.14285714285714,156.30000000000001,166.75862068965517,150.67857142857142,164.58620689655172,169.34482758620689,122.85714285714286,97.931034482758619,84.25,73.107142857142847,93.407407407407405,106.5925925925926,104.88888888888889,146.55555555555554,145.46666666666667],"name":"Greig Street","type":"scatter","mode":"lines","line":{"color":"#4a8a5f","width":1.5},"marker":{"color":"rgba(44,160,44,1)","line":{"color":"rgba(44,160,44,1)"}},"error_y":{"color":"rgba(44,160,44,1)"},"error_x":{"color":"rgba(44,160,44,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[84.5,206.09999999999999,218.61290322580646,285.56666666666666,271.41935483870969,175.03225806451616,34.166666666666671,97.806451612903231,141.76666666666668,206.7741935483871,176.32258064516128,128.03571428571428,65.41935483870968,54.633333333333333,76.903225806451616,76.800000000000026,51.612903225806441,88.580645161290334,125.96666666666667,255.74193548387098,428.53333333333319,179.16129032258064,144.06451612903226,156.85714285714283,111.12903225806451,369.39999999999998,436.70967741935482,447.76666666666665,383.54838709677421,435.45161290322579,426.60000000000002,398.45161290322579,526.5333333333333,368.90322580645159,286.58064516129036,347.93103448275861,328.83870967741933,348.39999999999998,423.48387096774195,368.33333333333331,358.70967741935482,413.32258064516128,376.53333333333336,410.06451612903226,312.60000000000002,276.77419354838707,135.96666666666667,135.5,164.51612903225808,188.44827586206895,200.40000000000001,199,215.74074074074073,203.0344827586207,191.17857142857142,164.40000000000001,144.07142857142858,133.55172413793105,108.66666666666666,144.64285714285714,143.85714285714286,162.77777777777777,207.11111111111111,197.19999999999999],"name":"Huntly Street","type":"scatter","mode":"lines","line":{"color":"#b08a3d","width":1.5},"marker":{"color":"rgba(214,39,40,1)","line":{"color":"rgba(214,39,40,1)"}},"error_y":{"color":"rgba(214,39,40,1)"},"error_x":{"color":"rgba(214,39,40,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[4.5,0.56666666666666676,27.290322580645157,528,389.45161290322579,600.77419354838707,576.63333333333333,787.64516129032268,782.70000000000005,650.61290322580646,549.54838709677415,608.03571428571433,815.41935483870964,533.79999999999995,511.80645161290323,552.93333333333328,561.58064516129036,538.38709677419354,511.73333333333335,341.93548387096774,317.13333333333333,217.48387096774192,224.51612903225808,267.85714285714283,275.06451612903226,362.30000000000001,376.06451612903226,419.80000000000001,385.32258064516128,420.32258064516128,414.5,320.58064516129031,313.39999999999998,241.48387096774192,223.38709677419354,269.89655172413791,305.67741935483872,350.13333333333333,406.80645161290323,409.23333333333335,387.22580645161293,400,355.26666666666665,290.22580645161293,250.5,234.19354838709677,112.51612903225808,121.82142857142857,134.12903225806451,177.26666666666668,186.21428571428572,191.28571428571428,195.28571428571428,194.30000000000001,174.89285714285714,149.10344827586206,129.44827586206895,117.55172413793103,98.448275862068982,116.70370370370371,114.7,123.88888888888889,182.88888888888889,178.66666666666666],"name":"Academy Street","type":"scatter","mode":"lines","line":{"color":"#7d5a9e","width":1.5},"marker":{"color":"rgba(148,103,189,1)","line":{"color":"rgba(148,103,189,1)"}},"error_y":{"color":"rgba(148,103,189,1)"},"error_x":{"color":"rgba(148,103,189,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[1.5,0,7,28.133333333333333,33.935483870967744,56.322580645161295,50.43333333333333,68.161290322580641,80.599999999999994,75.645161290322577,77.548387096774192,116.92857142857143,72.064516129032256,54.766666666666673,50.58064516129032,51.600000000000001,48.12903225806452,54.838709677419352,54,46.193548387096776,49.43333333333333,59.29032258064516,56.064516129032256,36.785714285714285,41.612903225806448,38.233333333333334,42.258064516129032,40.266666666666666,37.935483870967744,40.29032258064516,43.466666666666669,32.12903225806452,39.399999999999999,37.41935483870968,31.322580645161288,29.758620689655171,30.096774193548388,34.966666666666669,39.161290322580648,34.200000000000003,38.741935483870968,40.258064516129032,45.799999999999997,36.032258064516128,36.733333333333334,48.258064516129032,16.333333333333336,18.607142857142854,24.161290322580648,19.310344827586206,18.806451612903224,19.199999999999999,22.566666666666666,21.733333333333334,20.75,27.689655172413794,44.370370370370367,39.137931034482762,17.703703703703706,18.148148148148145,20.800000000000001,17.222222222222221,19.444444444444443,19.399999999999999],"name":"Crown Road","type":"scatter","mode":"lines","line":{"color":"#a14f4f","width":1.5},"marker":{"color":"rgba(140,86,75,1)","line":{"color":"rgba(140,86,75,1)"}},"error_y":{"color":"rgba(140,86,75,1)"},"error_x":{"color":"rgba(140,86,75,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[32.5,95.200000000000003,146.74193548387098,328.46666666666664,386.06451612903226,347.25806451612902,317.66666666666663,400.54838709677421,761.26666666666665,665.77419354838707,646.09677419354841,480.53571428571428,431.96774193548384,496.96666666666664,521.93548387096769,689.89999999999998,649.06451612903231,786.93548387096769,685.66666666666674,275.41935483870969,251.19999999999999,150.87096774193549,159.2258064516129,200.57142857142858,212.64516129032259,369.93333333333328,404.45161290322579,414.19999999999999,365.48387096774195,449.35483870967744,361.19999999999999,233,206.73333333333332,128.80645161290323,135.45161290322579,197.93103448275863,239.12903225806451,139.63333333333333,158.45161290322579,27.699999999999996,0,0,0,0,0,0,1.4193548387096773,50.928571428571431,121.90000000000001,189.10344827586206,133.65517241379311,155.55172413793105,179.09999999999999,181.30000000000001,167.13793103448276,109.67857142857143,85.148148148148152,69.758620689655174,59.862068965517246,86.962962962962962,108.03448275862068,113.375,74.444444444444443,63.399999999999999],"name":"Bank Street","type":"scatter","mode":"lines","line":{"color":"#3d8a8a","width":1.5},"marker":{"color":"rgba(227,119,194,1)","line":{"color":"rgba(227,119,194,1)"}},"error_y":{"color":"rgba(227,119,194,1)"},"error_x":{"color":"rgba(227,119,194,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01"],"y":[262,251.09999999999999,223.35483870967741,320.93333333333334,350.35483870967744,370.83870967741933,251.69999999999999,289.83870967741939,286.83333333333331,313.80645161290323,287.09677419354841,331.03571428571428,344.41935483870969,289.39999999999998,323.93548387096774,445.93333333333334,412.61290322580646,480.35483870967744,643.33333333333337,267.12903225806451,151.96666666666667,82.741935483870961,112.7741935483871,190.96428571428572,179.54838709677421,232.90000000000001,278.09677419354841,267.80000000000001,184.70967741935485,196.74193548387098,138.16666666666669,64.580645161290334,46.733333333333334,36.806451612903224,34.935483870967744,29.551724137931036,56.451612903225808,13.833333333333329,6.967741935483871,143.13333333333333,162.74193548387098,176,61.466666666666669,27.516129032258064,9.9666666666666668,182.61290322580649,117.38709677419355,157.92857142857142,174.38709677419354,219.24137931034483,235.68965517241378,243.10344827586206,249.55172413793105,264.21428571428572,245.06896551724137,203.21428571428572,151.67857142857142,127.67857142857142,98.037037037037024,132.23076923076923,151.46666666666667,150.11111111111111],"name":"Bridge Street","type":"scatter","mode":"lines","line":{"color":"#8a7a2e","width":1.5},"marker":{"color":"rgba(127,127,127,1)","line":{"color":"rgba(127,127,127,1)"}},"error_y":{"color":"rgba(127,127,127,1)"},"error_x":{"color":"rgba(127,127,127,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2021-03-01","2021-04-01","2021-05-01","2021-06-01","2021-07-01","2021-08-01","2021-09-01","2021-10-01","2021-11-01","2021-12-01","2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01"],"y":[79,235.19999999999999,259.93548387096774,430.26666666666665,417.93548387096774,488.61290322580652,331.66666666666663,441.22580645161293,434.30000000000001,1028.8064516129029,907.87096774193537,427.67857142857144,545.16129032258061,764.29999999999984,464.32258064516128,513.06666666666672,579.16129032258061,634.48387096774195,483.69999999999993,447.96774193548384,224.76666666666668,111.54838709677419,123.06451612903226,37.142857142857153,0,0,0,0,326.19354838709677,395.58064516129036,337.80000000000001,223.19354838709677,221.93333333333334,167.96774193548387,126.3225806451613,169.13793103448273,204,190.76666666666668,338.09677419354841,315.93333333333334,90.387096774193523,0,0,0,0,0,0,0,39.65517241379311,304.82758620689651,138.16129032258064,123.57692307692308,145.83333333333334,190.12903225806451,167.59999999999999,118,72.107142857142861,58.448275862068968,42.827586206896541,60.07692307692308,69.933333333333337,76.222222222222229],"name":"Castle Road","type":"scatter","mode":"lines","line":{"color":"#6b6b6b","width":1.5},"marker":{"color":"rgba(188,189,34,1)","line":{"color":"rgba(188,189,34,1)"}},"error_y":{"color":"rgba(188,189,34,1)"},"error_x":{"color":"rgba(188,189,34,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-volume-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Average daily cycle counts by road, 2021–2026
</figcaption>
</figure>
</div>
</div>
<p>A couple of things stand out on the chart before we address Millburn Road. The first is that the data in the 2021-2022 period looks quite messy. I think it’s reasonable to say that the travel patterns in the early post-pandemic years is sufficiently different to where we are now to give that data a separate look another time.</p>
<p>The second thing is the steep drop in counts at all sites in the winter 2024/25 period. I don’t know enough yet to explain it, but I do want to say I’m working on figuring it out and will publish what I find. It’s worth noting that cycle traffic appears to be overall lower after this blip. Until I know more about whether that’s real or an artefact of data collection, I’ll refrain from commenting on any trends over time.</p>
<p>Figure&nbsp;2 shows the data starting in January 2023:</p>
<div class="cell">
<div id="fig-volume-2023" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-volume-2023-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-b0abd83a93d11bf880e3" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-b0abd83a93d11bf880e3">{"x":{"visdat":{"223158577797":["function () ","plotlyVisDat"],"2231566c87d0":["function () ","data"],"22316f489503":["function () ","data"],"223162f3109":["function () ","data"],"223143c490b":["function () ","data"],"223111df7359":["function () ","data"],"2231650de139":["function () ","data"],"2231723d9903":["function () ","data"],"22312a08ce8d":["function () ","data"],"22312830a08a":["function () ","data"]},"cur_data":"22312830a08a","attrs":{"2231566c87d0":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Millburn Road","type":"scatter","mode":"lines","line":{"color":"#eb6834","width":3.5},"inherit":true},"22316f489503":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Ness Walk","type":"scatter","mode":"lines","line":{"color":"#3d6b8a","width":1.5},"inherit":true},"223162f3109":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Greig Street","type":"scatter","mode":"lines","line":{"color":"#4a8a5f","width":1.5},"inherit":true},"223143c490b":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Huntly Street","type":"scatter","mode":"lines","line":{"color":"#b08a3d","width":1.5},"inherit":true},"223111df7359":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Academy Street","type":"scatter","mode":"lines","line":{"color":"#7d5a9e","width":1.5},"inherit":true},"2231650de139":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Crown Road","type":"scatter","mode":"lines","line":{"color":"#a14f4f","width":1.5},"inherit":true},"2231723d9903":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Bank Street","type":"scatter","mode":"lines","line":{"color":"#3d8a8a","width":1.5},"inherit":true},"22312a08ce8d":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Bridge Street","type":"scatter","mode":"lines","line":{"color":"#8a7a2e","width":1.5},"inherit":true},"22312830a08a":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Castle Road","type":"scatter","mode":"lines","line":{"color":"#6b6b6b","width":1.5},"inherit":true}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":""},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Avg daily cycle count"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":true},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[336.45161290322579,420,442.19354838709677,524.70000000000005,599.41935483870964,639.56666666666672,550,606.22580645161293,635.93333333333328,524.51612903225805,486.03333333333336,371.87096774193549,310.38709677419354,385.55172413793105,447.77419354838707,480.06666666666672,533.38709677419354,508.26666666666665,488.58064516129036,526.67741935483866,514.5333333333333,455.35483870967744,386.63333333333333,105,16.741935483870968,19.071428571428573,191.35483870967741,261.73333333333335,260.09677419354841,249.09999999999999,259.61290322580646,265.51612903225805,243.19999999999999,198.03333333333333,192.62068965517241,149.66666666666669,132.48275862068965,167.75,184.26666666666668,168.11111111111111,246.55555555555554,227.86666666666667],"name":"Millburn Road","type":"scatter","mode":"lines","line":{"color":"#eb6834","width":3.5},"marker":{"color":"rgba(31,119,180,1)","line":{"color":"rgba(31,119,180,1)"}},"error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[222.12903225806454,346.85714285714283,414.22580645161293,651.83333333333326,677.16129032258073,732.13333333333333,660.48387096774195,738.09677419354841,732.9666666666667,693.41935483870964,292.63333333333333,172.45161290322579,57.612903225806448,46.517241379310342,71.258064516129039,72.96666666666664,0,56.800000000000026,692.87096774193549,714.70967741935488,601.79999999999995,476.45161290322579,431.39999999999998,287.09677419354841,155.27586206896552,201.62962962962962,263.60000000000002,448.70000000000005,359.77419354838707,334.43333333333334,354.63333333333333,333.14285714285717,276.72413793103448,208.78571428571428,155.17241379310343,124.88888888888889,113.03999999999999,173.03703703703704,217.59999999999999,238.44444444444446,372.22222222222223,330.19999999999999],"name":"Ness Walk","type":"scatter","mode":"lines","line":{"color":"#3d6b8a","width":1.5},"marker":{"color":"rgba(255,127,14,1)","line":{"color":"rgba(255,127,14,1)"}},"error_y":{"color":"rgba(255,127,14,1)"},"error_x":{"color":"rgba(255,127,14,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[200.93548387096774,272.35714285714283,283.61290322580646,356.69999999999999,408.29032258064518,433.19999999999999,322.35483870967744,324.67741935483866,369.19999999999999,284.70967741935482,278.86666666666667,193.93548387096774,175.7741935483871,239.31034482758622,277.61290322580646,278.26666666666665,356.22580645161293,325.69999999999999,281.03225806451616,278.77419354838707,298.33333333333331,215.51612903225805,195.66666666666669,157.83870967741933,71.13333333333334,89.821428571428569,110.09677419354838,129.14285714285714,156.30000000000001,166.75862068965517,150.67857142857142,164.58620689655172,169.34482758620689,122.85714285714286,97.931034482758619,84.25,73.107142857142847,93.407407407407405,106.5925925925926,104.88888888888889,146.55555555555554,145.46666666666667],"name":"Greig Street","type":"scatter","mode":"lines","line":{"color":"#4a8a5f","width":1.5},"marker":{"color":"rgba(44,160,44,1)","line":{"color":"rgba(44,160,44,1)"}},"error_y":{"color":"rgba(44,160,44,1)"},"error_x":{"color":"rgba(44,160,44,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[144.06451612903226,156.85714285714283,111.12903225806451,369.39999999999998,436.70967741935482,447.76666666666665,383.54838709677421,435.45161290322579,426.60000000000002,398.45161290322579,526.5333333333333,368.90322580645159,286.58064516129036,347.93103448275861,328.83870967741933,348.39999999999998,423.48387096774195,368.33333333333331,358.70967741935482,413.32258064516128,376.53333333333336,410.06451612903226,312.60000000000002,276.77419354838707,135.96666666666667,135.5,164.51612903225808,188.44827586206895,200.40000000000001,199,215.74074074074073,203.0344827586207,191.17857142857142,164.40000000000001,144.07142857142858,133.55172413793105,108.66666666666666,144.64285714285714,143.85714285714286,162.77777777777777,207.11111111111111,197.19999999999999],"name":"Huntly Street","type":"scatter","mode":"lines","line":{"color":"#b08a3d","width":1.5},"marker":{"color":"rgba(214,39,40,1)","line":{"color":"rgba(214,39,40,1)"}},"error_y":{"color":"rgba(214,39,40,1)"},"error_x":{"color":"rgba(214,39,40,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[224.51612903225808,267.85714285714283,275.06451612903226,362.30000000000001,376.06451612903226,419.80000000000001,385.32258064516128,420.32258064516128,414.5,320.58064516129031,313.39999999999998,241.48387096774192,223.38709677419354,269.89655172413791,305.67741935483872,350.13333333333333,406.80645161290323,409.23333333333335,387.22580645161293,400,355.26666666666665,290.22580645161293,250.5,234.19354838709677,112.51612903225808,121.82142857142857,134.12903225806451,177.26666666666668,186.21428571428572,191.28571428571428,195.28571428571428,194.30000000000001,174.89285714285714,149.10344827586206,129.44827586206895,117.55172413793103,98.448275862068982,116.70370370370371,114.7,123.88888888888889,182.88888888888889,178.66666666666666],"name":"Academy Street","type":"scatter","mode":"lines","line":{"color":"#7d5a9e","width":1.5},"marker":{"color":"rgba(148,103,189,1)","line":{"color":"rgba(148,103,189,1)"}},"error_y":{"color":"rgba(148,103,189,1)"},"error_x":{"color":"rgba(148,103,189,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[56.064516129032256,36.785714285714285,41.612903225806448,38.233333333333334,42.258064516129032,40.266666666666666,37.935483870967744,40.29032258064516,43.466666666666669,32.12903225806452,39.399999999999999,37.41935483870968,31.322580645161288,29.758620689655171,30.096774193548388,34.966666666666669,39.161290322580648,34.200000000000003,38.741935483870968,40.258064516129032,45.799999999999997,36.032258064516128,36.733333333333334,48.258064516129032,16.333333333333336,18.607142857142854,24.161290322580648,19.310344827586206,18.806451612903224,19.199999999999999,22.566666666666666,21.733333333333334,20.75,27.689655172413794,44.370370370370367,39.137931034482762,17.703703703703706,18.148148148148145,20.800000000000001,17.222222222222221,19.444444444444443,19.399999999999999],"name":"Crown Road","type":"scatter","mode":"lines","line":{"color":"#a14f4f","width":1.5},"marker":{"color":"rgba(140,86,75,1)","line":{"color":"rgba(140,86,75,1)"}},"error_y":{"color":"rgba(140,86,75,1)"},"error_x":{"color":"rgba(140,86,75,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[159.2258064516129,200.57142857142858,212.64516129032259,369.93333333333328,404.45161290322579,414.19999999999999,365.48387096774195,449.35483870967744,361.19999999999999,233,206.73333333333332,128.80645161290323,135.45161290322579,197.93103448275863,239.12903225806451,139.63333333333333,158.45161290322579,27.699999999999996,0,0,0,0,0,0,1.4193548387096773,50.928571428571431,121.90000000000001,189.10344827586206,133.65517241379311,155.55172413793105,179.09999999999999,181.30000000000001,167.13793103448276,109.67857142857143,85.148148148148152,69.758620689655174,59.862068965517246,86.962962962962962,108.03448275862068,113.375,74.444444444444443,63.399999999999999],"name":"Bank Street","type":"scatter","mode":"lines","line":{"color":"#3d8a8a","width":1.5},"marker":{"color":"rgba(227,119,194,1)","line":{"color":"rgba(227,119,194,1)"}},"error_y":{"color":"rgba(227,119,194,1)"},"error_x":{"color":"rgba(227,119,194,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01"],"y":[112.7741935483871,190.96428571428572,179.54838709677421,232.90000000000001,278.09677419354841,267.80000000000001,184.70967741935485,196.74193548387098,138.16666666666669,64.580645161290334,46.733333333333334,36.806451612903224,34.935483870967744,29.551724137931036,56.451612903225808,13.833333333333329,6.967741935483871,143.13333333333333,162.74193548387098,176,61.466666666666669,27.516129032258064,9.9666666666666668,182.61290322580649,117.38709677419355,157.92857142857142,174.38709677419354,219.24137931034483,235.68965517241378,243.10344827586206,249.55172413793105,264.21428571428572,245.06896551724137,203.21428571428572,151.67857142857142,127.67857142857142,98.037037037037024,132.23076923076923,151.46666666666667,150.11111111111111],"name":"Bridge Street","type":"scatter","mode":"lines","line":{"color":"#8a7a2e","width":1.5},"marker":{"color":"rgba(127,127,127,1)","line":{"color":"rgba(127,127,127,1)"}},"error_y":{"color":"rgba(127,127,127,1)"},"error_x":{"color":"rgba(127,127,127,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01"],"y":[123.06451612903226,37.142857142857153,0,0,0,0,326.19354838709677,395.58064516129036,337.80000000000001,223.19354838709677,221.93333333333334,167.96774193548387,126.3225806451613,169.13793103448273,204,190.76666666666668,338.09677419354841,315.93333333333334,90.387096774193523,0,0,0,0,0,0,0,39.65517241379311,304.82758620689651,138.16129032258064,123.57692307692308,145.83333333333334,190.12903225806451,167.59999999999999,118,72.107142857142861,58.448275862068968,42.827586206896541,60.07692307692308,69.933333333333337,76.222222222222229],"name":"Castle Road","type":"scatter","mode":"lines","line":{"color":"#6b6b6b","width":1.5},"marker":{"color":"rgba(188,189,34,1)","line":{"color":"rgba(188,189,34,1)"}},"error_y":{"color":"rgba(188,189,34,1)"},"error_x":{"color":"rgba(188,189,34,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-volume-2023-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Average daily cycle counts by road, 2023–2026
</figcaption>
</figure>
</div>
</div>
<p>It’s clear that the Millburn Road counter has consistently been among the highest counts in the city. Other sites with similarly high cycling volume are Huntly Street (coloured ochre) and Ness Walk (coloured blue). The significant dip in volume in 2023/24 on Ness Walk was caused by its closure to upgrade the cycling infrastructure there (yay!).</p>
<p>Since 2025 is the most recent full year for which we have data<sup>2</sup>, the median count at each site in that year also gives a useful picture.</p>
<div class="cell">
<div id="tbl-mediancounts" class="cell quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-mediancounts-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Median daily cycle counts by road, 2025
</figcaption>
<div aria-describedby="tbl-mediancounts-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<div id="rbdjfuuxci" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>#rbdjfuuxci table {
  font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#rbdjfuuxci thead, #rbdjfuuxci tbody, #rbdjfuuxci tfoot, #rbdjfuuxci tr, #rbdjfuuxci td, #rbdjfuuxci th {
  border-style: none;
}

#rbdjfuuxci p {
  margin: 0;
  padding: 0;
}

#rbdjfuuxci .gt_table {
  display: table;
  border-collapse: collapse;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 16px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
}

#rbdjfuuxci .gt_caption {
  padding-top: 4px;
  padding-bottom: 4px;
}

#rbdjfuuxci .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}

#rbdjfuuxci .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}

#rbdjfuuxci .gt_heading {
  background-color: #FFFFFF;
  text-align: center;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#rbdjfuuxci .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#rbdjfuuxci .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#rbdjfuuxci .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 6px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}

#rbdjfuuxci .gt_column_spanner_outer {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 4px;
  padding-right: 4px;
}

#rbdjfuuxci .gt_column_spanner_outer:first-child {
  padding-left: 0;
}

#rbdjfuuxci .gt_column_spanner_outer:last-child {
  padding-right: 0;
}

#rbdjfuuxci .gt_column_spanner {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  overflow-x: hidden;
  display: inline-block;
  width: 100%;
}

#rbdjfuuxci .gt_spanner_row {
  border-bottom-style: hidden;
}

#rbdjfuuxci .gt_group_heading {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  text-align: left;
}

#rbdjfuuxci .gt_empty_group_heading {
  padding: 0.5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: middle;
}

#rbdjfuuxci .gt_from_md > :first-child {
  margin-top: 0;
}

#rbdjfuuxci .gt_from_md > :last-child {
  margin-bottom: 0;
}

#rbdjfuuxci .gt_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  overflow-x: hidden;
}

#rbdjfuuxci .gt_stub {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 5px;
  padding-right: 5px;
}

#rbdjfuuxci .gt_stub_row_group {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 5px;
  padding-right: 5px;
  vertical-align: top;
}

#rbdjfuuxci .gt_row_group_first td {
  border-top-width: 2px;
}

#rbdjfuuxci .gt_row_group_first th {
  border-top-width: 2px;
}

#rbdjfuuxci .gt_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#rbdjfuuxci .gt_first_summary_row {
  border-top-style: solid;
  border-top-color: #D3D3D3;
}

#rbdjfuuxci .gt_first_summary_row.thick {
  border-top-width: 2px;
}

#rbdjfuuxci .gt_last_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#rbdjfuuxci .gt_grand_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#rbdjfuuxci .gt_first_grand_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-style: double;
  border-top-width: 6px;
  border-top-color: #D3D3D3;
}

#rbdjfuuxci .gt_last_grand_summary_row_top {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-style: double;
  border-bottom-width: 6px;
  border-bottom-color: #D3D3D3;
}

#rbdjfuuxci .gt_striped {
  background-color: rgba(128, 128, 128, 0.05);
}

#rbdjfuuxci .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#rbdjfuuxci .gt_footnotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#rbdjfuuxci .gt_footnote {
  margin: 0px;
  font-size: 90%;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
}

#rbdjfuuxci .gt_sourcenotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#rbdjfuuxci .gt_sourcenote {
  font-size: 90%;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
}

#rbdjfuuxci .gt_left {
  text-align: left;
}

#rbdjfuuxci .gt_center {
  text-align: center;
}

#rbdjfuuxci .gt_right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

#rbdjfuuxci .gt_font_normal {
  font-weight: normal;
}

#rbdjfuuxci .gt_font_bold {
  font-weight: bold;
}

#rbdjfuuxci .gt_font_italic {
  font-style: italic;
}

#rbdjfuuxci .gt_super {
  font-size: 65%;
}

#rbdjfuuxci .gt_footnote_marks {
  font-size: 75%;
  vertical-align: 0.4em;
  position: initial;
}

#rbdjfuuxci .gt_asterisk {
  font-size: 100%;
  vertical-align: 0;
}

#rbdjfuuxci .gt_indent_1 {
  text-indent: 5px;
}

#rbdjfuuxci .gt_indent_2 {
  text-indent: 10px;
}

#rbdjfuuxci .gt_indent_3 {
  text-indent: 15px;
}

#rbdjfuuxci .gt_indent_4 {
  text-indent: 20px;
}

#rbdjfuuxci .gt_indent_5 {
  text-indent: 25px;
}

#rbdjfuuxci .katex-display {
  display: inline-flex !important;
  margin-bottom: 0.75em !important;
}

#rbdjfuuxci div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
  height: 0px !important;
}
</style>

<table class="gt_table cell caption-top table table-sm table-striped small" data-quarto-bootstrap="false">
<thead>
<tr class="gt_col_headings header">
<th id="road_group" class="gt_col_heading gt_columns_bottom_border gt_left" data-quarto-table-cell-role="th" scope="col">Location</th>
<th id="median_daily_cycle_count" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Median daily cycle count</th>
<th id="n_days" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Days with data</th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Ness Walk</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">256</td>
<td class="gt_row gt_right" headers="n_days">348</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #EB6834; color: #FFFFFF">Millburn Road</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">218</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Bridge Street</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">194</td>
<td class="gt_row gt_right" headers="n_days">347</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Huntly Street</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">168</td>
<td class="gt_row gt_right" headers="n_days">348</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Academy Street</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">152</td>
<td class="gt_row gt_right" headers="n_days">349</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Bank Street</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">122</td>
<td class="gt_row gt_right" headers="n_days">349</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Greig Street</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">119</td>
<td class="gt_row gt_right" headers="n_days">347</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Castle Road</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">102</td>
<td class="gt_row gt_right" headers="n_days">351</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Crown Road</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">19</td>
<td class="gt_row gt_right" headers="n_days">352</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
</figure>
</div>
</div>
<p>This is a clearer way to show the main takeaway from this data: Millburn Road is, realtive to the rest of the city centre, busy with bicycles.</p>
</section>
<section id="the-mode-shift-share" class="level2">
<h2 class="anchored" data-anchor-id="the-mode-shift-share">The Mode <del>Shift</del> Share</h2>
<p>A really important measure when looking at any mode of transport is its share of the overall traffic in the data. Mode share (sometimes called modal share) is the kind of measure you could name a blog after.</p>
<p>Figure&nbsp;3 and Table&nbsp;2 show the mode share companions to our volume data:</p>
<div class="cell">
<div id="fig-modeshare-2023" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-modeshare-2023-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-602fc7ee1b42bc99eb7e" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-602fc7ee1b42bc99eb7e">{"x":{"visdat":{"223123479d99":["function () ","plotlyVisDat"],"223132bbb9e7":["function () ","data"],"223142aa06b6":["function () ","data"],"2231289eb8eb":["function () ","data"],"22314c7e6122":["function () ","data"],"22317d1b2669":["function () ","data"],"2231176f7aa":["function () ","data"],"2231297dbaa6":["function () ","data"],"22317d68fd91":["function () ","data"],"223177df7ae9":["function () ","data"]},"cur_data":"223177df7ae9","attrs":{"223132bbb9e7":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Millburn Road","type":"scatter","mode":"lines","line":{"color":"#eb6834","width":3.5},"inherit":true},"223142aa06b6":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Ness Walk","type":"scatter","mode":"lines","line":{"color":"#3d6b8a","width":1.5},"inherit":true},"2231289eb8eb":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Greig Street","type":"scatter","mode":"lines","line":{"color":"#4a8a5f","width":1.5},"inherit":true},"22314c7e6122":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Huntly Street","type":"scatter","mode":"lines","line":{"color":"#b08a3d","width":1.5},"inherit":true},"22317d1b2669":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Academy Street","type":"scatter","mode":"lines","line":{"color":"#7d5a9e","width":1.5},"inherit":true},"2231176f7aa":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Crown Road","type":"scatter","mode":"lines","line":{"color":"#a14f4f","width":1.5},"inherit":true},"2231297dbaa6":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Bank Street","type":"scatter","mode":"lines","line":{"color":"#3d8a8a","width":1.5},"inherit":true},"22317d68fd91":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Bridge Street","type":"scatter","mode":"lines","line":{"color":"#8a7a2e","width":1.5},"inherit":true},"223177df7ae9":{"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"x":{},"y":{},"name":"Castle Road","type":"scatter","mode":"lines","line":{"color":"#6b6b6b","width":1.5},"inherit":true}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":""},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Cycling mode share (%)"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":true},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[3.0979155157153127,3.2620092423595195,3.4014381919872161,3.905654899995286,4.4160739196874381,4.6911062864296058,3.8928895971943795,4.1636941292200804,4.5502789365350811,3.9087853918160707,3.6826193801601752,2.6156188384456036,2.8878851088734487,3.1254717139358972,3.4258509714105196,3.513771338926936,3.7771493316033293,3.687028179844182,3.5758046504819756,3.6079375952975492,3.5973972704899695,3.2153066454074368,2.7549236630342877,1.2734941078890123,0.36343774290456082,0.33218664659446479,1.8040320054498067,2.0631342193354456,1.8973729044889354,1.888523297599733,1.8948954605387078,1.9288995125609301,1.8604746046236464,1.5105248571726413,1.4707857092078136,1.0646723227877817,1.1643306311084174,1.3945299510712079,1.4541092791532075,1.2767501518936071,1.7655951623169956,1.7034043168192485],"name":"Millburn Road","type":"scatter","mode":"lines","line":{"color":"#eb6834","width":3.5},"marker":{"color":"rgba(31,119,180,1)","line":{"color":"rgba(31,119,180,1)"}},"error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[11.855040027545838,11.61125258539268,9.826368429510481,14.437594595592307,12.664016264380646,13.156113543657044,11.82924292845258,12.703832636540799,14.309140956979521,13.958532198261029,9.9405536998244912,14.819126819126819,15.261044176706829,26.419898159028595,36.332236842105267,26.240709661951573,0,13.251419239443191,12.070583607294388,13.723899133429551,8.8311688311688314,13.429958719016529,12.129107233228993,10.931243705323148,8.4698579892786601,9.2544113147247824,11.059675817797855,14.023627953494186,10.724554065099284,11.204672615391488,13.189606010265056,9.3252024392682191,8.1963027269941779,9.1160005613684909,7.9094456357436647,6.463484761357102,5.338320299217953,7.5017261035019835,8.4431625645071584,8.7810466876713456,9.4151372923751442,10.419909959187109],"name":"Ness Walk","type":"scatter","mode":"lines","line":{"color":"#3d6b8a","width":1.5},"marker":{"color":"rgba(255,127,14,1)","line":{"color":"rgba(255,127,14,1)"}},"error_y":{"color":"rgba(255,127,14,1)"},"error_x":{"color":"rgba(255,127,14,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[7.041680326478934,8.1296306167048673,7.9655719139297849,8.550471030994558,8.498338201228723,9.0057377276381079,7.6539522058823533,8.0955215237114722,8.3604441391595774,8.1201928384793725,8.8746035282012112,6.7128931765651698,6.5492788461538458,7.9599022790094853,8.3391472868217047,7.9920347712868818,8.361601599176181,7.9376426720391233,7.1763949982701529,6.8892396486025405,7.4321350572565041,6.4286126667051553,6.7343543853610965,5.9646000438842428,4.2104017046799775,5.1956369045159692,5.7135682598141795,5.2430872736236172,5.7555634658581791,6.6929624247456925,5.378359084187446,5.936124169838072,6.6359484366132477,5.3776888444222113,5.2631578947368416,4.4087689461191992,4.2195745382585752,4.8273485950539774,4.8913967164077636,5.3339360379703926,5.1888276947285599,5.4619640041052335],"name":"Greig Street","type":"scatter","mode":"lines","line":{"color":"#4a8a5f","width":1.5},"marker":{"color":"rgba(44,160,44,1)","line":{"color":"rgba(44,160,44,1)"}},"error_y":{"color":"rgba(44,160,44,1)"},"error_x":{"color":"rgba(44,160,44,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[15.315500685871056,17.441029306647604,13.292946442352216,12.460225547847401,12.051453242533494,12.698877870316977,10.875033155588889,12.494909104372615,12.775260037133901,14.514688601645123,20.782022944953162,15.947788980462704,13.580982954979746,14.248796125005295,12.879668469196947,12.461698043470486,12.16050983734114,11.546982110015048,11.334563282946171,11.677800967909516,11.489249171057182,15.043608951373358,14.124770310570231,13.001378934129376,10.494224188942344,9.6909323116219657,10.907224432182728,10.419049797910471,9.3532678874247406,9.3294319247308355,9.4348790877727211,8.5282658130675983,8.7590404817226819,10.107592991085152,10.19304629068122,9.008024188859169,7.8104618660987626,9.9935843655924597,8.5216213929085214,9.4577146546158808,9.1999407729134788,9.8909917742259079],"name":"Huntly Street","type":"scatter","mode":"lines","line":{"color":"#b08a3d","width":1.5},"marker":{"color":"rgba(214,39,40,1)","line":{"color":"rgba(214,39,40,1)"}},"error_y":{"color":"rgba(214,39,40,1)"},"error_x":{"color":"rgba(214,39,40,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[1.0324019959771922,1.1349346504628264,1.0928674601821744,1.2522913740640076,1.2773566671706846,1.4091488378494201,1.2332754122361158,1.3043199718114733,1.4472243203515702,1.2692647128317323,1.3008719522487844,0.94385059775523428,1.0862796217080237,1.1872600489344693,1.2468388241083574,1.3010289077624506,1.369404861056063,1.3851421866450044,1.2127445265356058,1.195691268657364,1.2216746961574214,1.1006958717481943,1.0036861928039105,0.90541866883501554,0.76193804884442307,0.811105800440865,0.84862684910034947,0.98064887312048454,0.86064599619691518,0.94733919023370416,0.85947274773500326,0.93297885792119706,0.8466371372357826,0.83695452301915285,0.81876574444650441,0.67349845800661046,0.6585108198748022,0.6814240053285584,0.68458538914531275,0.64170815228338751,0.85257144041064303,0.88765235824059352],"name":"Academy Street","type":"scatter","mode":"lines","line":{"color":"#7d5a9e","width":1.5},"marker":{"color":"rgba(148,103,189,1)","line":{"color":"rgba(148,103,189,1)"}},"error_y":{"color":"rgba(148,103,189,1)"},"error_x":{"color":"rgba(148,103,189,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[3.4517685845365533,2.1141649048625792,2.2092824113718104,1.8660419412042235,2.051105404897601,1.9940903613463412,2.0524634797633383,2.3077491593067512,2.5984377490833732,1.9582784451741018,2.1488564883830854,1.8350946022907044,1.9235340729001584,1.8091484633767978,1.7163986901652009,1.9271043832898558,2.0076402784898044,1.7849686847599164,2.1241974566228619,1.8614641131197422,2.3895652173913042,1.9596491228070174,1.9156888309430682,2.3002291003582576,0.92526152800332329,1.0315401825489536,1.2728786771578606,0.95483298947978656,0.88566827697262474,0.93203883495145634,1.0114592204144444,0.97774578609561513,0.95108695652173925,1.244286046331448,2.0637381567614126,1.7336184511990225,0.9701053315203052,0.91423027408250468,1.0758249715527051,0.79174541553864231,0.88455317428224822,0.89304894890286945],"name":"Crown Road","type":"scatter","mode":"lines","line":{"color":"#a14f4f","width":1.5},"marker":{"color":"rgba(140,86,75,1)","line":{"color":"rgba(140,86,75,1)"}},"error_y":{"color":"rgba(140,86,75,1)"},"error_x":{"color":"rgba(140,86,75,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01",null,"2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[1.3514808517395935,1.5306205881551334,1.4762296128256405,2.0062875003841558,2.3101385935755374,2.0784477711800617,1.856920429402606,1.9940907347071994,1.9101442479732482,1.5654868982856154,1.6639033315626526,1.1680459144720099,1.140800108673504,1.3362168302795114,1.4865929887678304,1.3172583165885243,1.3304514108960503,1.2687604012397515,null,0.39257673090649536,0.95747109457880675,0.93305097719038632,1.2863576656033027,1.0418570645220253,1.0324969901717089,1.1156723623474594,1.0840102999912307,1.1082226139603584,0.81291559019101267,0.62572465937607169,0.53184777007771333,0.55884085590211274,0.71127805882887518,0.88430132292381114,0.7300151315154052,0.79335006867806568,0.73960010265742748],"name":"Bank Street","type":"scatter","mode":"lines","line":{"color":"#3d8a8a","width":1.5},"marker":{"color":"rgba(227,119,194,1)","line":{"color":"rgba(227,119,194,1)"}},"error_y":{"color":"rgba(227,119,194,1)"},"error_x":{"color":"rgba(227,119,194,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01"],"y":[1.6621025406967898,2.4048645998713689,2.023690927203845,2.3502620372301419,2.5944049209731199,2.3087799158562659,1.8598396757135989,1.8500486854917235,1.5255796834744202,1.1771900321051827,0.99647466878944668,0.89733708731144923,0.8946937966244517,0.74464110384137494,1.1446661826363951,0.45893372554657352,1.2506513809275663,2.0253952681030905,2.4960666541327345,2.9171790621825378,1.4141754988726476,0.67990339473453476,0.67968448091655109,2.4893036018169585,1.98668988748096,2.126217093400649,2.0338141351211032,2.1802121231864429,2.0119687857834609,2.1203198825854068,1.9399908321560786,1.8685829028958236,2.0972149269058482,1.9778783517912137,1.9295686980068241,1.5443698539004518,1.4372122317782989,1.7402836692752359,1.818683935625633,1.5295263110225523],"name":"Bridge Street","type":"scatter","mode":"lines","line":{"color":"#8a7a2e","width":1.5},"marker":{"color":"rgba(127,127,127,1)","line":{"color":"rgba(127,127,127,1)"}},"error_y":{"color":"rgba(127,127,127,1)"},"error_x":{"color":"rgba(127,127,127,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2023-01-01","2023-02-01",null,"2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01",null,"2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01"],"y":[2.6510545151315101,3.0273920763834306,null,4.2347541313142312,3.8265314082621629,3.7855667330342437,3.2024549531827837,3.8167851410227014,3.0308498253783469,2.8778458779781588,3.7617049995015068,4.3422733077905491,4.5942040619731879,3.8524731767741556,3.8486995715996994,3.7482944056505341,null,1.5414309841031553,4.8525835615987178,2.1281247360340263,1.7263427109974423,2.0407211325419219,2.5948182878777875,2.4481806628785114,2.068036090916233,1.4012270279273777,1.1999235446944974,1.013389469561599,1.1642901333492348,1.354623346268329,1.320703861999923],"name":"Castle Road","type":"scatter","mode":"lines","line":{"color":"#6b6b6b","width":1.5},"marker":{"color":"rgba(188,189,34,1)","line":{"color":"rgba(188,189,34,1)"}},"error_y":{"color":"rgba(188,189,34,1)"},"error_x":{"color":"rgba(188,189,34,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-modeshare-2023-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Cycling mode share by road, 2023–2026
</figcaption>
</figure>
</div>
</div>
<div class="cell">
<div id="tbl-medianmodeshare" class="cell quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-medianmodeshare-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;2: Median daily cycling mode share by road, 2025
</figcaption>
<div aria-describedby="tbl-medianmodeshare-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<div id="rukmhnjwhj" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>#rukmhnjwhj table {
  font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#rukmhnjwhj thead, #rukmhnjwhj tbody, #rukmhnjwhj tfoot, #rukmhnjwhj tr, #rukmhnjwhj td, #rukmhnjwhj th {
  border-style: none;
}

#rukmhnjwhj p {
  margin: 0;
  padding: 0;
}

#rukmhnjwhj .gt_table {
  display: table;
  border-collapse: collapse;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 16px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
}

#rukmhnjwhj .gt_caption {
  padding-top: 4px;
  padding-bottom: 4px;
}

#rukmhnjwhj .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}

#rukmhnjwhj .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}

#rukmhnjwhj .gt_heading {
  background-color: #FFFFFF;
  text-align: center;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#rukmhnjwhj .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#rukmhnjwhj .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#rukmhnjwhj .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 6px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}

#rukmhnjwhj .gt_column_spanner_outer {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 4px;
  padding-right: 4px;
}

#rukmhnjwhj .gt_column_spanner_outer:first-child {
  padding-left: 0;
}

#rukmhnjwhj .gt_column_spanner_outer:last-child {
  padding-right: 0;
}

#rukmhnjwhj .gt_column_spanner {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  overflow-x: hidden;
  display: inline-block;
  width: 100%;
}

#rukmhnjwhj .gt_spanner_row {
  border-bottom-style: hidden;
}

#rukmhnjwhj .gt_group_heading {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  text-align: left;
}

#rukmhnjwhj .gt_empty_group_heading {
  padding: 0.5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: middle;
}

#rukmhnjwhj .gt_from_md > :first-child {
  margin-top: 0;
}

#rukmhnjwhj .gt_from_md > :last-child {
  margin-bottom: 0;
}

#rukmhnjwhj .gt_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  overflow-x: hidden;
}

#rukmhnjwhj .gt_stub {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 5px;
  padding-right: 5px;
}

#rukmhnjwhj .gt_stub_row_group {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 5px;
  padding-right: 5px;
  vertical-align: top;
}

#rukmhnjwhj .gt_row_group_first td {
  border-top-width: 2px;
}

#rukmhnjwhj .gt_row_group_first th {
  border-top-width: 2px;
}

#rukmhnjwhj .gt_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#rukmhnjwhj .gt_first_summary_row {
  border-top-style: solid;
  border-top-color: #D3D3D3;
}

#rukmhnjwhj .gt_first_summary_row.thick {
  border-top-width: 2px;
}

#rukmhnjwhj .gt_last_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#rukmhnjwhj .gt_grand_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#rukmhnjwhj .gt_first_grand_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-style: double;
  border-top-width: 6px;
  border-top-color: #D3D3D3;
}

#rukmhnjwhj .gt_last_grand_summary_row_top {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-style: double;
  border-bottom-width: 6px;
  border-bottom-color: #D3D3D3;
}

#rukmhnjwhj .gt_striped {
  background-color: rgba(128, 128, 128, 0.05);
}

#rukmhnjwhj .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#rukmhnjwhj .gt_footnotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#rukmhnjwhj .gt_footnote {
  margin: 0px;
  font-size: 90%;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
}

#rukmhnjwhj .gt_sourcenotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#rukmhnjwhj .gt_sourcenote {
  font-size: 90%;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
}

#rukmhnjwhj .gt_left {
  text-align: left;
}

#rukmhnjwhj .gt_center {
  text-align: center;
}

#rukmhnjwhj .gt_right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

#rukmhnjwhj .gt_font_normal {
  font-weight: normal;
}

#rukmhnjwhj .gt_font_bold {
  font-weight: bold;
}

#rukmhnjwhj .gt_font_italic {
  font-style: italic;
}

#rukmhnjwhj .gt_super {
  font-size: 65%;
}

#rukmhnjwhj .gt_footnote_marks {
  font-size: 75%;
  vertical-align: 0.4em;
  position: initial;
}

#rukmhnjwhj .gt_asterisk {
  font-size: 100%;
  vertical-align: 0;
}

#rukmhnjwhj .gt_indent_1 {
  text-indent: 5px;
}

#rukmhnjwhj .gt_indent_2 {
  text-indent: 10px;
}

#rukmhnjwhj .gt_indent_3 {
  text-indent: 15px;
}

#rukmhnjwhj .gt_indent_4 {
  text-indent: 20px;
}

#rukmhnjwhj .gt_indent_5 {
  text-indent: 25px;
}

#rukmhnjwhj .katex-display {
  display: inline-flex !important;
  margin-bottom: 0.75em !important;
}

#rukmhnjwhj div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
  height: 0px !important;
}
</style>

<table class="gt_table cell caption-top table table-sm table-striped small" data-quarto-bootstrap="false">
<thead>
<tr class="gt_col_headings header">
<th id="road_group" class="gt_col_heading gt_columns_bottom_border gt_left" data-quarto-table-cell-role="th" scope="col">Location</th>
<th id="median_daily_mode_share" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Median daily cycling mode share</th>
<th id="n_days" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Days with data</th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Ness Walk</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">10.2%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Huntly Street</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">9.6%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Greig Street</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">5.5%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Bridge Street</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">2.0%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Castle Road</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">1.9%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #EB6834; color: #FFFFFF">Millburn Road</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">1.7%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Bank Street</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">1.0%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Crown Road</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">0.9%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Academy Street</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">0.9%</td>
<td class="gt_row gt_right" headers="n_days">362</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
</figure>
</div>
</div>
<p>You may have had the same initial gut instinct as me - yikes. Millburn Road plummets down the table to nestle between Castle Road and Bank Street, neither of which is a big hitter in the cycle volume league above. Millburn’s previous contenders, Ness Walk and Huntly street stay at the top of the charts, with their mode share towering above all others.</p>
<p>However, if we take the raw volume into account as well as the mode share it actually highlights Millburn Road as being uniquely <em>good</em> at getting bikes through. Ness Walk and Huntly Street have high cycle volumes and high mode shares in part because relative to the other sites they have low numbers of motor vehicles. Millburn Road carries a similar volume of cyclists but with much more motor traffic. This is really clear to see if we look at the motor vehicle counts as well:</p>
<div class="cell">
<div id="tbl-mediancomparison" class="cell quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-mediancomparison-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;3: Median daily cycle count, motor traffic count, and cycling mode share by road, 2025
</figcaption>
<div aria-describedby="tbl-mediancomparison-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<div id="vyzgclcgwk" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>#vyzgclcgwk table {
  font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#vyzgclcgwk thead, #vyzgclcgwk tbody, #vyzgclcgwk tfoot, #vyzgclcgwk tr, #vyzgclcgwk td, #vyzgclcgwk th {
  border-style: none;
}

#vyzgclcgwk p {
  margin: 0;
  padding: 0;
}

#vyzgclcgwk .gt_table {
  display: table;
  border-collapse: collapse;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 16px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
}

#vyzgclcgwk .gt_caption {
  padding-top: 4px;
  padding-bottom: 4px;
}

#vyzgclcgwk .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}

#vyzgclcgwk .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}

#vyzgclcgwk .gt_heading {
  background-color: #FFFFFF;
  text-align: center;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#vyzgclcgwk .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#vyzgclcgwk .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#vyzgclcgwk .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 6px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}

#vyzgclcgwk .gt_column_spanner_outer {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 4px;
  padding-right: 4px;
}

#vyzgclcgwk .gt_column_spanner_outer:first-child {
  padding-left: 0;
}

#vyzgclcgwk .gt_column_spanner_outer:last-child {
  padding-right: 0;
}

#vyzgclcgwk .gt_column_spanner {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  overflow-x: hidden;
  display: inline-block;
  width: 100%;
}

#vyzgclcgwk .gt_spanner_row {
  border-bottom-style: hidden;
}

#vyzgclcgwk .gt_group_heading {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  text-align: left;
}

#vyzgclcgwk .gt_empty_group_heading {
  padding: 0.5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: middle;
}

#vyzgclcgwk .gt_from_md > :first-child {
  margin-top: 0;
}

#vyzgclcgwk .gt_from_md > :last-child {
  margin-bottom: 0;
}

#vyzgclcgwk .gt_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  overflow-x: hidden;
}

#vyzgclcgwk .gt_stub {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 5px;
  padding-right: 5px;
}

#vyzgclcgwk .gt_stub_row_group {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 5px;
  padding-right: 5px;
  vertical-align: top;
}

#vyzgclcgwk .gt_row_group_first td {
  border-top-width: 2px;
}

#vyzgclcgwk .gt_row_group_first th {
  border-top-width: 2px;
}

#vyzgclcgwk .gt_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#vyzgclcgwk .gt_first_summary_row {
  border-top-style: solid;
  border-top-color: #D3D3D3;
}

#vyzgclcgwk .gt_first_summary_row.thick {
  border-top-width: 2px;
}

#vyzgclcgwk .gt_last_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#vyzgclcgwk .gt_grand_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#vyzgclcgwk .gt_first_grand_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-style: double;
  border-top-width: 6px;
  border-top-color: #D3D3D3;
}

#vyzgclcgwk .gt_last_grand_summary_row_top {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-style: double;
  border-bottom-width: 6px;
  border-bottom-color: #D3D3D3;
}

#vyzgclcgwk .gt_striped {
  background-color: rgba(128, 128, 128, 0.05);
}

#vyzgclcgwk .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#vyzgclcgwk .gt_footnotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#vyzgclcgwk .gt_footnote {
  margin: 0px;
  font-size: 90%;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
}

#vyzgclcgwk .gt_sourcenotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#vyzgclcgwk .gt_sourcenote {
  font-size: 90%;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
}

#vyzgclcgwk .gt_left {
  text-align: left;
}

#vyzgclcgwk .gt_center {
  text-align: center;
}

#vyzgclcgwk .gt_right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

#vyzgclcgwk .gt_font_normal {
  font-weight: normal;
}

#vyzgclcgwk .gt_font_bold {
  font-weight: bold;
}

#vyzgclcgwk .gt_font_italic {
  font-style: italic;
}

#vyzgclcgwk .gt_super {
  font-size: 65%;
}

#vyzgclcgwk .gt_footnote_marks {
  font-size: 75%;
  vertical-align: 0.4em;
  position: initial;
}

#vyzgclcgwk .gt_asterisk {
  font-size: 100%;
  vertical-align: 0;
}

#vyzgclcgwk .gt_indent_1 {
  text-indent: 5px;
}

#vyzgclcgwk .gt_indent_2 {
  text-indent: 10px;
}

#vyzgclcgwk .gt_indent_3 {
  text-indent: 15px;
}

#vyzgclcgwk .gt_indent_4 {
  text-indent: 20px;
}

#vyzgclcgwk .gt_indent_5 {
  text-indent: 25px;
}

#vyzgclcgwk .katex-display {
  display: inline-flex !important;
  margin-bottom: 0.75em !important;
}

#vyzgclcgwk div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
  height: 0px !important;
}
</style>

<table class="gt_table cell caption-top table table-sm table-striped small" data-quarto-bootstrap="false">
<thead>
<tr class="gt_col_headings header">
<th id="road_group" class="gt_col_heading gt_columns_bottom_border gt_left" data-quarto-table-cell-role="th" scope="col">Location</th>
<th id="median_daily_cycle_count" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Median daily cycle count</th>
<th id="median_daily_motor_count" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Median daily motor count</th>
<th id="n_days" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Days with data</th>
<th id="median_daily_mode_share" class="gt_col_heading gt_columns_bottom_border gt_right" data-quarto-table-cell-role="th" scope="col">Cycling mode share</th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #EB6834; color: #FFFFFF">Millburn Road</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">218</td>
<td class="gt_row gt_right" headers="median_daily_motor_count">11,960</td>
<td class="gt_row gt_right" headers="n_days">362</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">1.7%</td>
</tr>
<tr class="even">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Ness Walk</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">256</td>
<td class="gt_row gt_right" headers="median_daily_motor_count">990</td>
<td class="gt_row gt_right" headers="n_days">362</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">10.2%</td>
</tr>
<tr class="odd">
<td class="gt_row gt_left" headers="road_group" style="background-color: #8A9096; color: #FFFFFF">Huntly Street</td>
<td class="gt_row gt_right" headers="median_daily_cycle_count">168</td>
<td class="gt_row gt_right" headers="median_daily_motor_count">754</td>
<td class="gt_row gt_right" headers="n_days">362</td>
<td class="gt_row gt_right" headers="median_daily_mode_share">9.6%</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
</figure>
</div>
</div>
<p>Cyclists on Millburn road are typically coexisting with a volume of motor traffic that is an order of magnitude bigger than comparable sites in the city.</p>
</section>
<section id="conclusion" class="level2">
<h2 class="anchored" data-anchor-id="conclusion">Conclusion</h2>
<p>It’s fairly clear that historically, Millburn Road is unique within Inverness city centre for its ability to transport large numbers of cyclists alongside heavy motor traffic. This in itself is not entirely surprising as it contained the only section of segregated cycle lane next to a busy road in the city but it does highlight the importance of that lane.</p>
<p>To me, this makes the Highland Council’s decision to remove a section of it right at the most complex junction seem to go against their stated vision <a href="https://www.highland.gov.uk/downloads/file/857/active-travel-strategy-2024-2030">to make active travel an attractive and realistic choice for more people, more often, for more of their everyday journeys</a>. I hope they will take a good look at this data as they plan for how they will move forward at that site. I think it makes a good case for improving and indeed extending the cycle lane along that corridor to enable even more people to arrive in the city by bicycle.</p>


</section>


<div id="quarto-appendix" class="default"><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>The other icons visible on the map count periodic, not continuous data.↩︎</p></li>
<li id="fn2"><p>This year also avoids any major changes to the infrastructure layout at each site.↩︎</p></li>
</ol>
</section></div> ]]></description>
  <category>infrastructure</category>
  <category>case-study</category>
  <category>data</category>
  <category>Millburn-Rd</category>
  <guid>https://themodeshift.scot/posts/2026-09-12-millburn-volume analysis/</guid>
  <pubDate>Fri, 11 Sep 2026 23:00:00 GMT</pubDate>
</item>
<item>
  <title>Inverness Courier - Bad 20mph Stats</title>
  <link>https://themodeshift.scot/posts/2026-09-10-courier-20mph-article/</link>
  <description><![CDATA[ 




<p><a href="https://www.inverness-courier.co.uk/news/20mph-speed-limit-branded-ploy-against-drivers-as-collisio-444540/">This article in the Inverness Courier</a> was brought to my attention and it immediately brought up some statistical red flags. Road safety is an important factor in active travel and I feel it’s important to challenge bad stats when we see them. I’ve written directly to the Courier as well as the MSP quoted in the article, Tim Eagle, with some of my objections but I’d like to go into more detail here.</p>
<p>The article suggests that the Scottish Governments expansion of 20mph speed limits on its road networks is not successful because of a slight rise in road traffic collisions in 20mph zones in 2025. Here I’m going to list my red flags and explain in detail why this article should not be taken seriously.</p>
<section id="no-link-to-the-data-source." class="level3">
<h3 class="anchored" data-anchor-id="no-link-to-the-data-source.">🚩 No link to the data source.</h3>
<p>The article states:</p>
<blockquote class="blockquote">
<p>New figures released by the Scottish Government show 570 collisions on 20mph roads across Scotland ended in injury last year.</p>
</blockquote>
<p>Given the lack of a link in the article to the source of data, one would hope that typing “Scottish Government road collision statistics” into your favourite search engine would get you on the way. Unfortunately, what you’ll find is <a href="https://www.transport.gov.scot/publication/key-reported-road-casualties-scotland-2025/">Transport Scotland’s Road Casualty Statistics</a> which are great, but as far as I can tell don’t break down collisions by speed limit.</p>
<p>Instead, the closest match I can find to data quoted in the article is published by the UK Government’s Department for Transport under the <a href="https://www.gov.uk/government/statistical-data-sets/road-safety-open-data">stats19 reporting system</a>. It’s a great example of government open data, being comprehensive, well documented and very clean. Hats off to the nerds who keep this data in such good shape, and an extra special nod of thanks for writing and maintaining an R package to go along with it.</p>
<p>Wherever this data comes from it isn’t sufficiently linked or sourced - does this invalidate the article? No, but it starts the article on the wrong foot. To me it says ‘we’re not confident enough in these numbers to let you see them for yourself’ and ‘we don’t care enough about this to get the details right’.</p>
</section>
<section id="theres-no-denominator." class="level3">
<h3 class="anchored" data-anchor-id="theres-no-denominator.">🚩 There’s no denominator.</h3>
<p>Ok, fine, technically there is a denominator as we’re given the number of collisions per year but in this context that’s not meaningful enough. Here’s an example of the text of the article:</p>
<blockquote class="blockquote">
<p>Last year, 254 crashes on 40mph routes resulted in a driver of [sic] passenger being injured. This was compared to 165 injury collisions on 50mph routes and 268 on 70mph dual carriageways. The figures highlight a five year high for collisions on 20mph routes. A total of 515 were recorded back in 2021, followed by a reduction to 488 two years later.<sup>1</sup></p>
</blockquote>
<p>While these are real numbers from a real dataset, they don’t contain enough information to draw any conclusions about the effect of 20mph zones. The most glaring issue I have with this is that <strong>if there are more roads with 20mph than last year then more collisions will happen on those roads.</strong> Saying that the number of collisions is at a five year high doesn’t tell you much if you don’t take into account the underlying conditions behind that number.</p>
<p>A more informative figure here could be “collisions / kilometer of road type” or even better “collisions / vehicle kilometer on that road type”. The former of these would account for changes in the make-up of the road network while the latter would also account for changes in vehicle volumes. It turns out that the data to make these comparisons is trickier to get hold of (more on that later) but that doesn’t excuse choosing meaningless numbers to make a point.</p>
</section>
<section id="only-20mph-can-beat-30mph-here" class="level3">
<h3 class="anchored" data-anchor-id="only-20mph-can-beat-30mph-here">🚩 “Only 20mph can beat 30mph here”</h3>
<p>The next statistical sin feels a lot like the <a href="https://fullfact.org/politics/election-leaflets-2026/">dodgy graphs on the back of election leaflets</a>. Here’s Tim Eagle MSP quoted in the article:</p>
<blockquote class="blockquote">
<p>20mph zones account for the third highest number of vehicle crashes that result in an injury, with more collisions than in 40mph, 50mph and 70mph areas</p>
</blockquote>
<p>If we take the figures quoted earlier and graph them you can certainly see Mr Eagle’s point:</p>
<div class="cell">
<div id="fig-badspeedlimits" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-badspeedlimits-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-c7e81950f51d64d6454e" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-c7e81950f51d64d6454e">{"x":{"visdat":{"216873e48485":["function () ","plotlyVisDat"]},"cur_data":"216873e48485","attrs":{"216873e48485":{"x":{},"y":{},"marker":{"color":["#eb6834","#2a78d6","#2a78d6","#2a78d6"]},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","type":"category","categoryorder":"array","categoryarray":["20mph","40mph","50mph","70mph"]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Number of collisions"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":["20mph","40mph","50mph","70mph"],"y":[570,254,165,268],"marker":{"color":["#eb6834","#2a78d6","#2a78d6","#2a78d6"],"line":{"color":"rgba(31,119,180,1)"}},"text":[570,254,165,268],"textposition":["outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-badspeedlimits-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: 2025 injury collisions on 20mph, 40mph, 50mph and 70mph roads in Scotland
</figcaption>
</figure>
</div>
</div>
<p>You may have noticed that the values for 30mph roads and 60mph roads aren’t referenced in the articles. Lets pull them out and add them to the graph:</p>
<div class="cell">
<div id="fig-allspeedlimits" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-allspeedlimits-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-84e638a5a12ee460c423" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-84e638a5a12ee460c423">{"x":{"visdat":{"216838626156":["function () ","plotlyVisDat"]},"cur_data":"216838626156","attrs":{"216838626156":{"x":{},"y":{},"marker":{"color":"#2a78d6"},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","type":"category","categoryorder":"array","categoryarray":["20mph","30mph","40mph","50mph","60mph","70mph"]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Number of collisions"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":["20mph","30mph","40mph","50mph","60mph","70mph"],"y":[570,1729,254,165,1118,268],"marker":{"color":"#2a78d6","line":{"color":"rgba(31,119,180,1)"}},"text":[570,1729,254,165,1118,268],"textposition":["outside","outside","outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-allspeedlimits-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: 2025 injury collisions in Scotland by speed limit
</figcaption>
</figure>
</div>
</div>
<p>Oh.</p>
<p>So here’s the thing - it’s OK to exclude some data from your comparisons if you have justification for doing so. In fact I’m going to do just that later in the blog. No justification is given in the article for not reporting the numbers for 30mph and 60mph, and I can’t even charitably think of one that anyone might give in good faith. You could argue, in fact that given most new 20mph limits are replacing existent 30mph limits that the comparison between those two is the most important one you could make.</p>
<p>If we accept the logic of the article that the collisions number is a useful proxy for safety (we shouldn’t), then turning 30mph zones into 20mph zones would be an obvious step to improve safety. The whole picture is completely different with the inclusion of that data. Omitting to mention the counts for 30mph and 60mph without justification is at best misleading and at worst wilfully dishonest.</p>
</section>
<section id="the-secret-to-stats-is-the-same-as-the-secret-to-comedy" class="level3">
<h3 class="anchored" data-anchor-id="the-secret-to-stats-is-the-same-as-the-secret-to-comedy">🚩The Secret to Stats is the Same as the Secret to Comedy</h3>
<p>…Timing.</p>
<p>Lets look at one of the claims in the headline:</p>
<blockquote class="blockquote">
<p>20mph speed limit branded ‘ploy against drivers’ as collisions reach five year high</p>
</blockquote>
<p>Of course, it is factually correct that collisions in 20mph zones has reached a 5 year high. Here’s a graph to prove it:</p>
<div class="cell">
<div id="fig-20trend" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-20trend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-78977c50d7e0bed612e3" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-78977c50d7e0bed612e3">{"x":{"visdat":{"216863defbb1":["function () ","plotlyVisDat"]},"cur_data":"216863defbb1","attrs":{"216863defbb1":{"x":{},"y":{},"marker":{"color":"#eb6834"},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","tickmode":"array","tickvals":[2021,2022,2023,2024,2025]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"20mph injury collisions"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":[2021,2022,2023,2024,2025],"y":[522,526,482,526,570],"marker":{"color":"#eb6834","line":{"color":"rgba(31,119,180,1)"}},"text":[522,526,482,526,570],"textposition":["outside","outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-20trend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: 20mph road injury collisions in Scotland, 2021–2025
</figcaption>
</figure>
</div>
</div>
<p>It does indeed show numbers at a 5 year high, but does that support the claim that 20mph zones aren’t improving safety? If you want to show that on a time series graph you can annotate the graph to show where in time the intervention you’re talking about takes place, <a href="https://xkcd.com/1356">like in this classic from xkcd</a>. Let’s add in the deadline for the roll-out of 20mph zones in Scotland, March 2026:</p>
<div class="cell">
<div id="fig-20trend-deadline" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-20trend-deadline-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-0991c27200ac236d6ba5" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-0991c27200ac236d6ba5">{"x":{"visdat":{"2168101bd177":["function () ","plotlyVisDat"]},"cur_data":"2168101bd177","attrs":{"2168101bd177":{"x":{},"y":{},"marker":{"color":"#eb6834"},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","tickmode":"array","tickvals":[2021,2022,2023,2024,2025],"range":[2020.4000000000001,2026.8]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"20mph injury collisions"},"legend":{"orientation":"h","y":-0.20000000000000001},"shapes":[{"type":"line","x0":2026.2,"x1":2026.2,"y0":0,"y1":600,"line":{"color":"#d62828","dash":"dash","width":1.5}}],"annotations":[{"x":2026.2,"y":600,"text":"National rollout<br />deadline: March 2026","showarrow":false,"xanchor":"left","font":{"size":11,"color":"#d62828"}}],"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":[2021,2022,2023,2024,2025],"y":[522,526,482,526,570],"marker":{"color":"#eb6834","line":{"color":"rgba(31,119,180,1)"}},"text":[522,526,482,526,570],"textposition":["outside","outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-20trend-deadline-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: 20mph road injury collisions in Scotland, 2021–2025, against the national rollout deadline
</figcaption>
</figure>
</div>
</div>
<p>The article is using data to infer the effects of a policy that is taken before that policy has been enacted. It’s a bit like calling your GP to complain that your antibiotics aren’t working before you’ve started taking them. The Scottish Greens, who championed the policy in the Scottish Parliament surveyed all local authorities <a href="https://greens.scot/news/councils-must-step-up-20mph-promise">and found that only 5 had completed the roll-out in June 2026</a>. To be clear you cannot blame anything found in this data on the 20mph roll-out because, as far as the data is concerned it hasn’t happened yet.</p>
</section>
<section id="a-better-use-of-the-data" class="level2">
<h2 class="anchored" data-anchor-id="a-better-use-of-the-data">A Better Use of the Data</h2>
<p>I don’t want to just sit here and criticise the article, I want to see if there’s something we can genuinely learn from the data if we treat it with more respect. I’ll add links to my primary data throughout.</p>
<section id="a-better-denominator" class="level3">
<h3 class="anchored" data-anchor-id="a-better-denominator">✅ A Better Denominator</h3>
<p>As I mention above, a more meaningful statistic is possible here if we put the collisions in the correct context. I’ve tried to find a breakdown of the length of each road in Scotland by speed limit but the closest thing I can find is in <a href="https://www.transport.gov.scot/publication/scottish-transport-statistics-2025">Transport Scotland’s Scottish Transport Statistics 2025 Report</a>. Near the bottom of that page is the link to the Excel sheets for Chapter 4 - Road Network, where the roads are broken down into ‘Roads up to 40mph’ and ‘Roads over 40mph’. This isn’t granular enough for looking at specific speed limits, so I’ve sent an FOI to Transport Scotland to see if they hold the data at individual speed limit level.</p>
<p>The same report details traffic volumes in Chapter 5 - Road Traffic. The published dataset splits the traffic volume estimates (given in million vehicle kilometers) by road type rather than speed limit. The distinction of minor/major roads doesn’t map perfectly with speed limits - some minor roads will have high speed limits and vice versa - but the vast majority of roads affected by the 20mph roll-out will be minor roads. Here, I’m having to make a judgement call about the compromise I have to make in the data, but crucially I’ve also stated my defense for my choice. I’ll proceed with this with the caveat that it contains volumes of traffic on roads that we’re not interested in. Here’s the trend in that measure from the data:</p>
<div class="cell">
<div id="fig-minorroadtraffic" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-minorroadtraffic-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-f037cbe723cc3a9e609d" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-f037cbe723cc3a9e609d">{"x":{"visdat":{"2168408d7c7e":["function () ","plotlyVisDat"]},"cur_data":"2168408d7c7e","attrs":{"2168408d7c7e":{"x":{},"y":{},"marker":{"color":"#2a78d6"},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","tickmode":"array","tickvals":[2021,2022,2023,2024]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Traffic volume (million vehicle-km)"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":[2021,2022,2023,2024],"y":[15908,17009,17221,17633],"marker":{"color":"#2a78d6","line":{"color":"rgba(31,119,180,1)"}},"text":["15,908","17,009","17,221","17,633"],"textposition":["outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-minorroadtraffic-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: Traffic volume on minor roads (B, C and unclassified) in Scotland, 2021–2024
</figcaption>
</figure>
</div>
</div>
</section>
<section id="a-defensible-subset-of-data" class="level3">
<h3 class="anchored" data-anchor-id="a-defensible-subset-of-data">✅ A Defensible Subset of Data</h3>
<p>Time to focus on which data will tell us something useful. Given the focus of the question is whether the 20mph policy improves road safety, I think it’s important to consider the desired outcome of the policy. <a href="https://www.transport.gov.scot/media/3yxfd5tp/the-implementation-guide-for-20-mph-speed-limits-in-scotland.pdf">The Scottish Goverment’s Implementation for 20mph limits</a> highlights the importance of reducing the severity of collisions:</p>
<blockquote class="blockquote">
<p>The speed of a vehicle directly influences the risk of a collision as well as the severity of injuries sustained, and the likelihood of death resulting from that collision.</p>
</blockquote>
<p>With that in mind, choosing to focus on collisions in which one or more casualty is killed or seriously injured (so-called KSI collisions) allows both the frequency and severity of collisions to be covered in the analysis. Again, this is a choice that I have made to exclude some data from my analysis but I’ve made clear my reason for doing so. Here’s that trend, not corrected for traffic volume:</p>
<div class="cell">
<div id="fig-minorksicount" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-minorksicount-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-58905b8d8c989ee0c7ec" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-58905b8d8c989ee0c7ec">{"x":{"visdat":{"2168366beda0":["function () ","plotlyVisDat"]},"cur_data":"2168366beda0","attrs":{"2168366beda0":{"x":{},"y":{},"marker":{"color":"#6b7278"},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","tickmode":"array","tickvals":[2021,2022,2023,2024]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"KSI collisions"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":[2021,2022,2023,2024],"y":[744,793,878,871],"marker":{"color":"#6b7278","line":{"color":"rgba(31,119,180,1)"}},"text":[744,793,878,871],"textposition":["outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-minorksicount-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;6: KSI collisions on minor roads (B, C and unclassified) in Scotland, 2021–2024
</figcaption>
</figure>
</div>
</div>
</section>
<section id="a-realistic-conclusion" class="level3">
<h3 class="anchored" data-anchor-id="a-realistic-conclusion">✅ A Realistic Conclusion</h3>
<p>You may have noticed that I don’t have any data for 2025 above - that’s because I don’t have the traffic volume data for 2025 yet. This limits the scope of the conclusions we can make but it doesn’t mean we can’t learn something. Here’s the KSI collision rate corrected for traffic volume:</p>
<div class="cell">
<div id="fig-minorksirate" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-minorksirate-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-66dd9d283b8a4860655e" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-66dd9d283b8a4860655e">{"x":{"visdat":{"21682ba2f6a3":["function () ","plotlyVisDat"]},"cur_data":"21682ba2f6a3","attrs":{"21682ba2f6a3":{"x":{},"y":{},"marker":{"color":"#eb6834"},"text":{},"textposition":"outside","showlegend":false,"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"","tickmode":"array","tickvals":[2021,2022,2023,2024]},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"KSI per billion vehicle-km"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":[2021,2022,2023,2024],"y":[46.799999999999997,46.600000000000001,51,49.399999999999999],"marker":{"color":"#eb6834","line":{"color":"rgba(31,119,180,1)"}},"text":[46.799999999999997,46.600000000000001,51,49.399999999999999],"textposition":["outside","outside","outside","outside"],"showlegend":false,"type":"bar","error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-minorksirate-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;7: KSI collisions per billion vehicle-km on minor roads in Scotland, 2021–2024
</figcaption>
</figure>
</div>
</div>
<p>There’s no clear trend on display here, but we can see that 2023 and 2024 have higher traffic-adjusted rates of KSI collisions than the preceding years. There’s nothing in this data that point to a cause for that rise but it’s there and it’s real. Here’s my attempt at a statistically defensible headline from that data:</p>
<div class="callout callout-style-simple callout-important no-icon">
<div class="callout-body d-flex">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-body-container">
<p>Serious crash rate on minor roads averaged 7.5% higher in 2023–24 than 2021–22.</p>
</div>
</div>
</div>
<p>And that’s it. There’s no evidence that 20mph zones may have caused it, no evidence of a war on motorists. Just and indication of something that could be a problem - the kind of problem that needs an intervention to fix it.</p>


</section>
</section>


<div id="quarto-appendix" class="default"><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>My own pull of the same STATS19 data gives 522 collisions in 2021 and 482 in 2023, not 515 and 488 as quoted here. STATS19 records are periodically revised as late reports and corrections come in, so this is most likely a difference in when each of us pulled the data, rather than an error on either side.↩︎</p></li>
</ol>
</section></div> ]]></description>
  <category>road-safety</category>
  <category>case-study</category>
  <category>data</category>
  <category>data-literacy</category>
  <guid>https://themodeshift.scot/posts/2026-09-10-courier-20mph-article/</guid>
  <pubDate>Thu, 10 Sep 2026 23:00:00 GMT</pubDate>
</item>
<item>
  <title>Millburn Road - The Data</title>
  <link>https://themodeshift.scot/posts/2026-09-04-inverness-data/</link>
  <description><![CDATA[ 




<p>To understand more about the bike lane on Millburn Road, I wanted to look at the cycling traffic levels right across the city of Inverness. The excellent news is that <a href="https://cycling-scotland-dashboard.usmart.io/">Cycling Scotland have an Open Data portal</a> that tracks lots of places across Scotland. The less great news is that the data starts in 2021, so there’s no simple before/after picture to see the effect of the installation of new bike lanes during the COVID-19 pandemic. There’s still a lot to learn from what is there though!</p>
<p>Millburn Road has two traffic counters, one each for the Eastward and Westward sections of the road. The point where the counters appear on the map is almost exactly where the section of bike lane has been removed making it a good place to measure bike traffic:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://themodeshift.scot/posts/2026-09-04-inverness-data/usmart-screenshot-millburn-west.png" class="img-fluid figure-img" alt="A map zoomed in on Millburn Road in Inverness on which two traffic counters are marked. The right of the image shows some of the stats from the counter."></p>
<figcaption>Image taken from Cycling Scotland Open Data portal (usmart.io)</figcaption>
</figure>
</div>
<p>By grabbing the data from both the <a href="https://umove.usmart.ai/organisation/peopleandplace/dashboard/cycle-open-data?site=HLD002">Eastward</a> and <a href="https://umove.usmart.ai/organisation/peopleandplace/dashboard/cycle-open-data?site=HLD011">Westward</a> counters it’s pretty easy to see which side of the road has a bike lane:</p>
<div class="cell">
<div id="fig-eastwest" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-eastwest-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-09b9d20742468310fd68" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-09b9d20742468310fd68">{"x":{"visdat":{"21b97ec40617":["function () ","plotlyVisDat"]},"cur_data":"21b97ec40617","attrs":{"21b97ec40617":{"x":{},"y":{},"mode":"lines+markers","line":{"width":2.5},"marker":{"size":5},"color":{},"colors":["#6b7278","#eb6834"],"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"scatter"}},"layout":{"margin":{"b":40,"l":60,"t":10,"r":20},"paper_bgcolor":"rgba(0,0,0,0)","plot_bgcolor":"rgba(0,0,0,0)","font":{"color":"#1a1a1a","family":"Helvetica, Arial, sans-serif","size":12},"xaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":""},"yaxis":{"domain":[0,1],"automargin":true,"gridcolor":"#e0e6ea","zeroline":false,"title":"Avg daily cycle count"},"legend":{"orientation":"h","y":-0.20000000000000001},"hovermode":"closest","showlegend":true},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displaylogo":false},"data":[{"x":["2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[74.258064516129039,93.428571428571431,85.193548387096769,83.066666666666663,80.193548387096769,116.76666666666667,133.58064516129033,134.06451612903226,118.53333333333333,54.032258064516128,45.06666666666667,35.096774193548384,37.677419354838712,39.25,41.677419354838712,54.333333333333329,65.096774193548384,56.799999999999997,60.774193548387096,56.064516129032256,58.06666666666667,44.612903225806448,41.600000000000001,31.35483870967742,30.225806451612904,35.96551724137931,50.645161290322584,53.13333333333334,61.806451612903224,56.266666666666666,54.064516129032256,58.193548387096776,55.06666666666667,44.322580645161288,40.833333333333329,29.774193548387096,16.741935483870968,19.071428571428573,21.29032258064516,28.133333333333336,24.642857142857142,23.071428571428573,26.899999999999999,28.833333333333332,26.888888888888889,21.464285714285715,20.285714285714285,17.482758620689655,13.357142857142856,17.5,18.310344827586206,17.222222222222221,28,22.800000000000001],"mode":"lines+markers","line":{"color":"rgba(107,114,120,1)","width":2.5},"marker":{"color":"rgba(107,114,120,1)","size":5,"line":{"color":"rgba(107,114,120,1)"}},"type":"scatter","name":"Eastward","textfont":{"color":"rgba(107,114,120,1)"},"error_y":{"color":"rgba(107,114,120,1)"},"error_x":{"color":"rgba(107,114,120,1)"},"xaxis":"x","yaxis":"y","frame":null},{"x":["2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01"],"y":[465.90322580645159,447.14285714285717,599.06451612903231,567.16666666666663,692.0322580645161,788.5,718.09677419354841,817.70967741935488,813.20000000000005,529.19354838709683,497.69999999999999,290.90322580645159,298.77419354838707,380.75,400.51612903225805,470.36666666666667,534.32258064516134,582.76666666666665,489.22580645161293,550.16129032258061,577.86666666666667,479.90322580645159,444.43333333333334,340.51612903225805,280.16129032258067,349.58620689655174,397.12903225806451,426.93333333333328,471.58064516129031,452,434.51612903225805,468.48387096774195,459.46666666666664,411.03225806451616,345.80000000000001,75.225806451612883,0,0,175.73333333333332,241.65517241379311,245.76666666666668,235.41379310344828,241.36666666666667,237.61290322580646,252.69230769230768,205.38461538461539,179.21428571428572,142.25,123.85714285714285,157.11111111111111,172.31034482758622,169.75,218.55555555555554,205.06666666666666],"mode":"lines+markers","line":{"color":"rgba(235,104,52,1)","width":2.5},"marker":{"color":"rgba(235,104,52,1)","size":5,"line":{"color":"rgba(235,104,52,1)"}},"type":"scatter","name":"Westward","textfont":{"color":"rgba(235,104,52,1)"},"error_y":{"color":"rgba(235,104,52,1)"},"error_x":{"color":"rgba(235,104,52,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-eastwest-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Average daily cycle counts on Millburn Road by direction, 2022–2026
</figcaption>
</figure>
</div>
</div>
<p>After a look to see if the data is what we want (it is) we can then download the full dataset for the Highland Council area. This gives daily aggregated counts at each site of cyclists, pedestrians, motorcycles, cars, buses, and goods vehicles from March 2021 to June 2026.</p>
<p>In the next post, we’ll look at how the cycle counts compare to the other city centre sites:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://themodeshift.scot/posts/2026-09-04-inverness-data/usmart-screenshot-inverness-centre.png" class="img-fluid figure-img" style="width:70.0%" alt="A map zoomed in on Inverness city centre on which several traffic counters are marked."></p>
<figcaption>Image taken from Cycling Scotland Open Data portal (usmart.io)</figcaption>
</figure>
</div>



 ]]></description>
  <category>infrastructure</category>
  <category>case-study</category>
  <category>data</category>
  <guid>https://themodeshift.scot/posts/2026-09-04-inverness-data/</guid>
  <pubDate>Thu, 03 Sep 2026 23:00:00 GMT</pubDate>
</item>
<item>
  <title>Millburn Road, Inverness - The Background</title>
  <link>https://themodeshift.scot/posts/2026-09-03-millburn-background/</link>
  <description><![CDATA[ 




<p>To open this project I’m going to have a look at some infrastructure that is close to home - the segregated bike lane on Millburn Road in Inverness.</p>
<p>During the height of the COVID-19 pandemic, cities across Scotland installed lots of temporary bike lanes as people’s travel habits changes in response to the virus. One such lane was built along a stretch of Millburn Road<sup>1</sup> protecting cyclists on a particularly busy route into the city. The road went from looking like this in 2017:</p>
<iframe src="https://www.google.com/maps/embed?pb=!4v1788464524212!6m8!1m7!1sCDsIXwQnWN7DlLjHSoZ9kg!2m2!1d57.48009006687476!2d-4.218674253861359!3f217.12904765440703!4f-12.050525166695664!5f0.7820865974627469" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="strict-origin-when-cross-origin">
</iframe>
<p>To this in 2025:</p>
<iframe src="https://www.google.com/maps/embed?pb=!4v1788464792219!6m8!1m7!1ss1U3zWeD_4YfZHfT9X6_NQ!2m2!1d57.48006149079656!2d-4.218620963175761!3f217.12904765440703!4f-12.050525166695664!5f0.7820865974627469" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="strict-origin-when-cross-origin">
</iframe>
<p>So you can see it’s gone from a fairly inhospitable place to cycle, to one that’s fairly attractive. Then in a surprising move earlier this year <a href="https://www.bbc.co.uk/news/articles/cp9l34jn1e2o">Highland Council removed a section at the westernmost junction</a>.</p>
<div id="fig-lane-comparison" class="quarto-float quarto-figure quarto-figure-center anchored" alt="A comparison image of the bike lane before and after the 2026 shortening">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-lane-comparison-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://themodeshift.scot/posts/2026-09-03-millburn-background/bbc_lane_comparison.png" class="img-fluid figure-img" alt="A comparison image of the bike lane before and after the 2026 shortening">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-lane-comparison-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: The Millburn Rd bike lane, before and after the 2026 shortening. Photo: Highland Cycle Campaign
</figcaption>
</figure>
</div>
<p>Over the next few weeks I’m going to explore some of the data around this junction to investigate how useful it’s been to the city. I want to see what we can learn from the infrastructure to help better inform any plans for what comes next.</p>




<div id="quarto-appendix" class="default"><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>It was shortened after a couple of years, more detail on that in a later post.↩︎</p></li>
</ol>
</section></div> ]]></description>
  <category>infrastructure</category>
  <category>case-study</category>
  <guid>https://themodeshift.scot/posts/2026-09-03-millburn-background/</guid>
  <pubDate>Tue, 01 Sep 2026 23:00:00 GMT</pubDate>
</item>
<item>
  <title>Hello, Mode Shift</title>
  <link>https://themodeshift.scot/posts/2026-09-02-hello-world/</link>
  <description><![CDATA[ 




<p>First post — more to come as the Scottish active travel analysis develops.</p>



 ]]></description>
  <category>meta</category>
  <guid>https://themodeshift.scot/posts/2026-09-02-hello-world/</guid>
  <pubDate>Tue, 01 Sep 2026 23:00:00 GMT</pubDate>
</item>
</channel>
</rss>
