Early on in Sidney Lumet’s 1973 film, Serpico, the titular cop, Frank Serpico (Al Pacino), gets sworn in as a member of the NYPD. As he poses for pictures afterward with his family, looking boyish and clean-cut, he gets a goofy expression on his face and flips his police hat around so he’s wearing it backward. It’s a cute moment but also an early signal that Serpico isn’t cut out for the solemn conformity that his colleagues expect of him. Before long, he’s sporting a mustache and starts growing his hair out, looking more like a hippie grad student than a police officer, as his superiors are eager to point out. (We “never had a weirdo cop before,” one says.) When he joins the plainclothes unit, Serpico argues that his eccentricities are an asset — who would ever guess that he’s a cop by looking at him? As the years go by, he grows out a Jesus beard, adds a piercing or two, and really gets to dressing, wearing billowy, half-buttoned shirts; various vests; bucket hats; and assorted jewelry — often all at once. Naturally, he also moves to the West Village, buys a sheepdog, and starts telling his female friends to call him “Paco.”
Meanwhile, his colleagues’ distrust grows. They may not like that he shows off his ballet moves in the office, but they hate that he’s the only plainclothes cop in the city who refuses to take bribes. Over time, Serpico becomes increasingly isolated and paranoid, insisting that he just wants to be able to do his job honestly, but eventually realizing that if he doesn’t expose the extent of the NYPD’s corruption, no one will. In short, Serpico is a cop movie for the Watergate era, in which institutions are revealed to be hopelessly corrupt and most people — even the ones who feel guilty about their complicity — are too spineless to do anything about it.
Thanks to the late costume designer Anna Hill Johnstone (a frequent collaborator of Lumet’s), much of that narrative arc is reflected in the film’s clothing. “She had the ability to accomplish the style of the movie without you ever seeing the style taking place,” Lumet said, pointing out how, for the courtroom scenes, Johnstone dressed everyone in progressively darker colors until Serpico was alone in a sea of black. While dressing Pacino, she presumably got to have a little more fun, drawing style inspiration from the real-life Serpico, who remains an eccentric dresser to this day. (A 2010 New York Times profile of Serpicosays he showed up to each interview in a different outfit: “One day as the sheepherder, the next day as the prospector, then the monk.”) Fifty years after Serpico’s release, internet thirst for early-career Pacino appears to be at an all-time high, in no small part thanks to the iconic looks that Johnstone crafted for the actor.
Below are 16 of Al Pacino’s Serpico fits, ranked correctly and objectively.
16. Uniformed-Cop Serpico
Photo: Paramount Pictures
Serpico’s worst look by far. He gets a few points for being a goofball and flipping his hat around, but otherwise this look is a travesty, stripping the quirky dresser of all his idiosyncrasies in favor of a bland uniform.
15. Summertime Serpico
Photo: Paramount Pictures
This is Serpico at his most innocent — still relatively new to police work and blissfully ignorant of just how widespread the NYPD’s corruption really is. His appearance reflects that naïveté, from his sandals to his short-sleeve button-down to his clean-shaven, cherubic face. It’s not a bad look, but at this point in the film, Serpico’s singular sense of style has yet to emerge.
14. Scumbag Serpico
Photo: Paramount Pictures
As someone who can’t really grow a beard, I feel the need to reprimand Serpico here for wasting his God-given facial-hair talents on this goatee, which makes him look like a scumbag even as his green shirt and leather vest seem to be channeling … Quasimodo? Or maybe a Renaissance fair? Luckily, he fares better with his other facial-hair arrangements.
13. Suit Serpico
Photo: Paramount Pictures
When Serpico eventually testifies against his colleagues, he shows up in a full coat-and-tie ensemble. Even with the little flash of burgundy in his tie, it’s a surprisingly restrained outfit — one that goes against the more bohemianaesthetic he’s established by this point in the film. Of course, that’s the point: Serpico can’t go full oddball if he expects a jury of normies to believe his testimony.
12. Coca-Cola Serpico
Photo: Paramount Pictures
While not a particularly funny movie, Serpico does have one primary source of humor, which is that every so often it cuts to Serpico in one of the many disguises he uses as an undercover cop. Here, he appears to be a butcher, maybe? Or perhaps he just felt like wearing an apron that day.
11. Construction-Worker Serpico
Photo: Paramount Pictures
While stalking a mobster who bribes cops, Serpico wears this Village People getup, which elicits some chuckles from the mobster when Serpico arrests him. Rude but understandable.
10. Ponytail Serpico
Photo: Paramount Pictures
This is the only real glimpse we get of Serpico wearing his hair in a ponytail, which is so comically short that it begs the question of why he even bothered with it. Still, the combination of the ponytail with the earring and the billowy white shirt suggests he’d make a convincing pirate.
9. Train-Conductor Serpico
Photo: Paramount Pictures
Also known as Super Mario Serpico.
8. Bucket-Hat Serpico
Photo: Paramount Pictures
Part of the genius of Johnstone’s work lies in how she reuses items from Serpico’s wardrobe for different outfits, lending a sense of verisimilitude to the character, as if he’s actually dressing himself every morning. This bucket hat makes multiple appearances, as does the leather vest, which arguably works best with this outfit.
7. Bialetti Serpico
Photo: Paramount Pictures
This is what Serpico wears when he’s hanging out in his backyard, blasting opera, and hitting on his neighbor. He’s so at ease in this shirt-and-chain combo that he might even manage to forget, for a blissful moment or two, that he chose to be a cop for some reason.
6. Motorcycle Serpico
Photo: Paramount Pictures
This look is almost a camp performance of masculinity, from the aviators to the mustache to the motorcycle, which Serpico refers to as his “horse.” The ladies never stood a chance.
5. Jesus Serpico
Photo: Paramount Pictures
This look earns some extra points for appearing in one of the most riveting scenes of the movie, when Serpico’s colleagues confront him about his refusal to accept bribes. Between the white shirt and the beard, there’s a Christ-like purity to Serpico’s appearance that contrasts against his menacing co-workers as they press in on him in an ever-tightening circle.
4. Professorial Serpico
Photo: Paramount Pictures
Considering the film was shot on location in New York in July and August (and released that December, in an insanely fast turnaround), Pacino must’ve been sweating his ass off under this corduroy jacket, the texture of which contrasts nicely with his denim shirt. (Pain is beauty, beauty is pain, etc.) Apart from being cute, the sheepdog also inspires one of Serpico’s weirdest lines, when he jokes that his family crest “is the image of a sheepdog pissing into a gondola.”
3. Fish-Ring Serpico
Photo: Paramount Pictures
I like the fish ring; the fish ring is cool. I could not pull off the fish ring.
2. Pigeon-Lady Serpico
Photo: Paramount Pictures
As his paranoia reaches its zenith and it seems like one of his co-workers may actually take a shot at him, Serpico, for some reason, decides to dress as the pigeon lady from Home Alone 2. The fact that he kind of pulls it off makes this one of Serpico’s best fits.
1. Beanie Serpico
Photo: Paramount Pictures
Perhaps it’s a boring choice, but every aspect of this look just works, from the beard to the way Pacino’s hair curls up below the beanie to the way his eyes are sunken into their sockets, implying sleepless nights. A thousand imitators couldn’t come close to touching this, though Justin Theroux tried.
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?
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()}});
}, {"5":5,"6":6,"19":19,"39":39,"45":45}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(19),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(5),appendLandingPageParams=require(144),pageUri=require(134).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.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"),auth.isMobileAppRequest()&&e.classList.add("nymag-app"),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;
}, {"3":3,"5":5,"19":19,"134":134,"144":144}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(231),_each=require(419),Fingerprint2=require(418),DS=require(417),Eventify=require(257);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();
}, {"231":231,"257":257,"417":417,"418":418,"419":419}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(128),_forEach=require(117),_isString=require(279),_intersectionWith=require(420),_isEqual=require(285),_each=require(419),_debounce=require(161),_sortBy=require(215),page=require(134),visit=require(124);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()})}}]);
}, {"117":117,"124":124,"128":128,"134":134,"161":161,"215":215,"279":279,"285":285,"419":419,"420":420}];
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();
// ]]