‘Cresting at the right time’: Franken wins, Reynolds forsakes fellow Republicans, and other takeaways from the primary election

Mike Franken speaking at a campaign event at NewBo City Market in Cedar Rapids, Saturday, June 4, 2022. — Malcolm MacDougall/Little Village

Retired Adm. Mike Franken easily defeated Abby Finkenauer to win the Democratic nomination for U.S. Senate in what was the highest profile contested race in the nation on Tuesday. Franken won 55.2 percent of the vote and carried 76 of Iowa’s 99 counties, including Johnson and Linn, according to the unofficial totals published by the Secretary of State’s Office for the June 7 primary election.

Franken’s lead was established as soon as the first results were reported after the polls closed at 8 p.m. on Tuesday, and he never lost it. Decision Desk HQ was able to call the race for Franken only 42 minutes after the polls closed. The Associated Press waited an additional 29 minutes before declaring Franken the winner.

Finkenauer won 40 percent of the vote and finished first in 23 counties. A third candidate, Glenn Hurst, received 4.8 percent, winning no counties.

Finkenauer was considered the frontrunner in the race even before she officially declared her candidacy in July 2021. As a former member of the Iowa House of Representatives and having served one term in Congress before being defeated for reelection in 2020, Finkenauer came into the race with as much, or more, statewide name recognition as any potential Democratic candidate. She quickly gained endorsements from many elected officials, Iowa labor union locals and national groups like Emily’s List. Finkenauer raised an impressive $1 million during the first three months of her campaign.

Franken, whose only previous campaign experience was an unsuccessful run for the U.S. Senate in the 2020 Democratic primary, did not start his campaign until the middle of October 2021, although he had announced his intention to run two months earlier.

Johnson County residents vote in the primary election at the Senior Center on Tuesday, June 7, 2022, in Iowa City. — Adria Carpenter/Little Village

Although Finkenauer was still widely considered the frontrunner for the nomination well into 2022, Franken’s campaign grew steadily. FEC campaign finance reports for the first quarter of the year showed Franken had outraised Finkenauer, $1,397,843 to $1,154,637, during the period ending March 41. FEC reports covering April 1 to May 18, Franken outraised both Finkenauer and incumbent Sen. Chuck Grassley. .

Franken raised $1,034,655 during those seven weeks, while Finkenauer brought in $653,119 and Grassley raised $462,520. It was the first time Franken or any Democrat had outraised Grassley in the race.. Even with that success both Finkenauer and Grassley had more cash on hand than Franken as of May 18, according to the FEC reports.

“We’re cresting at the right time,” Franken told audiences of enthusiastic Democrats in Cedar Rapids and Iowa City during his final cross-state campaign swing last weekend.

His campaign had a commercial on TV in April, a month before Finkenauer’s first campaign ad aired. Franken’s ad, called “Lifetime,” focused on introducing him to voters, sketching his life story from growing up in rural Sioux County, working in a meatpacking plant during college, and his 39-year-long naval career in which he rose to the rank of vice admiral, before retiring and “returning home to Iowa instead of taking orders from Donald Trump.”

The commercial was apparently effective.

Laura Belin, in her election analysis at Bleeding Heartland, noted that Franken “swept the counties that are part of the Des Moines and Cedar Rapids markets, where he focused his spending.”

“In contrast, Finkenauer outpolled Franken in several clusters of counties where the admiral’s campaign was not up on television,” Belin wrote. “Most were in southeast Iowa (Quad Cities and Quincy, Illinois markets), southwest Iowa (Omaha market), or near the northern border (Rochester, Minnesota market).”

“Mike ran a great campaign rooted in our shared values: standing up for working people, delivering better health care and child care for every family, and doing the hard work to defend our democracy,” Finkenauer said in her concession statement.

On the Republican side, the primary was decided almost the moment polls closed. Seven-term incumbent Chuck Grassley won every county in the state, earning 73.5 percent of the vote against his only competitor for the Senate nomination, state Sen. Jim Carlin. Carlin ran to Grassley’s right, portraying himself as a more faithful representative of Donald Trump’s vision for America, despite the fact that Trump endorsed Grassley last October.

Neither Gov. Kim Reynolds nor Democrat Deidre DeJear had challengers in the primary runs for governor, but Reynolds was very active in other campaigns.

Reynolds engaged in an unprecedented effort to defeat five Republican incumbents in the Iowa House who would not vote for her plan to divert tax money from public schools to private schools, including religious schools that engage in forms of discrimination that are illegal for public institutions. The governor endorsed and worked on behalf of challengers to those five representatives, and four of them were defeated.

It wasn’t just the governor taking extraordinary action to promote the use of public funds at private schools during the primary. National organizations that favor school voucher-style programs spent heavily in various races to promote their agenda.

Other contested state races on Tuesday included one for the Democratic nomination for Secretary of State. Linn County Auditor Joel Miller defeated Clinton County Auditor Eric Van Lanker. Miller won with 71.7 percent of the vote, and carried every county except Clinton. In the November election, Miller will face incumbent Paul Pate, who was unopposed for the Republican nomination.

Johnson County residents vote in the primary election at the Senior Center on Tuesday, June 7, 2022, in Iowa City. — Adria Carpenter/Little Village

In contested elections for the state legislature, Janice Weiner won the Democratic nomination in Senate District 45, a seat that became open when Joe Bolkcom, who represented Iowa City in the state Senate for over 20 years, announced he would not seek reelection. Weiner, a member of the Iowa City Council, earned 86 percent of the vote, and given the political demographics of the district, is virtually assured a victory in November.

“I’m really gratified, but it’s also a huge challenge,” Weiner said in a speech to supporters at an election night party at Big Grove Brewery and Taproom. “It’s a mandate to go out and work.”

There is currently no Republican candidate for Senate District 45.

In Linn County, Liz Bennett won the Democratic nomination for the open seat in Senate District 39, which covers much of Cedar Rapids. Bennett, who is in her fourth term representing Cedar Rapids in the Iowa House, made history in 2014 by becoming the first openly LGBTQ woman elected to the Iowa Legislature. On Tuesday, she won with 70.3 percent of the vote. Bennett will face Republican Edward “Bernie” Hayes in November. Hayes was unopposed in the primary. The district is heavily Democratic, and Bennett is expected to win.

Molly Donahue, another Cedar Rapids Democrat running to move from the Iowa House to the Iowa Senate, defeated first-time candidate Austen Frerick by just 143 votes out of the total of 4,687 votes cast in Iowa Senate District 37. No Republican ran for the party’s nomination in the district.

Democrats Elinor Levin in Iowa House District 89 and Adam Zabner in Iowa House District 90 both won their primary races. Neither Iowa City district currently has a Republican candidate.

Johnson County residents vote in the primary election at the Senior Center on Tuesday, June 7, 2022, in Iowa City. — Adria Carpenter/Little Village

Both Johnson and Linn had contested Democratic primaries for their boards of supervisors on Tuesday.

In Johnson County, there were three Democratic candidates for the two seats on the ballot. Incumbent Jon Green finished in first place with 69 percent of the vote. With 67 percent of the vote, first-time candidate V Fixmer-Oraiz secured the nomination for the seat left open by Pat Heiden’s decision not to run reelection. Seth Zimmerman finished a close third, with 64 percent of the vote.

Republican candidates for the board, Phil Hemingway and Jammie Bradshaw, were unopposed in their primary.

There was a close three-way race for the open seat on the Linn County Board of Supervisors in District 1, which state Rep. Kirsten Running-Marquardt won with 37.5 percent of the vote. In the November election, she will face former Ely City Councilmember Mark Banowetz, who was unopposed in the Republican primary.

Even though there are several races across the state currently lacking a candidate from one of the two major parties, nominees for the November election can be selected during party state conventions. The Iowa Republican Party will hold its state convention in Des Moines on Saturday. The Iowa Democratic Party’s state convention is scheduled for a week later on June 18.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/primary-election-franken-grassley-reynolds-dejear/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Name</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="250"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>