{"id":16025,"date":"2025-04-03T19:08:50","date_gmt":"2025-04-03T19:08:50","guid":{"rendered":"https:\/\/wifamily.news\/?p=16025"},"modified":"2025-04-03T19:56:40","modified_gmt":"2025-04-03T19:56:40","slug":"troubled-milwaukee-streetcar-remains-30-under-pre-pandemic-peak-despite-new-tracks","status":"publish","type":"post","link":"https:\/\/wifamily.news\/?p=16025","title":{"rendered":"Troubled Milwaukee streetcar remains 30% under pre-pandemic peak despite new tracks"},"content":{"rendered":"<p>This post originally appeared at <a href=\"https:\/\/www.badgerinstitute.org\/troubled-milwaukee-streetcar-remains-30-under-pre-pandemic-peak-despite-new-tracks\/\">https:\/\/www.badgerinstitute.org\/troubled-milwaukee-streetcar-remains-30-under-pre-pandemic-peak-despite-new-tracks\/<\/a><\/p>\n<h4 class=\"wp-block-heading\"><em><strong>End of federal money makes city scramble to cover operating costs of the Hop<\/strong><\/em><\/h4>\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1315\" height=\"961\" src=\"https:\/\/e74sq7k37a8.exactdn.com\/wp-content\/uploads\/2025\/04\/mke-hop-revenue-expenditures-web.jpg?strip=all&amp;lossy=1&amp;ssl=1\" alt=\"Image of Milwaukee\u2019s troubled streetcar, the Hop, recreated in a mosaic art style.\" class=\"wp-image-55396\" style=\"width:409px;height:auto\" \/><\/figure>\n<\/div>\n<p>Despite a much ballyhooed second line added last April, ridership on Milwaukee\u2019s financially challenged streetcar, the Hop, last year was still nearly 30% below that of pre-COVID 2019.<\/p>\n<p>And with the evaporation of federal American Rescue Plan Act funds that in 2022 covered nearly 65 percent of the streetcar\u2019s operating cost, the City of Milwaukee is using Transportation Fund money to plug a $4 million hole in a $5.7 million operating budget for 2025.<\/p>\n<p>The city\u2019s Department of Public Works made up most of the streetcar\u2019s operating deficit last year with millions diverted from revenue generated by a steep increase in parking ticket fines, as the Badger Institute<a href=\"https:\/\/www.badgerinstitute.org\/free-milwaukee-streetcar-costing-over-5-million-annually\/\" target=\"_blank\" rel=\"noreferrer noopener\"> reported<\/a> in October.<\/p>\n<p>In January, however, the city chose not to spend $25 million on the streetcar because of a stipulation in a <a href=\"https:\/\/www.badgerinstitute.org\/state-lawmakers-want-cops-back-in-milwaukee-public-schools-but-no-more-money-for-the-hop\/\" target=\"_blank\" rel=\"noreferrer noopener\">2023 budget agreement<\/a> with the state that prohibits the city from using shared revenue to improve the system.<\/p>\n<p>More federal money to expand the tracks, meanwhile, is increasingly unlikely.<\/p>\n<p>\u201cI think it is going to be much less likely now,\u201d said Baruch Feigenbaum, senior managing director of transportation policy for the Reason Foundation. \u201cThe streetcar is not the type of thing this administration wants to fund.\u201d<\/p>\n<p>Attempts to get the streetcar \u2014 which has never taken fares \u2014 on some kind of financial footing has also been hamstrung by the absence since last October of a system manager after Andrew Davis-Lockward resigned under pressure.<\/p>\n<p>An engineering consulting firm, HNTB, has been assisting in the operation of the Hop, but the posting for the job \u2014 at an annual salary range of $116,493 to $127,413 \u2014 was delayed by months and extended until March 21.<\/p>\n<p>Chuck Schumacher, operations manager for the city\u2019s Department of Public Works, told the Common Council\u2019s Public Works Committee in February it might be June before a new system manager is in place.<\/p>\n<p>After a series of derailments and stoppages due to snow in February, city officials said they had lost confidence in Transdev, a French company that oversees the Hop\u2019s day-to-day operations. The city criticized the company\u2019s failure to properly investigate the derailments, which revealed car wheels \u201cworn to a state of near condemnation.\u201d<\/p>\n<p>\u201cThere\u2019s a lot of things that seem to be going wrong that are a function of operation and management and supervision and not the Hop itself,\u201d Alderman Robert Bauman, chair of the Public Works Committee, told <a href=\"https:\/\/www.wisn.com\/article\/unacceptable-milwaukee-alderman-calls-out-recurring-issues-with-the-hop\/63907561\" target=\"_blank\" rel=\"noreferrer noopener\">WISN<\/a>-TV in February. \u201cThese types of systems operate just fine in other cities. Why we\u2019re all of a sudden having these problems is a question I really direct to the Department of Public Works.\u201d<\/p>\n<p>When asked this week about management of the Hop, Bauman, a longtime cheerleader for the project, told the Badger Institute, \u201cTalk to the mayor. Streetcar management and the budget office report to him.\u201d<\/p>\n<p>Mayor Cavalier Johnson is keeping an eye on the Hop operation and its search for a new manager, but he has no direct control over either, spokesperson Jeff Fleming told the Badger Institute this week.<\/p>\n<p>\u201cThis is something that\u2019s entirely a DPW matter,\u201d Fleming said. \u201cHe\u2019s not directing DPW one way or the other.\u201d<\/p>\n<p>The lack of a system manager may be behind the Hop\u2019s not posting monthly ridership totals from last August until this past month. Total ridership for 2024 was<strong> <\/strong>532,460<strong> <\/strong>passengers, up 7.7% over the 494,445<strong> <\/strong>passengers in 2023.<\/p>\n<p>In 2019, in its first full year of operation, more than 760,000 passengers, nearly 43% more than last year, rode the Hop.<\/p>\n<p>A look at the<a href=\"https:\/\/thehopmke.com\/ridership\/\" target=\"_blank\" rel=\"noreferrer noopener\"> monthly totals<\/a> shows ridership was down last July, despite the city hosting the Republican National Convention and its annual Bastille Days that month. The Summerfest music festival boosted Hop traffic in late June.<\/p>\n<p>However, after Summerfest ended, the Common Council voted to discontinue what was called the Festivals Line \u2014 combined service from all points on both lines to the lakefront \u2014 because it caused delays for regular streetcar riders on their way from the city\u2019s Third Ward to Downtown.<\/p>\n<p>In most months of 2024, ridership was up no more than a couple of hundred a day. Ridership dropped in the last two months of 2024, according to Hop data. There are no ridership totals for the first three months of 2025.<\/p>\n<p>The second Line, known as the L Line, extends west from the Couture apartments on lakefront to the original M Line in April of 2024. The original loop was 2.1 miles and the L Line added another 0.4-mile segment.<\/p>\n<p>\u00a0\u201cThis is a milestone years in the making, and we couldn\u2019t be more excited to finally provide streetcar service directly to Milwaukee\u2019s lakefront,\u201d Jerrel Kruschke, the city\u2019s Public Works Commissioner, said when the L Line opened.<\/p>\n<p>The L Line has averaged 165 rides a day compared to 1,355 for the M Line, despite having essentially the same hours and days of operation since April 11, according to data provided to the Badger Institute by city DPW.<\/p>\n<p>The L Line has averaged 3,126 rides a month since April 11, compared to 25,744 rides on the M Line, according to the DPW data.<\/p>\n<p>The Badger Institute has, since last Oct. 21, been waiting for the DPW to fulfill a request for daily ridership counts for each of the streetcar lines. Four days later, a DPW spokesperson asked for $236.21 to cover the labor of retrieving the ridership counts.<\/p>\n<p>On Dec. 3, the spokesperson emailed in response to an inquiry to say the work had not been done but, \u201cThe department is working on your request diligently and it is a process since our streetcar manager is longer with the city. We have other employees working with outside sources to get you the information you seek.\u201d<\/p>\n<p>The DPW has still not fulfilled the Badger Institute request and has not returned our check.<\/p>\n<p><em>Mark Lisheron is the Managing Editor of the Badger Institute.<\/em><\/p>\n<p><em>Any\u00a0use or reproduction of Badger Institute articles or photographs requires prior written\u00a0permission.\u00a0To request permission to post articles on a website or print copies for distribution, contact Badger Institute President Mike Nichols at\u00a0<a href=\"mailto:mike@badgerinstitute.org\" target=\"_blank\" rel=\"noreferrer noopener\">mike@badgerinstitute.org<\/a>\u00a0or 262-389-8239.<\/em><\/p>\n<p>var gform;gform||(document.addEventListener(&#8220;gform_main_scripts_loaded&#8221;,function(){gform.scriptsLoaded=!0}),document.addEventListener(&#8220;gform\/theme\/scripts_loaded&#8221;,function(){gform.themeScriptsLoaded=!0}),window.addEventListener(&#8220;DOMContentLoaded&#8221;,function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=&gt;&#8221;function&#8221;==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&amp;&amp;!gform.isFormEditor()||(gform.isFormEditor()&amp;&amp;console.warn(&#8220;The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.&#8221;),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(&#8220;gform_main_scripts_loaded&#8221;,()=&gt;{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(&#8220;gform\/theme\/scripts_loaded&#8221;,()=&gt;{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(&#8220;DOMContentLoaded&#8221;,()=&gt;{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(&#8220;action&#8221;,o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(&#8220;filter&#8221;,o,r,e,t)},doAction:function(o){gform.doHook(&#8220;action&#8221;,o,arguments)},applyFilters:function(o){return gform.doHook(&#8220;filter&#8221;,o,arguments)},removeAction:function(o,r){gform.removeHook(&#8220;action&#8221;,o,r)},removeFilter:function(o,r,e){gform.removeHook(&#8220;filter&#8221;,o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&amp;&amp;(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&amp;&amp;(n=r+&#8221;_&#8221;+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&amp;&amp;((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){&#8220;function&#8221;!=typeof(t=o.callable)&amp;&amp;(t=window[t]),&#8221;action&#8221;==r?t.apply(null,e):e[0]=t.apply(null,e)})),&#8221;filter&#8221;==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&amp;&amp;(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&amp;&amp;n!=o.tag||null!=t&amp;&amp;t!=o.priority)}),gform.hooks[o][r]=e)}});<\/p>\n<div class=\"gf_browser_chrome gform_wrapper gravity-theme gform-theme--no-framework\" data-form-theme=\"gravity-theme\" data-form-index=\"0\" id=\"gform_wrapper_21\">\n<div id=\"gf_21\" class=\"gform_anchor\"><\/div>\n<div class=\"gform_heading\">\n<h2 class=\"gform_title\">Submit a comment<\/h2>\n<p class=\"gform_description\">\n<p class=\"gform_required_legend\">&#8220;<span class=\"gfield_required gfield_required_asterisk\">*<\/span>&#8221; indicates required fields<\/p>\n<\/p><\/div>\n<div class=\"gf_invisible ginput_recaptchav3\" data-sitekey=\"6LeuCC4pAAAAAECxtc6sr-MNi7Rw8mnOTxb-_ZsL\" data-tabindex=\"0\"><\/div>\n<div class=\"gform-body gform_body\">\n<div id=\"gform_fields_21\" class=\"gform_fields top_label form_sublabel_above description_above validation_below\">\n<fieldset id=\"field_21_1\" class=\"gfield gfield--type-name gfield--input-type-name gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\" data-js-reload=\"field_21_1\">\n<legend class=\"gfield_label gform-field-label gfield_label_before_complex\">Your name<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/legend>\n<div class=\"ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row\" id=\"input_21_1\">\n<p>                            <span id=\"input_21_1_3_container\" class=\"name_first gform-grid-col gform-grid-col--size-auto\"><br \/>\n                                                    <label for=\"input_21_1_3\" class=\"gform-field-label gform-field-label--type-sub \">First<\/label><\/p>\n<p>                                                <\/span><\/p>\n<p>                            <span id=\"input_21_1_6_container\" class=\"name_last gform-grid-col gform-grid-col--size-auto\"><br \/>\n                                                            <label for=\"input_21_1_6\" class=\"gform-field-label gform-field-label--type-sub \">Last<\/label><\/p>\n<p>                                                        <\/span><\/p><\/div>\n<\/fieldset>\n<div id=\"field_21_2\" class=\"gfield gfield--type-email gfield--input-type-email gfield--width-half gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\" data-js-reload=\"field_21_2\"><label class=\"gfield_label gform-field-label\" for=\"input_21_2\">Your email<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><\/p>\n<div class=\"ginput_container ginput_container_email\"><\/div>\n<\/div>\n<div id=\"field_21_7\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\" data-js-reload=\"field_21_7\"><label class=\"gfield_label gform-field-label\" for=\"input_21_7\">Zip Code<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><\/p>\n<div class=\"ginput_container ginput_container_text\"><\/div>\n<\/div>\n<div id=\"field_21_3\" class=\"gfield gfield--type-textarea gfield--input-type-textarea gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\" data-js-reload=\"field_21_3\"><label class=\"gfield_label gform-field-label\" for=\"input_21_3\">Your comment<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><\/p>\n<div class=\"ginput_container ginput_container_textarea\"><textarea name=\"input_3\" id=\"input_21_3\" class=\"textarea small\" rows=\"10\" cols=\"50\"><\/textarea><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"gform-footer gform_footer top_label\"><\/div>\n<p class=\"akismet-fields-container\" data-prefix=\"ak_\"><label>\u0394<textarea name=\"ak_hp_textarea\" cols=\"45\" rows=\"8\"><\/textarea><\/label>document.getElementById( &#8220;ak_js_1&#8221; ).setAttribute( &#8220;value&#8221;, ( new Date() ).getTime() );<\/p>\n<\/p><\/div>\n<p>\/* = 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find(&#8216;#gform_wrapper_21&#8217;);var is_confirmation = jQuery(this).contents().find(&#8216;#gform_confirmation_wrapper_21&#8217;).length &gt; 0;var is_redirect = contents.indexOf(&#8216;gformRedirect(){&#8216;) &gt;= 0;var is_form = form_content.length &gt; 0 &amp;&amp; ! is_redirect &amp;&amp; ! is_confirmation;var mt = parseInt(jQuery(&#8216;html&#8217;).css(&#8216;margin-top&#8217;), 10) + parseInt(jQuery(&#8216;body&#8217;).css(&#8216;margin-top&#8217;), 10) + 100;if(is_form){jQuery(&#8216;#gform_wrapper_21&#8217;).html(form_content.html());if(form_content.hasClass(&#8216;gform_validation_error&#8217;)){jQuery(&#8216;#gform_wrapper_21&#8217;).addClass(&#8216;gform_validation_error&#8217;);} else {jQuery(&#8216;#gform_wrapper_21&#8217;).removeClass(&#8216;gform_validation_error&#8217;);}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/ jQuery(document).scrollTop(jQuery(&#8216;#gform_wrapper_21&#8217;).offset().top &#8211; mt); }, 50 );if(window[&#8216;gformInitDatepicker&#8217;]) {gformInitDatepicker();}if(window[&#8216;gformInitPriceFields&#8217;]) {gformInitPriceFields();}var current_page = jQuery(&#8216;#gform_source_page_number_21&#8217;).val();gformInitSpinner( 21, &#8216;https:\/\/e74sq7k37a8.exactdn.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg&#8217;, true );jQuery(document).trigger(&#8216;gform_page_loaded&#8217;, [21, current_page]);window[&#8216;gf_submitting_21&#8217;] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find(&#8216;.GF_AJAX_POSTBACK&#8217;).html();if(!confirmation_content){confirmation_content = contents;}jQuery(&#8216;#gform_wrapper_21&#8217;).replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery(&#8216;#gf_21&#8217;).offset().top &#8211; mt);jQuery(document).trigger(&#8216;gform_confirmation_loaded&#8217;, [21]);window[&#8216;gf_submitting_21&#8217;] = false;wp.a11y.speak(jQuery(&#8216;#gform_confirmation_message_21&#8217;).text());}else{jQuery(&#8216;#gform_21&#8217;).append(contents);if(window[&#8216;gformRedirect&#8217;]) {gformRedirect();}}jQuery(document).trigger(&#8220;gform_pre_post_render&#8221;, [{ formId: &#8220;21&#8221;, currentPage: &#8220;current_page&#8221;, abort: function() { this.preventDefault(); } }]);                if (event &amp;&amp; event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( &#8220;gform_wrapper_21&#8221; );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( &#8220;span&#8221; );            visibilitySpan.id = &#8220;gform_visibility_test_21&#8221;;            gformWrapperDiv.insertAdjacentElement( &#8220;afterend&#8221;, visibilitySpan );        }        const visibilityTestDiv = document.getElementById( &#8220;gform_visibility_test_21&#8221; );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 21, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate &amp;&amp; !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv &amp;&amp; visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) =&gt; {                mutations.forEach( ( mutation ) =&gt; {                    if ( mutation.type === &#8216;attributes&#8217; &amp;&amp; visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ &#8216;style&#8217;, &#8216;class&#8217; ],            });        } else {            triggerPostRender();        }    } );} );<br \/>\n\/* ]]&gt; *\/<\/p>\n<p>The post <a href=\"https:\/\/www.badgerinstitute.org\/troubled-milwaukee-streetcar-remains-30-under-pre-pandemic-peak-despite-new-tracks\/\">Troubled Milwaukee streetcar remains 30% under pre-pandemic peak despite new tracks<\/a> appeared first on <a href=\"https:\/\/www.badgerinstitute.org\">Badger Institute<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post originally appeared at https:\/\/www.badgerinstitute.org\/troubled-milwaukee-streetcar-remains-30-under-pre-pandemic-peak-despite-new-tracks\/ End of federal money makes city scramble to cover&#8230;<\/p>\n","protected":false},"author":3,"featured_media":16027,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-16025","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-badger-institute"],"_links":{"self":[{"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/posts\/16025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wifamily.news\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16025"}],"version-history":[{"count":1,"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/posts\/16025\/revisions"}],"predecessor-version":[{"id":16026,"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/posts\/16025\/revisions\/16026"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wifamily.news\/index.php?rest_route=\/wp\/v2\/media\/16027"}],"wp:attachment":[{"href":"https:\/\/wifamily.news\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wifamily.news\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wifamily.news\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}