{"id":69971,"date":"2024-10-16T09:03:21","date_gmt":"2024-10-16T07:03:21","guid":{"rendered":"https:\/\/bikehub.co.za\/news\/?p=69971"},"modified":"2024-10-22T07:01:41","modified_gmt":"2024-10-22T05:01:41","slug":"quarter-turn-bike-hub-q3-2024-report","status":"publish","type":"post","link":"https:\/\/bikehub.co.za\/news\/quarter-turn-bike-hub-q3-2024-report\/","title":{"rendered":"Quarter Turn: Bike Hub Q3 2024 Report"},"content":{"rendered":"\n<p>We&#8217;ve been checking in every quarter to assess demand in our marketplace. In the <a href=\"https:\/\/bikehub.co.za\/news\/bike-hub-q1-2024-report\/\">first quarter of 2024<\/a> we noted that demand appeared to be stabilising after the COVID bicycle boom, and subsequent reset.<\/p>\n\n\n\n<p>In the <a href=\"https:\/\/bikehub.co.za\/news\/quarter-turn-bike-hub-q2-2024-report\/\">second quarter<\/a> of 2024 we saw a 5% increase in demand year on year, offering reassurance that equilibrium has indeed been restored in the industry.<\/p>\n\n\n\n<p>Here&#8217;s what we found in the third quarter of 2024:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Demand Remains Steady<\/h2>\n\n\n\n<p>After a particularly brutal winter we expected to see some contraction in demand, so we were pleased to see that enquiries for Q3 2024 are up 3.3% year on year (see the graph below). <\/p>\n\n\n\n<p>Enquiries (responses to ads) are not a direct measure of sales, but they are an excellent indicator of demand and we can assume that there is a correlation with sales.<\/p>\n\n\n\n<div style=\"min-height:400px\">\n  <canvas id=\"demandChart\"><\/canvas>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n\n<script>\n  const ctx = document.getElementById('demandChart');\n\n  new Chart(ctx, {\n    type: 'bar',\n    data: {\n      labels: ['Q1 2020', 'Q2 2020', 'Q3 2020', 'Q4 2020', 'Q1 2021', 'Q2 2021', 'Q3 2021', 'Q4 2021',\n'Q1 2022', 'Q2 2022', 'Q3 2022', 'Q4 2022', 'Q1 2023', 'Q2 2023', 'Q3 2023', 'Q4 2023', 'Q1 2024', 'Q2 2024', 'Q3 2024'],\n      datasets: [{\n        label: '# of enquiries',\n        data: [42334,41234,58069,46786,51369,46235,48641,48160,50878,41999,39435,39042,39691,34529,34108,34344,39970,37247, 35892],\n        borderWidth: 1\n      }]\n    },\n    options: {\n      scales: {\n        y: {\n          beginAtZero: true\n        }\n      },\n      maintainAspectRatio: false,\n      responsive: true,\n    }\n  });\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Unique Enquiries by category<\/h2>\n\n\n\n<p>Total enquiries on bikes by category for Q3 2024. Dual Suspension Mountain Bikes still make up the biggest slice of the pie, with Road Bikes surprisingly close behind.<\/p>\n\n\n\n<div style=\"min-height:650px\">\n  <canvas id=\"pieChart\"><\/canvas>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n\n<script>\n  const ctx99 = document.getElementById('pieChart');\n\n  new Chart(ctx99, {\n    type: 'polarArea',\n    data: {\n      labels: ['MTB - Dual Suspension', 'MTB - Hardtail', 'Road', 'Gravel', 'E-Bikes'],\n      datasets: [{\n        data: [4225,1979,3505,829,645],\n        borderWidth: 1\n      }]\n    },\n    options: {\n      responsive: true,\n      maintainAspectRatio: false,\nscales: {\n      r: {\n        pointLabels: {\n          display: true,\n          centerPointLabels: true,\n          font: {\n            size: 16\n          }\n        }\n      }\n    },\n      plugins: {\n        legend: {\n          position: 'right',\n        }\n      }\n    }\n  });\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Gravel continues to grow<\/h2>\n\n\n\n<p>Gravel has continued it&#8217;s growth trajectory with an impressive 22% increase in enquiries in Q3 year on year. It has remained flat from Q2 showing no seasonal decline.<\/p>\n\n\n\n<p>This suggests that the&nbsp;<a href=\"https:\/\/bikehub.co.za\/events\">gravel events<\/a>&nbsp;that pepper the winter season have an impact on demand, or simply that demand in this category is still growing. Interestingly gravel is one of the few categories where enquiries in the Western Cape outstrip Gauteng, with 329 vs 307. <\/p>\n\n\n\n<div style=\"min-height:450px\">\n  <canvas id=\"gravelChart\"><\/canvas>\n<\/div>\n\n<script>\n\nconst ctx3 = document.getElementById('gravelChart').getContext('2d');\nconst myChart = new Chart(ctx3, {\n    type: 'line',\n    data: {\n        labels: ['Q1 2021', 'Q2 2021', 'Q3 2021', 'Q4 2021', 'Q1 2022', 'Q2 2022', 'Q3 2022', 'Q4 2022', 'Q1 2023', 'Q2 2023', 'Q3 2023', 'Q4 2023', 'Q1 2024', 'Q2 2024', 'Q3 2024'],  \/\/ Ordered by year and quarter  \n        datasets: [\n            {\n                label: 'Gauteng',\n                data: [264,237,274,217,247,248,293,223,329,262,286,309,326,352,307], \/\/ Leads for Gauteng\n                borderColor: 'rgba(59, 130, 246, 1)',  \/\/ Blue-500\n                backgroundColor: 'rgba(59, 130, 246, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Western Cape',\n                data: [187,214,189,150,187,199,203,205,272,204,264,268,339,311,329], \/\/ Leads for Western Cape\n                borderColor: 'rgba(34, 197, 94, 1)',  \/\/ Green-500\n                backgroundColor: 'rgba(34, 197, 94, 0.5)',\n                fill: true\n            },\n            {\n                label: 'KwaZulu-Natal',\n                data: [45,42,27,40,56,33,37,37,32,34,36,47,30,40,41], \/\/ Leads for KwaZulu-Natal\n                borderColor: 'rgba(234, 179, 8, 1)',  \/\/ Yellow-500\n                backgroundColor: 'rgba(234, 179, 8, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Eastern Cape',\n                data: [14,8,10,15,32,16,27,17,9,19,31,14,26,23,46], \/\/ Leads for Eastern Cape\n                borderColor: 'rgba(249, 115, 22, 1)',  \/\/ Orange-500\n                backgroundColor: 'rgba(249, 115, 22, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Mpumalanga',\n                data: [18,7,3,12,32,1,5,2,1,5,2,8,3,11,8], \/\/ Leads for Mpumalanga\n                borderColor: 'rgba(168, 85, 247, 1)',  \/\/ Purple-500\n                backgroundColor: 'rgba(168, 85, 247, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Limpopo',\n                data: [11,17,8,6,16,4,6,9,15,4,4,4,8,8,5], \/\/ Leads for Limpopo\n                borderColor: 'rgba(255, 99, 132, 1)',  \/\/ Pink-500\n                backgroundColor: 'rgba(255, 99, 132, 0.5)',\n                fill: true\n            },\n            {\n                label: 'North West',\n                data: [4,10,4,5,10,11,14,2,12,7,9,12,19,7,13], \/\/ Leads for North West\n                borderColor: 'rgba(20, 184, 166, 1)',  \/\/ Teal-500\n                backgroundColor: 'rgba(20, 184, 166, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Free State',\n                data: [3,3,2,7,12,8,2,21,9,7,3,3,4,6,11], \/\/ Leads for Free State\n                borderColor: 'rgba(239, 68, 68, 1)',  \/\/ Red-500\n                backgroundColor: 'rgba(239, 68, 68, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Northern Cape',\n                data: [2,4,2,0,1,1,0,1,0,1,0,0,0,2,2], \/\/ Leads for Northern Cape\n                borderColor: 'rgba(99, 102, 241, 1)',  \/\/ Indigo-500\n                backgroundColor: 'rgba(99, 102, 241, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Unknown',\n                data: [24,32,23,21,40,34,27,29,30,33,28,29,47,45,48],\n                borderColor: 'rgba(200, 200, 200, 1)',  \/\/ Grey\n                backgroundColor: 'rgba(200, 200, 200, 0.75)',\n                fill: true\n            }\n        ]\n    },\n    options: {\n        scales: {\n            y: {\n                stacked: true,\n                beginAtZero: true\n            }\n        },\n      responsive: true,\n      maintainAspectRatio: false,\n      plugins: {\n       legend: {\n         position: 'bottom',\n       },\n       title: {\n         display: true,\n         text: 'Q2 Gravel bike interest by region'\n       }\n    }\n    }\n});\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">E-bikes are on the charge<\/h2>\n\n\n\n<p>E-bikes continue to show year-on-year growth, with a 10% increase year on year in Q3. Once again the Western Cape tops Gauteng in terms of enquiries with 244 vs 215 in Gauteng and this is one of the few categories where this the case.<\/p>\n\n\n\n<div style=\"min-height:450px\">\n  <canvas id=\"ebikeChart\"><\/canvas>\n<\/div>\n\n<script>\nconst ctx4 = document.getElementById('ebikeChart').getContext('2d');\nconst myChart2 = new Chart(ctx4, {\n    type: 'line',\n    data: {\n        labels: ['Q1 2021', 'Q2 2021', 'Q3 2021', 'Q4 2021', 'Q1 2022', 'Q2 2022', 'Q3 2022', 'Q4 2022', 'Q1 2023', 'Q2 2023', 'Q3 2023', 'Q4 2023', 'Q1 2024', 'Q2 2024','Q3 2024'],  \/\/ Ordered by year and quarter\n        datasets: [\n            {\n                label: 'Gauteng',\n                data: [121,172,167,218,151,166,153,164,157,169,153,152,206,182,215], \/\/ Leads for Gauteng\n                borderColor: 'rgba(59, 130, 246, 1)',  \/\/ Blue-500\n                backgroundColor: 'rgba(59, 130, 246, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Western Cape',\n                data: [217,250,251,242,215,242,238,241,219,236,242,281,299,260,244], \/\/ Leads for Western Cape\n                borderColor: 'rgba(34, 197, 94, 1)',  \/\/ Green-500\n                backgroundColor: 'rgba(34, 197, 94, 0.5)',\n                fill: true\n            },\n            {\n                label: 'KwaZulu-Natal',\n                data: [39,67,69,58,47,50,58,39,55,55,74,39,46,61,69], \/\/ Leads for KwaZulu-Natal\n                borderColor: 'rgba(234, 179, 8, 1)',  \/\/ Yellow-500\n                backgroundColor: 'rgba(234, 179, 8, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Eastern Cape',\n                data: [21,14,15,25,22,32,19,27,24,22,28,29,31,21,19], \/\/ Leads for Eastern Cape\n                borderColor: 'rgba(249, 115, 22, 1)',  \/\/ Orange-500\n                backgroundColor: 'rgba(249, 115, 22, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Limpopo',\n                data: [11,14,11,11,10,9,10,3,4,6,2,4,10,2,7], \/\/ Leads for Limpopo\n                borderColor: 'rgba(168, 85, 247, 1)',  \/\/ Purple-500\n                backgroundColor: 'rgba(168, 85, 247, 0.5)',\n                fill: true\n            },\n            {\n                label: 'North West',\n                data: [8,9,2,2,8,9,6,2,6,5,16,3,10,4,11], \/\/ Leads for North West\n                borderColor: 'rgba(255, 99, 132, 1)',  \/\/ Pink-500\n                backgroundColor: 'rgba(255, 99, 132, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Mpumalanga',\n                data: [5,9,14,7,6,20,1,3,9,5,15,6,5,7,1], \/\/ Leads for Mpumalanga\n                borderColor: 'rgba(20, 184, 166, 1)',  \/\/ Teal-500\n                backgroundColor: 'rgba(20, 184, 166, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Free State',\n                data: [2,7,1,1,9,4,4,3,5,2,0,5,5,3,5], \/\/ Leads for Free State\n                borderColor: 'rgba(239, 68, 68, 1)',  \/\/ Red-500\n                backgroundColor: 'rgba(239, 68, 68, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Northern Cape',\n                data: [0,1,1,1,1,2,7,1,2,0,3,1,2,3,3], \/\/ Leads for Northern Cape\n                borderColor: 'rgba(99, 102, 241, 1)',  \/\/ Indigo-500\n                backgroundColor: 'rgba(99, 102, 241, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Unknown',\n                data: [19,36,34,22,35,44,35,28,20,13,18,24,29,46,31],\n                borderColor: 'rgba(200, 200, 200, 1)',  \/\/ Grey\n                backgroundColor: 'rgba(200, 200, 200, 0.75)',\n                fill: true\n            }\n        ]\n    },\n    options: {\n        responsive: true,\n        maintainAspectRatio: false,\n        plugins: {\n            legend: {\n                position: 'bottom'\n            }\n        },\n        scales: {\n            y: {\n                stacked: true,\n                beginAtZero: true\n            }\n        }\n    }\n});\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Dual Suspension MTB<\/h2>\n\n\n\n<p>It\u2019s positive to see dual suspension mountain bikes up 8.9% year on year in Q3. As the bread and butter of South African bicycle sales it&#8217;s an effective indicator of the overall health of the market.<\/p>\n\n\n\n<div style=\"min-height:450px\">\n  <canvas id=\"dualsusChart\"><\/canvas>\n<\/div>\n<script>\nconst ctx6 = document.getElementById('dualsusChart').getContext('2d');\nconst myChart3 = new Chart(ctx6, {\n    type: 'line',\n    data: {\n        labels: ['Q1 2021', 'Q2 2021', 'Q3 2021', 'Q4 2021', 'Q1 2022', 'Q2 2022', 'Q3 2022', 'Q4 2022', 'Q1 2023', 'Q2 2023', 'Q3 2023', 'Q4 2023', 'Q1 2024', 'Q2 2024', 'Q3 2024'],  \/\/ Ordered by year and quarter\n        datasets: [\n            {\n                label: 'Gauteng',\n                data: [2762,2764,2428,2323,2360,2021,2000,2007,1914,1955,1658,1534,1893,1940,1861],\n                borderColor: 'rgba(34, 197, 94, 1)',  \/\/ Green-500\n                backgroundColor: 'rgba(34, 197, 94, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Western Cape',\n                data: [2477,2172,1967,2114,2034,1807,1661,1450,1503,1326,1206,1401,1493,1364,1173],\n                borderColor: 'rgba(59, 130, 246, 1)',  \/\/ Blue-500\n                backgroundColor: 'rgba(59, 130, 246, 0.75)',\n                fill: true\n            },\n            {\n                label: 'KwaZulu-Natal',\n                data: [814,670,640,686,683,427,386,298,357,402,384,418,360,339,375],\n                borderColor: 'rgba(234, 179, 8, 1)',  \/\/ Yellow-500\n                backgroundColor: 'rgba(234, 179, 8, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Eastern Cape',\n                data: [197,198,184,183,203,131,87,159,199,102,94,118,139,151,124],\n                borderColor: 'rgba(249, 115, 22, 1)',  \/\/ Orange-500\n                backgroundColor: 'rgba(249, 115, 22, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Limpopo',\n                data: [193,124,128,115,132,101,104,103,86,64,45,48,34,42,136],\n                borderColor: 'rgba(168, 85, 247, 1)',  \/\/ Purple-500\n                backgroundColor: 'rgba(168, 85, 247, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Mpumalanga',\n                data: [85,75,101,72,90,85,77,115,59,78,81,48,59,78,60],\n                borderColor: 'rgba(255, 99, 132, 1)',  \/\/ Pink-500\n                backgroundColor: 'rgba(255, 99, 132, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Free State',\n                data: [91,80,79,58,106,90,74,63,113,86,37,37,54,52,60],\n                borderColor: 'rgba(20, 184, 166, 1)',  \/\/ Teal-500\n                backgroundColor: 'rgba(20, 184, 166, 0.5)',\n                fill: true\n            },\n            {\n                label: 'North West',\n                data: [100,75,72,53,84,73,80,54,69,66,63,47,75,53,75],\n                borderColor: 'rgba(239, 68, 68, 1)',  \/\/ Red-500\n                backgroundColor: 'rgba(239, 68, 68, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Northern Cape',\n                data: [27,24,9,17,21,11,5,15,12,5,12,4,9,23,9],\n                borderColor: 'rgba(99, 102, 241, 1)',  \/\/ Indigo-500\n                backgroundColor: 'rgba(99, 102, 241, 0.5)',\n                fill: true\n            },\n            {\n                label: 'Unknown',\n                data: [388,291,279,231,315,266,239,211,204,199,161,158,187,278,219],\n                borderColor: 'rgba(200, 200, 200, 1)',  \/\/ Grey\n                backgroundColor: 'rgba(200, 200, 200, 0.75)',\n                fill: true\n            }\n        ]\n    },\n    options: {\n        responsive: true,\n        maintainAspectRatio: false,\n        scales: {\n            y: {\n                stacked: true,\n                beginAtZero: true\n            }\n        },\n        plugins: {\n            legend: {\n                position: 'bottom'\n            }\n        }\n    }\n});\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">The Road is level<\/h2>\n\n\n\n<p>Road has seen a 2.25% decrease in enquiries year on year in Q3. This is not unexpected given the rough winter we have experienced, and possibly also due to some cannibalisation by the gravel bikes segment. Historically summer is road bike season, so we&#8217;ll need to see what Q4 delivers.<\/p>\n\n\n\n<p>Interestingly, while the bulk of enquiries sit in the under R25k price bracket, the 25-50k price band showed the only increase in enquiries year on year.<\/p>\n\n\n\n<div style=\"min-height:400px\">\n  <canvas id=\"roadChart\"><\/canvas>\n<\/div>\n\n<script>\n  const ctx1 = document.getElementById('roadChart');\n\n  new Chart(ctx1, {\n    type: 'bar',\n    data: {\n      labels: ['Q3 2021', 'Q3 2022', 'Q3 2023', 'Q3 2024'],\n      datasets: [{\n        label: '<= R25k',\n        data: [3098,2205,1974,1928],\n        borderWidth: 1\n      },\n      {\n        label: 'R25-50k',\n        data: [891,781,646,712],\n        borderWidth: 1\n      },\n      {\n        label: 'R50-75k',\n        data: [246,227,298,234],\n        borderWidth: 1\n      },\n      {\n        label: '> R75k',\n        data: [162,146,274,246],\n        borderWidth: 1\n      }]\n    },\n    options: {\n      scales: {\n      x: {\n        stacked: true,\n      },\n      y: {\n          beginAtZero: true,\n          stacked: true,\n      }\n      },\n      responsive: true,\n      maintainAspectRatio: false,\n      plugins: {\n       legend: {\n         position: 'bottom',\n       },\n       title: {\n         display: true,\n         text: 'Road bike interest'\n       }\n    }\n    }\n  });\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Hardtail MTB contracts<\/h2>\n\n\n\n<p>Hardtail MTBs are down 6.25% year on year for Q3 after a stable Q1 and Q2. Once again, the majority of the enquiries focus on the under R25k price band. <\/p>\n\n\n\n<p>It&#8217;s possible that some hardtail sales are being lost to reduced pricing on dual suspension mountain-bikes.<\/p>\n\n\n\n<div style=\"min-height:450px\">\n  <canvas id=\"htChart\"><\/canvas>\n<\/div>\n<script>\nconst ctx7 = document.getElementById('htChart').getContext('2d');\nconst myChart4 = new Chart(ctx7, {\n    type: 'bar',\n    data: {\n        labels: ['Q1 2021', 'Q2 2021', 'Q3 2021', 'Q4 2021', 'Q1 2022', 'Q2 2022', 'Q3 2022', 'Q4 2022', 'Q1 2023', 'Q2 2023', 'Q3 2023', 'Q4 2023', 'Q1 2024', 'Q2 2024', 'Q3 2024'],  \/\/ Ordered by year and quarter\n        datasets: [\n            {\n                label: '<= R25k',\n                data: [4645,3453,3895,3494,3228,2786,2715,2528,2357,1836,1948,1958,2328,1854,1785],\n                borderColor: 'rgba(34, 197, 94, 1)',  \/\/ Green-500\n                backgroundColor: 'rgba(34, 197, 94, 0.5)',\n                fill: true\n            },\n            {\n                label: 'R25-R50k',\n                data: [267,221,261,203,256,149,142,83,86,162,73,64,99,98,109],\n                borderColor: 'rgba(59, 130, 246, 1)',  \/\/ Blue-500\n                backgroundColor: 'rgba(59, 130, 246, 0.75)',\n                fill: true\n            },\n            {\n                label: 'R50-R75k',\n                data: [19,6,9,11,10,1,3,7,11,5,7,15,3,15,2],\n                borderColor: 'rgba(234, 179, 8, 1)',  \/\/ Yellow-500\n                backgroundColor: 'rgba(234, 179, 8, 0.5)',\n                fill: true\n            },\n            {\n                label: '> R75k',\n                data: [29,33,18,11,3,4,14,2,4,0,3,4,12,14,7],\n                borderColor: 'rgba(249, 115, 22, 1)',  \/\/ Orange-500\n                backgroundColor: 'rgba(249, 115, 22, 0.5)',\n                fill: true\n            }\n        ]\n    },\n    options: {\n        responsive: true,\n        maintainAspectRatio: false,\n        scales: {\n            y: {\n                stacked: true,\n                beginAtZero: true\n            },\n      x: {\n        stacked: true,\n      },\n        },\n        plugins: {\n            legend: {\n                position: 'bottom'\n            }\n        }\n    }\n});\n<\/script>\n\n\n\n<p class=\"has-secondary-color has-text-color has-link-color has-small-font-size wp-elements-727fac6b400e096fc59e2a29b26bb0d6\"><strong>Disclaimers:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list has-secondary-color has-text-color has-link-color has-small-font-size wp-elements-af257da1b5993846e2dced82bbd554b1\">\n<li>We are reporting on data from the Bike Hub marketplace only, which may not reflect the wider industry.<\/li>\n\n\n\n<li>Unique enquiries count one enquiry per user per ad, even if the user clicked multiple times or used multiple contact methods.<\/li>\n\n\n\n<li>User region data accuracy is based on IP address geolocation services by MaxMind, with 60-80% accuracy.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-cyan-bluish-gray-color has-text-color has-link-color has-small-font-size wp-elements-4731971673c67c5cf9d353257b77b8d9\"><strong>Thumbnail image credit:<\/strong> DALL\u00b7E<\/p>\n\n\n\n<div class=\"wp-block-group has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"background-color:#becdda\">\n<p><strong>Keen to know more?<\/strong><\/p>\n\n\n\n<p>Like us, you might end up with more questions than when you started. Pop your questions in the comments, and we\u2019ll do our best to answer them.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;ve been checking in every quarter to assess demand in our marketplace. In the first quarter of 2024 we noted that demand appeared to be stabilising after the COVID bicycle boom, and subsequent reset. In the second quarter of 2024 we saw a 5% increase in demand year on year, offering reassurance that equilibrium has [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":70149,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5332],"tags":[201,5357,200],"featured_location":[338],"class_list":["post-69971","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-industry","tag-bike-hub","tag-quarter-turn","tag-year-in-review","featured_location-bottom-row"],"_links":{"self":[{"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/posts\/69971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/comments?post=69971"}],"version-history":[{"count":46,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/posts\/69971\/revisions"}],"predecessor-version":[{"id":70148,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/posts\/69971\/revisions\/70148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/media\/70149"}],"wp:attachment":[{"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/media?parent=69971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/categories?post=69971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/tags?post=69971"},{"taxonomy":"featured_location","embeddable":true,"href":"https:\/\/bikehub.co.za\/news\/wp-json\/wp\/v2\/featured_location?post=69971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}