Who is the best passer in MLS? Debuting an Expected Pass Completion Model / by Jared Young

By Jared Young (@jaredeyoung)

Javier Morales of Real Salt Lake had completed 82.3% of his passes before last weekend. Chad Marshall completed 84.4% of his passes for the Seattle Sounders. Gyasi Zardes has a 66.1% pass completion percentage. Is any of this good? Which player is a better passer? Fans are smart enough to know they can’t compare those numbers directly because Morales and Zardes play attacking roles and Marshall is a defender and will face pressure less often. 

Looking at pass completion percentages without context is a fool's errand. To address this issue I built a model that predicts the likelihood that a given pass will be completed. The effect is that the difficulty of the pass - including position on the field, part of body used, whether it was backwards, etc – can be factored into this expectation. With this model we can observe whether or not a player passes more or less effectively than an average passer, adjusting for the difficulty of the pass.

The dataset used for the model includes almost 308,000 passes attempted during the 2015 MLS season. I split the passes randomly into a training dataset with 70% of the passes and a test dataset with 30% of the passes. I also built three different models to address differences I observed in the defensive and offensive areas.

Below is a validation of the model on the test dataset by pass completion percentage decile. 

Perhaps more important for a model of this kind is a view of how it validates across the pitch. Below is the difference between forecast and actuals broken into 50 different sections of the pitch. The defensive end is to the left and the offensive end is to the right.

The model predicts pass completion percentage on this sample within 2% in 43 areas of the pitch. There are six more that range between 3-5% and there is one problematic area right in front of the goal. The model under predicts passes completion by 16% in that area. My hypothesis is that if a player find himself in that position in front of the goal the first inclination would be to shoot. If they chose to pass it is likely because a pass was the more obvious choice due to the positioning of the defense. Therefore, a pass in that zone will be completed more often. Only a more refined model specifically in that zone might be able to figure that out.

Let’s get back to our questions:  Who is a better passer - Morales, Zardes, or Marshall? Is Zardes a good passer at all?  Reference the full table below but the quick answers are: Morales has been the most efficient passer in the league this season. His expected pass completion percentage is 69.1%, so he is generally attempted pretty difficult passes. On the other hand Chad Marshall’s passes are much less difficult as his expected pass completion percentage is 81.2%  He’s still a better than expected passer, but not in the category of Javier Morales, which of course is to be expected.

Zardes is also a decent passer as his expected pass completion percentage is 64.3%. Nothing earth shattering but these examples show the model is differentiating passers as fans might expect.

It’s always fun to look at the bad passers too. Alvas Powell scores as the worst passer who is not a goalkeeper. Didier Drogba is on the list as well. His pass completion percentage is 6.2% worse than expected. Heralded rookie Brandon Vincent is also struggling with a -5.0% difference. 

Below is the complete list of passers with more than 200 passes attempted this year. It needs to be pointed out that passes are being completed at a higher rate in 2016 compared to 2015 so overall there are more players with a positive score than a negative one. That could be a sign the league is improving, or a sign defenses are less aggressive.

Thanks to @KevinMinkus for much help bringing this model to life.

PlayerTeamPassCompletion%xPassCompletion%PC% - xPC%Passes
Javier MoralesSalt Lake0.8230.69113.2%965
Sebastian LletgetL.A. Galaxy0.8170.69612.1%518
Nick DeLeonDC United0.8450.72512.0%647
Alberto QuinteroSan Jose0.7980.68811.0%633
Michael BarriosFC Dallas0.7480.64710.1%448
Patrick NyarkoDC United0.6810.5839.8%317
Mike MageeL.A. Galaxy0.7750.689.5%512
Baggio HusidicL.A. Galaxy0.8060.7119.5%510
Ned GrabavoyPortland0.8880.7989.0%205
Simon DawkinsSan Jose0.8190.738.9%750
Mohammed SaeidColumbus0.8790.7918.9%672
Tsubasa EndohToronto0.7690.6828.7%334
Daigo KobayashiNew England0.8340.7488.6%259
Patrice BernierMontreal0.8580.7738.4%330
Darlington NagbePortland0.8780.7948.4%723
Jack JewsburyPortland0.8560.7728.4%291
Sean DavisNew York0.7990.7188.1%288
Erik FribergSeattle0.8380.767.8%766
Cristian RoldanSeattle0.8260.7487.8%821
Anibal GodoySan Jose0.8970.8217.6%716
Osvaldo AlonsoSeattle0.9090.8367.3%1350
Brad DavisKansas City0.7240.6556.8%492
Clint DempseySeattle0.8240.7566.8%501
Matias Perez GarciaSan Jose0.7110.6446.7%519
Jordan MorrisSeattle0.7840.7196.5%435
Thomas McNamaraNew York City FC0.7770.7146.3%485
Roger EspinozaKansas City0.7920.7296.3%986
Andrea PirloNew York City FC0.7840.7226.1%1091
Mix DiskerudNew York City FC0.7380.6776.1%351
Benny FeilhaberKansas City0.760.6996.1%878
Cristian MaidanaHouston0.7540.6936.1%609
Lloyd SamNew York0.7370.6785.9%609
Graham ZusiKansas City0.7490.6915.8%513
Scott CaldwellNew England0.8670.815.7%871
Marco DonadelMontreal0.770.7145.6%365
Kyle BekkerMontreal0.850.7955.4%499
Dylan RemickSeattle0.820.7665.4%334
Boniek GarciaHouston0.7890.7355.4%550
Lamar NeagleDC United0.6650.6125.3%573
Juan Manuel MartinezSalt Lake0.7490.6965.3%622
Diego ValeriPortland0.6820.6295.3%924
Mikey LopezNew York City FC0.7830.7325.1%281
Marco DelgadoToronto0.760.7095.1%512
Jonathan OsorioToronto0.8430.7934.9%502
Wil TrappColumbus0.8740.8254.9%1341
Luke MulhollandSalt Lake0.770.7224.8%512
Joe WillisHouston0.5270.484.7%330
Jordan AllenSalt Lake0.7780.7324.6%257
Shea SalinasSan Jose0.6360.594.6%434
Juan AgudeloNew England0.7630.7174.6%207
Kofi SarkodieSan Jose0.8040.7584.6%489
Diego FagundezNew England0.7870.7414.5%506
Vincent NogueiraPhiladelphia0.8530.8074.5%468
DaMarcus BeasleyHouston0.8060.7614.5%800
Tyrone MearsSeattle0.8020.7584.4%1057
Kellyn AcostaFC Dallas0.7850.7424.3%744
Gershon KoffieNew England0.8380.7964.3%557
Matias LabaVancouver0.8510.814.1%934
Russell TeibertVancouver0.8360.7954.1%250
Leonel MirandaHouston0.740.6994.1%319
Kyle BeckermanSalt Lake0.8240.7834.1%693
Jeff LarentowiczL.A. Galaxy0.850.8094.1%320
Roland AlbergPhiladelphia0.7970.7583.9%301
Nigel de JongL.A. Galaxy0.8570.8183.9%894
Tesho AkindeleFC Dallas0.7290.693.9%328
Giovani dos SantosL.A. Galaxy0.8110.7733.9%392
Brad EvansSeattle0.890.8523.8%670
Ignacio PiattiMontreal0.8160.783.6%641
Tony TchaniColumbus0.8270.7913.6%676
Joao MeiraChicago0.8480.8123.6%369
Pedro MoralesVancouver0.8210.7873.4%804
Tyson WahlColumbus0.8490.8153.4%522
Steven MendozaNew York City FC0.7460.7123.4%236
Sam CroninColorado0.8170.7833.4%940
Marcelo SarvasDC United0.8050.7723.3%945
Jared WattsColorado0.8410.8093.3%403
Sheanon WilliamsHouston0.7180.6853.3%280
David MateosOrlando City0.840.8083.2%506
Chad MarshallSeattle0.8440.8123.2%733
Joao PlataSalt Lake0.7580.7273.2%542
Eric AlexanderMontreal0.8830.8523.1%635
Joshua YaroPhiladelphia0.8510.823.1%376
Micheal AziraColorado0.8360.8053.1%1054
Fabian CastilloFC Dallas0.6850.6543.1%489
Ricardo ClarkHouston0.8060.7763.0%588
Michael BradleyToronto0.8170.7892.9%805
Dax McCartyNew York0.8270.7982.8%1271
Chris SeitzFC Dallas0.6920.6642.8%451
Jared JeffreyDC United0.810.7822.8%378
Kei KamaraColumbus0.6960.672.7%405
Steven GerrardL.A. Galaxy0.7730.7472.6%596
Servando CarrascoOrlando City0.8120.7872.6%613
Demar PhillipsSalt Lake0.7780.7532.5%659
Maximiliano UrrutiFC Dallas0.720.6962.4%347
Victor UlloaFC Dallas0.7990.7752.3%730
Sacha KljestanNew York0.720.6972.3%1054
Fabian EspindolaDC United0.6630.642.3%356
Warren CreavallePhiladelphia0.7950.7732.2%463
Andres ImperialeSan Jose0.7470.7252.2%225
Daniel SteresL.A. Galaxy0.8250.8042.1%800
Michael StephensChicago0.7480.7272.1%489
Dillon PowersColorado0.790.772.0%463
FelipeNew York0.7320.7112.0%1144
Lee NguyenNew England0.7410.7212.0%914
A.J. DeLaGarzaL.A. Galaxy0.8070.7872.0%622
Andoni IraolaNew York City FC0.8510.8321.9%713
Ethan FinlayColumbus0.730.711.9%370
Gyasi ZardesL.A. Galaxy0.6620.6431.9%408
Seb HinesOrlando City0.8070.7891.8%545
Nat BorchersPortland0.8160.7981.8%657
Diego CharaPortland0.8360.8181.8%837
Will BruinHouston0.7160.6981.8%250
Darwin CerenOrlando City0.830.8131.7%675
Marlon HairstonColorado0.7870.7711.7%207
Dave RomneyL.A. Galaxy0.7550.7391.6%220
Andrew JacobsonVancouver0.820.8041.5%538
Fatai AlasheSan Jose0.8190.8031.5%646
Benoit CheyrouToronto0.7860.771.5%387
Bill HamidDC United0.6490.6341.5%211
Chris PontiusPhiladelphia0.7650.751.5%515
Zac MacMathColorado0.6330.6181.5%526
Luke BodenOrlando City0.740.7261.4%527
Liam RidgewellPortland0.8020.7881.4%556
Carlos GruezoFC Dallas0.7950.7811.4%673
Joevin JonesSeattle0.8140.8011.3%905
Axel SjobergColorado0.8240.8111.3%723
Ben ZemanskiPortland0.8260.8131.3%522
Maynor FigueroaFC Dallas0.7510.7381.3%975
Matt PolsterChicago0.8130.8011.2%396
Ashley ColeL.A. Galaxy0.8150.8031.2%682
RJ AllenNew York City FC0.7810.7691.2%621
Luis RoblesNew York0.620.6091.1%524
Kennedy IgboananikeChicago0.7450.7341.1%271
Wandrille LefevreMontreal0.790.7791.1%419
Cristian HiguitaOrlando City0.8250.8141.1%715
Ryan HollingsheadFC Dallas0.7460.7351.1%736
Gaston SauroColumbus0.8590.8491.0%270
Federico HiguainColumbus0.7290.7191.0%786
Michael ParkhurstColumbus0.8430.8331.0%974
Harry ShippMontreal0.7570.7480.9%506
Razvan CocisChicago0.7460.7370.9%413
Matt BeslerKansas City0.8110.8020.9%753
Will JohnsonToronto0.8120.8040.9%634
Frederic BrillantNew York City FC0.8140.8060.8%962
Andre BlakePhiladelphia0.6440.6360.8%539
Mauro DiazFC Dallas0.7050.6980.7%705
Arturo AlvarezChicago0.6790.6720.7%346
Tranquillo BarnettaPhiladelphia0.6860.680.7%740
Robbie RogersL.A. Galaxy0.7690.7620.7%575
Waylon FrancisColumbus0.7760.7690.7%629
Tommy ReddingOrlando City0.8270.820.7%335
Evan BushMontreal0.6430.6360.7%594
Brian CarrollPhiladelphia0.830.8230.7%688
Zarek ValentinPortland0.7410.7340.6%721
Hector JimenezColumbus0.7350.7280.6%294
Christian BolanosVancouver0.7350.7290.6%653
Laurent CimanMontreal0.8130.8070.6%658
Marvell WynneSan Jose0.80.7950.6%681
Chris WingertSalt Lake0.710.7050.5%611
Drew MoorToronto0.8250.820.5%679
Collen WarnerHouston0.7980.7930.5%302
Zach ScottSeattle0.7940.7890.5%388
Jordan HarveyVancouver0.7470.7420.5%1034
Atiba HarrisFC Dallas0.7040.6990.5%635
Ken TribbettPhiladelphia0.7820.7780.4%546
Ike OparaKansas City0.7680.7640.4%560
Chris KlutePortland0.7590.7560.3%365
Saad Abdul-SalaamKansas City0.7590.7560.3%690
John StertzerSalt Lake0.8050.8020.3%282
Tony BeltranSalt Lake0.7750.7720.3%765
Blas PerezVancouver0.6760.6740.2%210
Aaron KovarSeattle0.7230.7210.2%343
Mike GrellaNew York0.770.7680.2%699
Marco PappaColorado0.7450.7440.1%396
Jermaine TaylorPortland0.7940.7930.1%597
Bobby ShuttleworthNew England0.6070.6070.0%458
Josh WilliamsToronto0.7950.7950.0%278
Nuno CoelhoKansas City0.80.80.0%876
Jake GleesonPortland0.5610.562-0.1%426
Marc BurchColorado0.730.73-0.1%681
Jonathan CampbellChicago0.7890.789-0.1%577
Soni MustivarKansas City0.820.821-0.1%740
Chris WondolowskiSan Jose0.7050.706-0.1%390
Aaron MaundSalt Lake0.7760.777-0.1%518
Steve ClarkColumbus0.7690.771-0.1%654
Sean FranklinDC United0.7430.744-0.2%991
Kevin MolinoOrlando City0.7840.786-0.2%694
Justen GladSalt Lake0.820.823-0.2%523
Dominic OduroMontreal0.7770.779-0.3%336
Cristian TecheraVancouver0.6430.646-0.3%443
David BinghamSan Jose0.5370.541-0.4%616
Luciano AcostaDC United0.7020.706-0.4%456
Federico BravoNew York City FC0.7690.773-0.4%437
Shaun FrancisSan Jose0.7060.711-0.5%632
London WoodberryNew England0.7350.741-0.5%529
Corey AsheColumbus0.7830.789-0.6%406
Je-Vaughn WatsonNew England0.7880.794-0.6%730
Jalil AnibabaHouston0.6730.679-0.6%676
Joe BendikOrlando City0.6310.637-0.6%528
Adrian WinterOrlando City0.7310.738-0.6%350
Giles BarnesHouston0.6820.688-0.6%371
Victor CabreraMontreal0.8070.814-0.6%664
Andreas IvanschitzSeattle0.6610.668-0.7%679
Matt HedgesFC Dallas0.8130.82-0.8%656
Andrew FarrellNew England0.7450.753-0.8%846
Amadou DiaKansas City0.7330.742-0.8%454
Keegan RosenberryPhiladelphia0.7180.727-0.9%1129
Ronald ZubarNew York0.7580.767-0.9%442
Frank LampardNew York City FC0.7690.778-1.0%242
Lucas OntiveroMontreal0.7330.743-1.0%221
Kendall WastonVancouver0.770.78-1.0%582
David VillaNew York City FC0.710.72-1.0%597
KakaOrlando City0.6960.706-1.0%401
Walker ZimmermanFC Dallas0.7760.786-1.0%772
Mekeil WilliamsColorado0.740.75-1.1%746
Zach LoydFC Dallas0.7710.782-1.1%424
Ethan WhiteNew York City FC0.7370.748-1.1%342
Sal ZizzoNew York0.7320.743-1.1%925
Hassoun CamaraMontreal0.7570.768-1.1%477
Tim ParkerVancouver0.7830.795-1.2%802
Justin MorrowToronto0.7140.726-1.3%747
Khiry SheltonNew York City FC0.6330.646-1.3%294
Kevin DoyleColorado0.6970.711-1.4%409
Steven BeitashourToronto0.7320.745-1.4%786
Connor HalliseyKansas City0.6880.702-1.4%336
Sebastian GiovincoToronto0.6280.643-1.4%433
Khaly ThiamChicago0.7610.776-1.5%297
C.J. SapongPhiladelphia0.6380.653-1.5%345
Jason HernandezNew York City FC0.8220.837-1.5%762
SunnySalt Lake0.8230.838-1.6%412
Eric MillerColorado0.7460.762-1.6%421
Jimmy MedrandaKansas City0.6880.705-1.7%674
Lucas MelanoPortland0.6840.702-1.8%434
Lawrence OlumKansas City0.7920.81-1.8%566
Cyle LarinOrlando City0.70.718-1.8%203
Richie MarquezPhiladelphia0.7570.775-1.8%674
Ronald MatarritaNew York City FC0.7480.766-1.8%848
Rafael RamosOrlando City0.7540.772-1.9%491
Chance MyersKansas City0.7490.769-2.0%331
Shkelzen GashiColorado0.7150.735-2.0%459
Karl OuimetteNew York0.7220.742-2.0%266
Rodrigo RamosChicago0.720.741-2.1%657
Raymon GaddisPhiladelphia0.7460.767-2.1%232
Johan KappelhofChicago0.7730.795-2.1%596
Maxim TissotMontreal0.7420.763-2.1%236
David OustedVancouver0.5990.62-2.2%680
Josh SaundersNew York City FC0.740.762-2.2%787
Jermaine JonesColorado0.7360.759-2.3%375
Kevin AlstonOrlando City0.7150.738-2.3%439
Fraser AirdVancouver0.7090.732-2.3%515
Johan VenegasMontreal0.7170.741-2.4%212
Steve BirnbaumDC United0.7070.731-2.4%358
Teal BunburyNew England0.6740.699-2.4%442
Chris RolfeDC United0.7090.734-2.5%244
Jose GoncalvesNew England0.7560.782-2.6%679
Damien PerquisToronto0.7750.801-2.6%435
Jack HarrisonNew York City FC0.6640.69-2.6%217
Donny ToiaMontreal0.7240.75-2.6%315
Harrison AffulColumbus0.7670.795-2.8%1068
Jelle Van DammeL.A. Galaxy0.7240.753-2.9%747
Chris DuvallNew York0.7050.734-2.9%532
Kemar LawrenceNew York0.6720.701-2.9%472
Brek SheaOrlando City0.7080.738-3.0%726
Sebastien Le TouxPhiladelphia0.70.73-3.0%543
Kelyn RoweNew England0.6940.724-3.0%742
Stefan FreiSeattle0.6340.665-3.1%596
Bradley Wright-PhillipsNew York0.7120.743-3.1%389
Fanendo AdiPortland0.6550.686-3.2%443
Connor LadeNew York0.7090.74-3.2%601
Taylor KempDC United0.6410.674-3.2%970
Alex MuylNew York0.6670.7-3.3%249
Quincy AmarikwaSan Jose0.6730.706-3.4%336
Brian RoweL.A. Galaxy0.5810.615-3.4%571
Chris TierneyNew England0.6410.676-3.5%817
Victor BernardezSan Jose0.7570.792-3.5%560
Aurelien CollinOrlando City0.6950.73-3.5%423
Ambroise OyongoMontreal0.6920.728-3.6%698
Raul RodriguezHouston0.7620.798-3.6%538
Kekuta MannehVancouver0.660.697-3.6%412
Bobby BurlingColorado0.7120.749-3.8%274
Michael HarringtonChicago0.6990.739-4.1%448
David HorstHouston0.7120.754-4.2%496
Dominic DwyerKansas City0.6250.668-4.3%264
Andrew WengerHouston0.6290.673-4.4%388
Tim MeliaKansas City0.5730.619-4.6%609
Nicolas MezquidaVancouver0.7120.758-4.6%292
Antonio NocerinoOrlando City0.7060.754-4.8%323
Alvaro SaborioDC United0.6640.711-4.8%214
Nick RimandoSalt Lake0.590.64-5.0%505
Brandon VincentChicago0.6160.667-5.0%438
Jordan SmithVancouver0.6830.733-5.1%454
Luis SolignacColorado0.6980.752-5.4%301
Travis WorraDC United0.4340.489-5.5%288
Clint IrwinToronto0.5180.575-5.6%434
Justin MeramColumbus0.7010.76-5.9%581
Yura MovsisyanSalt Lake0.620.68-6.0%342
Didier DrogbaMontreal0.5810.643-6.2%272
Bobby BoswellDC United0.660.731-7.1%538
Tyler DericHouston0.3930.464-7.1%252
Alvas PowellPortland0.6220.695-7.2%458
Sean JohnsonChicago0.5560.65-9.4%225
Matt LampsonChicago0.5840.683-9.9%255