For decades, Saturday Night Live’s political impressions almost entirely went to cast members. Historically, it’s been a mixed bag between the completely forgettable (remember Mark McKinney’s Al Gore during the 1996 election?)and generationally definitive (Dana Carvey’s George Bush, Will Ferrell’s George W. Bush) works of satire. But the debut of Tina Fey’s Sarah Palin in fall 2008 changed everything. It was one of the greatest political impressions ever performed, and the fact that it was the first major political SNL impersonation cast by the public remains a huge part of its legacy. And because Lorne Michaels always revisits what works, he followed the success of Fey’s Palin by doubling down on celebrities playing politicians in 2016, then tripled down during the Trump administration. As a result, SNL went from not casting anyone to play Joe Lieberman until after the 2000 election to today, when as soon as a nominee is announced, prospective celebrity roles start trending online and being debated on cable news.
With the biggest political figures cast well in advance for SNL’s 50th season — Maya Rudolph as Kamala Harris and (presumably) James Austin Johnson as Donald Trump — the public still wants to have a say in who they watch on Saturday nights (Sunday mornings on YouTube) and are voicing their casting ideas for the prospective VPs, Tim Walz and J.D. Vance. But not all predictions are equal. Based on what names have been floating around, here is who we think won’t be doing it, who might do it, and who we’re placing our bets on.
Tim Walz
Photo: Andrew Harnik/Getty Images
Who definitely won’t play him:
Walz is a white-haired man with glasses who is pretty tall. He’s also a progressive dad who governs Minnesota, so people associate him with being really nice. All these traits lend themselves to a type that people — or at least Vanity Fair— associate with beloved family-friendly stand-up comic Jim Gaffigan. Vanity Fair’s speculation also includedParks and Recreation alum Jim O’Heir in the lineup of suspects for seemingly no other reason than the fact that he can pull off “folksy energy” and once played a nice man on a TV show. Tracy Letts, a dramatic actor, was suggested in an X post from New Yorker writer Michael Schulman, but aside from his hair and glasses, it’s a nonsensical suggestion for something on a sketch-comedy show and not a Drama Desk Award nominee. Drew Carey’s bespeckled face also made some people go “Ooh! Maybe?”
But none of these ideas make sense for a half-century-old institution that has a particular way of doing things. These gigs are typically handed to people who have a prior relationship with the show, either as a host or former cast member, and none of the above options have that sort of relationship with SNL. Gaffigan made one nonspeaking appearance in a pre-taped sketch in 1996 (presumably cast as a regular actor from a pool of hopefuls, considering this was pre–Hot Pockets fame), but otherwise, these men are simply not on Michaels’s radar. Plus, none of them are obvious enough choices that a live studio audience would go wild when they first appear in character like they did for Larry David as Bernie Sanders. Making the studio audience go wild is basically the point of bringing in a big guest star!
The most popular and convincing contender the internet clamored for, of course, was Steve Martin, but the day after Walz’s announcement, he had already turned down the role. “I wanted to say no and, by the way, he wanted me to say no,” Martin told the Los Angeles Times. “I said, ‘Lorne, I’m not an impressionist. You need someone who can really nail the guy.’ I was picked because I have gray hair and glasses.”
Who could play him:
If you want an impressionist who is associated with the show, Darrell Hammond is already serving as the show’s announcer. He’s only seven years older than Walz, can impersonate anyone, and featuring him on-camera again would be a nice throwback as the show enters its 50th season. Al Franken is less known as an impressionist but would also bring the nostalgia factor, plus he has the Minnesota-politics connection. But the public has come to expect the likes of Matt Damon and Melissa McCarthy in even supporting political roles now, so it’s difficult to imagine either making much of a splash as acts of stunt casting.
John Goodman is a name that’s been floated on X and would cause a bigger reaction from the audience. Besides having hosted the show 13 times, Goodman played Linda Tripp on the show five times in the late ’90s, including once during an episode he hosted. He also played Rex Tillerson on “Weekend Update” in 2018. He’s got the dad thing down and could possibly play a former high-school football coach. He is a little too old (he’s 73, and Walz is 60), but that really doesn’t matter. This biggest strike against Goodman is that he is bigger and brassier than Walz.
Another possibility is Mike Myers, who has a round face and white hair now. His default comedic persona is not as low-key and midwestern as Walz, but he’s also an extremely gifted character comedian. Also, it would be nice to have him around as the show builds up to the 50th-anniversary celebration. Like Goodman, he’s not local, but the VP generally needs to be featured in only two episodes, so the travel is easy.
If they aren’t going to appear that often during the lead-up to the election aside from the VP debate cold open and maybe the season premiere, Michaels might give the role to a cast member to give them a spotlight. As the cast member with the best impersonation skills, James Austin Johnson seems like the best bet. Yes, he already plays Trump, but that isn’t without precedent; Hammond famously played Al Gore and Dick Cheney in the early 2000s. Something that jumps out about that Martin quote to the L.A. Times is that Michaels reportedly wanted him to say no. That suggests Michaels may want to go with a cast member, because if it was another celebrity, he would’ve just asked them first.
Who we think will play him:
Steve Martin. Yeah, we know what he told the L.A. Times, but we’re not buying it. Maybe he is lying to set up the eventual surprise. Maybe has yet to be convinced. Either way, he still seems most likely. He acts as if having white hair and glasses isn’t enough, but having white hair and glasses was why the show cast him to play Roger Stone in 2019.
Walz is a role that will definitely go to someone in the SNL family, and there’s no one more in the family than Martin. Walz aside, between it being the show’s landmark 50th season and Martin having a season of Only Murders in the Building to promote, he was likely going to host an episode anyway.
J.D. Vance
Photo: Drew Hallowell/Getty Images
Who definitely won’t play him:
Vance is white and has brown hair and a beard, so the field is extremely wide. Paul Walter Hauser hasbeenfloated by multiple X users as an option, having recently showcased his comedic chops on I Think You Should Leave and the world of pro wrestling. Vanity Fair also named Haley Joel Osment as an option, whose appearances on shows like What We Do in the Shadows and Robot Chicken have more than proven his comedic merit. But, again, neither of these men have hosted SNL, so the odds that Michaels would reach out are slim. Also, despite being award-winning actors, they are not the level of famous that would make people scream loudly the moment the camera cuts to them. Again, the live audience’s reaction is the entire point of not using your existing cast!
Who could play him:
Based on Vance’s youth (he’s only 40 years old), there are several options from the cast. (James Austin Johnson is probably off the table since he’s doing Trump and, hypothetically to us, Walz.) Mikey Day is the show’s No. 2 white guy right now, and considering Michaels tried to have Day take over Biden last year to set him up for this season, clearly he was planning on showcasing Johnson and Day going into the 50th. Colin Jost, however, is the show’s No. 1 white guy and probably could pull it off with a fake beard. His only other major impression on the show was Pete Buttigieg in 2019 and 2020, a role he seemed to get only because they both went to Harvard. (Maybe Yale is enough like Harvard to get him the gig?) Michael Longfellow and Andrew Dismukes could also be chosen, but neither seem to have the right vibe, not to mention there would be such a fame imbalance if paired with Steve Martin, who is still our bet.
There are some past cast members who have been floated for Vance on X and in publications like the Daily Beast. He shares a passing similarity to Taran Killam, and since Killam left the show in 2016on tense terms (and was public about his frustrations with Michaels having Trump host in 2015), casting him as Vance could serve as an act of peacemaking for the show’s 50th season. Will Forte, who was floated by political journalist Jessica Yellin, has more of an audience-pop factor, but he never seemed comfortable doing straight political impressions, like when took over George W. Bush in 2004 only to be replaced by Jason Sudeikis in 2006. Yellin also floated Sudeikis, who had success impersonating Biden during the Obama years. When he was on the show, Sudeikis’s impersonations were more fun-loving than hard-hitting satirical, so would be a wrong fit here. Aidy Bryant is not only a guaranteed pop but excels at satirizing snide pieces of shit in Trump’s orbit, like William Barr in 2019 and especially Ted Cruz in 2021 and 2022. She seems like the most likely option if the show doesn’t choose a current cast member or former host.
Zach Galifianakis got some tweets and a Daily Beast mention as a former-host option. It’s hard to see why that is other than the beard, but to be fair, he does have a beard. Also, Galifianakis is on the new season of Only Murders with Martin. But Galifianakis hasn’t appeared on SNL since the 40th-anniversary special in 2015, so it’s possible he isn’t on the show’s radar for cameos or drop-ins. Of the past hosts, Shane Gillis jumps out as a particularly charged option. Michaels is clearly very fond of Gillis and has expressed regrets about what happened to him. Gillis doesn’t look that much like Vance, but the two have partially overlapping fan bases of die-hard conspiracy-theory-curious dudes. He doesn’t have the pop factor, but it would get a lot of attention online.
Who we think will play him:
Martin Short! He looks absolutely nothing like Vance and is significantly older, but Short wouldn’t be cast in a vacuum. Getting Short onboard would be part of the reason Martin accepts playing Walz, whether it’s Martin’s, Michaels’s, Short’s, or honestly, our idea.
Marty is prone to do some normie political comedy from time to time and has a history of playing annoying characters with odious personalities. Sure, it wouldn’t extend post-election, but it’s hard to imagine Maya Rudolph making weekly appearances as Kamala Harris after November too. Right now, Michaels isn’t looking for a J.D. Vance for a long time, but a good time, which in this case would literally be a Short time. While presidential elections happen every four years, 50th seasons of television shows happen only once. Politics aside, Michaels will always support nostalgia, self-reference, and casting his friends.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]