I won’t kid you; I was a bit concerned when Racing Louisville came to town last weekend.
This year’s Thorns had played possibly their worst match of the season at the Whiskey Chicks back in May, and even though Racing came in here dead last in the league I was afraid that 1) the Thorns might indulge their tendency to play down to the opposition, and that 2) this had the makings of a trap game; return to the pitch after a long layoff, bad opponent, at home…
…and the first quarter hour or so didn’t reassure me.
In the 7th minute Emma Sears stripped Jessie Fleming and forced Macca Arnold to make a full-stretch one-handed save. A minute late Jayden Perry climbed over her mark and was called for it just outside the Thorns’ 18, and on the ensuing free kick Thorns-killer Katie O’Kane rang the crossbar with Arnold beaten.
Well, fuck.
But then Portland flipped the script. Olivia Moultrie belted a free kick into the pack, where Sam Hiatt toe-volleyed the ball over the scrum and found Pietra Tordin’s head, Tordin bonked a little rainbow that a scrambling Perry blooped over Jordan Bloomer to put the home side up one, and then – based only on the scoreline – you’d think it was all Portland, four-nil, g’bye, have a nice ride home, Louisville.
Except that before the rout began Louisville’s Kayla Fischer knocked another off the woodwork in the 21st minute, O’Kane had another attempt blocked two minutes later…over the 96-odd minutes the two sides were surprisingly close in xG (1.21 to 1.65):

Despite that one was in the top three and the other a legitimate Wooden Spoon contender.
Part of this just points up the weaknesses of the xG stat, but another is, as Carlisle-sensei points out, these are two squads of completely different quality yet for portions of this match, and definitely for the opening quarter-hour or so, the tomato can looked crisper and quicker to every ball.
A better opponent might have punished Portland for that.
On the other hand, a better opponent wouldn’t have given their opponent this kind of space to operate…

…right in front of their own goal. Which, when you do, leads to this, Tordin with Portland’s second.

So, no; this wasn’t a better opponent. It was Louisville. They fulfilled their role as points-dispenser and the Thorns rolled into the top two, so, yay, us.

Short Passes
Here’s Sofascore’s “attacking momentum” plot:

Yep. All Racing for the first ten minutes or so. Then Thorns goals and the match is basically over…but Racing just won’t go away, and the Thorns can’t find anything more (and this wasn’t parking the bus, either; the home side was still trying to create chances) until finally a pretty little Marie Muller to Sophia Wilson to (courtesy of a cute backheel) Tordin back to Wilson and, finally, a perfectly Wilsonian finish and goal number four.
Again; not awful. But that’s surprisingly decent from a Louisville squad with nine losses out of 12 played.
OPTA’s passing numbers are as lopsided as you’d expect; Portland completing 82% of 394 passes, Utah 72% of 294.
Carlisle with the passing plots, first Portland:

What’s a bit “ugh” is the Kenballesque pileup in the center circle. What’s a bit “nice!” is Wilson finally playing like a true #9 and, as Carlisle says, seeing the thick blue passing connection lines to her and through her midfielders (which should include Fleming along with Moultrie). And the jam in the middle did throttle Louisville and force what attack they mustered to go wide.
Okay, then.
Here’s Racing:

Look where Sarah Weber is and remember that she’s supposed to be the center-forward in a 4-2-3-1. Seriously, Yanez? You tell her to do that? You okay with her doing it? Or did those mean girls in basic black force your people into that dog’s breakfast? Are you okay with that?

Turnover and over.
Here’s how things are going;
| Opponent – Venue (Result) | Turnovers |
| Washington – Away (W) | 26 |
| Seattle – Home (W) | 11 |
| San Diego – Away (L) | 29 |
| Kansas City – Home (W) | 23 |
| North Carolina – Away (D) | 25 |
| Angel City – Away (W) | 22 |
| San Diego – Home (W) | 17 |
| Chicago – Away (W) | 32 |
| Louisville – Away (L) | 25 |
| Angel City – Home (D) | No data |
| Bay FC – Home (W) | 33 |
| Kansas City – Away (L) | 29 |
| Utah – Home (D) | 23 |
| Louisville – Home (W) | 21 |
Which just shows that you can be sloppy-ish in possession and Louisville won’t make you pay like Utah or Kansas City will.
Louisville, FWIW, lost 20, so not precisely tidy, either. Neither side really stood out between halves; Portland lost 14 before the break, 17 after, Racing 11 before, 9 after.
The Biggest Loser by a long chalk was Muller with 7 turnovers. Moultrie hacked up four, Arnold three. Several Thorns gave away two.
Cassandra Bogere, although giving away only once, was the most dangerous; her 82nd minute hairball gave late match sub Maja Lardner a perfect tee-ball that forced Arnold into another full-stretch save.

Press!
Thirteenth match tracking the press. I counted either a 1) turnover (either from a tackle-for-loss or a mishit forced pass), or a 2) forced retreat or drop-pass that killed off a progressive action, as a pressing “win”.
Even the Victory+ announcers knew that Louisville likes to press. And boy howdy, did they! Total of 55, 28 in the first half (15 wins (53.5%), 8 takeaways), 27 in the second (16 wins (59.2%), 5 takeaways).
I recorded Portland with only 28 total; 19 in the first half (7 wins (36.8%), 5 takeaways), down to 9 in the second (6 wins – 66% – and 4 takeaways).
Given that Louisville was chasing (and Portland sitting on a lead) the lopsided numbers aren’t really surprising. Given that Louisville is kind of a shitshow tomato can it’s also not surprising that the pressing successes didn’t result in a better game state for them.
| Match time | Racing presses (wins)(%) | Thorns presses (wins)(%) |
| 0-48′ | 28(15) (53.5%) | 19(7) (36.8%) |
| 45-99′ | 27(16) (59.2%) | 9(6) (66%) |
| Match Total | 55(31) (56.3%) | 28(13) (46.4%) |
My thoughts:
1) Tomato can gonna tomato can.
2) What I found interesting is that 19 of Louisville’s 31 wins (and a total of 29 of their 55 total presses) occurred in midfield. So the Lousville “line of engagement” was fairly deep for a team chasing the game. That 20 of Portland’s 28 were in midfield? Unsurprising.
3) Was Louisville a better side – meaning had they not shipped three goals by halftime and had trouble converting their own chances – their pressing might have had some value.
4) Meaning that a better side, well…
Here’s the running tally:
| Match (Result) | Opponent Press (Success) | Thorns Press (Success) |
| Washington Away (W) | 40(27) (67.5%) | 69(41) (59.4%) |
| Seattle Home (W) | 61(30) (49.1%) | 35(20) (57.1%) |
| San Diego Away (L) | 33(22) (66.6%) | 88(40) (45.4%) |
| Kansas City Home (W) | 26(15) (57.6%) | 43(23) (53.4%) |
| North Carolina Away (D) | 35(22) (62.8%) | 56(26) (46.4%) |
| Angel City Away (W) | 52(37) (71.1%) | 61(32) (52.4%) |
| San Diego Home (W) | 45(71) (63.3%) | 45(80) (56.2%) |
| Chicago Away (W) | 68(34) (50%) | 97(51) (52.2%) |
| Louisville Away (L) | 101(70) (69.5%) | 62(35) (56.4%) |
| Angel City Home (D) | No data | No data |
| Bay FC Home (W) | 59(34) (57.6%) | 59(37) (62.7%) |
| Kansas City Away (L) | 52(29) (55.7%) | 34(20) (58.8%) |
| Utah Home (D) | 99(55) (55.5%) | 60(31) (51.6%) |
| Louisville Home (W) | 55(31) (56.3%) | 28(13) (46.4%) |
Corner Kicks
Three, a line drive and two long, all in a ten-minute space in the second half.
| Time | Taker | Short/Long? | Result |
| 66′ | Fleming | Low “line drive” | Into the near side of the scrum and cleared. |
| 75′ | Fleming | Long | Again into the near edge of the pack and cleared…but this time Louisville gained possession and took off downfield, reminiscent of the first goal in the 2025 semifinal, except this time Jennie Immethun yanked the Racing player’s shirt. Got yellow for it, but a pretty smart tactical foul. |
| 76′ | Fleming | Long | Poor delivery; over the byline for a goal kick. |
Nothing.

Player Ratings and Comments
Wilson (+10/-1 : +10/-0 : +20/-1) Goal and assist plus all her usual hard work. Also, showed some lovely footwork; the backheel to Tordin on the fourth goal. the cross/assist on Turner’s, a nifty steal in the 47th minute…scary good, this kid.
Turner (64′ – +5/-0 : +2-1 : +7/-1) Potted a nice goal, but…look at her numbers then back up at the passing diagram. We’ve been over and over the “everybody’s a #9” thing way too often, but seriously; Tordin (and Moultrie, who’s very much an ACM by nature) and Wilson are finding ways to make it work. Turner isn’t, really. She’s still a gifted attacker, but the Gale-Lowdon-Vilahamn attacking system just doesn’t work for her as it more-or-less is working for the others. And I’m not sure what she, or the gaffer, can do to change that.
McKenzie (26′ – +4/-1) Put in a couple of nice crosses, saw out the win. Good shift.
Moultrie (64′ – +7/-0 : +1/-0 : +8/-0) Almost got a goal off a 56th minute free kick; Bloomer came out strong and wrestled the ball off Moultrie’s feet, so, no. But, damn. Gets “hockey assists” on the throw to Wilson on the Turner goal, as well as the free kick that began the first conversion.
Moultrie’s soccer intelligence – which has always been high – was often let down by her lack of touch and unwillingness/inability to track back in her earlier seasons. She’s changed that. I often wonder if at some point in the next year or so she may want to see if her skills are good enough to win some UEFA Champions League glory.
Padelski (26′ – +5/-0) Pretty much what McKenzie did; came on, locked down the point. Well done.
Tordin (83′ – +12/-1 : +7/-0 : +19/-1) Woman of the Match is hard for me in this one. First, because Racing is such a can. But also because several Thorns did very good work. Tordin, between the assists and goals, was her clever, creative self (she’s another, like Moultrie, that I worry might get Sam Kerr/Lindsey Horan sorts of European contract offers…), Wilson, of course, and (we’ll talk about her) Fleming.
Harvey (7′ – no rating)
Immethun (82′ – +4/-3 : +2/-1 : +6/-4) It’s hard to be too hard on this player. She has had only garbage minutes until this one, so this was her first real match, and she was…mostly okay. Made some nice “double pivot” kinds of defensive plays, made some rookie mistakes…overall, I wasn’t and still aren’t a hater. I’m also not a huge fan (for some reason I’ve read several observers who are huge Immethun partisans…) but if she ends up a spot-starter and front-bench reserve and plays this well? I’m good with her.
Bogere (8′ – +1/-1) We noted her one awshit, but otherwise good enough to see out the match and rest some legs.
One real question for me is that what the signing of Dutch attacking midfielder Nina Nijstad means for players like her and Harvey and Immethun. My guess is that it played a bit part in the release of Mimi Alidou. But for roleplayers like these…hmmm.
Fleming (+13/-1 : +5/-1 : +18/-2) Just everywhere; cutting off passes (or cutting down passers and receivers), dishing to teammates, shutting down the midfield (I sense some serious Fleming-fu in the Racing passing diagram above…), and all things Coffey that a player who’s not-Sam-Coffey can do.
Muller (+4/-2 : +3-5 : +7/-7) “Moo-ler”, as the woman announcer called her, had a here-and-there sort of match. Decent defending in general, but – especially later in the match – some real headscratchers. Torched by Sears on the Fischer crossbar in the 21st minute. Caught ballwatching twice inside of a minute, both times on looping crosses to Sears, early in the second half; Moo-ler just completely lost track of Sears and gifted her open headers that, luckily for Arnold, her crap team couldn’t do anything with.
Rust? Let’s hope. Frankly, if Vignola hadn’t had to come off I’d have yanked Moo-ler for Reyes instead.
(FWIW, as a high school German speaker, my guess is that the announcer was trying something like the umlaut-“u” sound without having actually heard a German pronounce the name. She knew that the name isn’t pronounced “muller” like mulled wine. So, okay. But the sound isn’t “oo”, it’s a sort of “eu” (in fact, in certain translation schemes the umlaut is rendered in English as those vowels, so “Müller” becomes “Meuller”) so she only gets so much credit for trying.
Hiatt (+3/-3 : +0/-1 : +3/-4) Hockey assist on Perry’s goal, and, like Moo-ler, had some good and some poor, and had Louisville been better might have been made to pay for some of the poor. They weren’t, so she wasn’t, but still, reminds me that I still think this squad needs a better centerback. It’d be nice to get a genuine Girma-grade player, but those are…well, as rare as Girma.

Perry (+2/-4 : +4/-2 : +6/-6) Goals are lovely, but young Perry’s first responsibility is defending and, well, if your centerback clatters an attacker on the very edge of the 18 and sets up a free-kick-off-the-crossbar only 8 minutes in..? That’s not the idea.
I like Perry; I think she’s got the chops. But I think she needs some better mentoring. Vytas is a very fun, very good guy, but his backline has had some issues, and I think a lot of that is lacking an on-field enforcer. An Emily Menges, a Becky Sauerbrunn, who will hold her teammates to her standards and put some steel in. Who will stand over her defenders insisting they play as well as they’re capable of.
Vignola (72′ – +4/-2 : +5/-1 : +9/-3) Best of the backline. Picked up a knock, and I hope it’s nothing serious.
Reyes (18′ – +2/-1) I dunno about you, but this…

…sure looks like a handball to me. But I’m not the President of the U.S. or of FIFA, so what the hell do I know about soccer?
Arnold (+3/-3 : +3/-0 : +6/-3) Her numbers are deceptive. The minuses are for distribution, which is 1) still not her forte’, while 2) not nearly as critical as, just in this match alone, her huge saves in the 7th and 44th and 77th and 82nd minutes, and coming out strong to take in 40th minute.
As I’ve said; if we can find a keeper who can do it all, for God’s sake buy her. Until then, Arnold’s positives far outweigh her negatives.

Coach Vilahamn: It’s tough to do anything but toss the gaffer a rose, a tip of the cap, and move on. Beating Louisville may not be winning the Champions League Final, but many another club, and manager, has overlooked a poor opponent and a trap game to their sorrow.
Vilahamn didn’t, so, fine.
This coming weekend, though…Seattle away. And a Seattle that has to be furiously angry for revenge after the bizarre two-players-up-two-goals-down loss here. Now that might take some real coaching.
Let’s see what we’ve got then.

- The Thorns Prediction Game: MD 16 – DEN v POR - July 17, 2026
- Thorns FC: Goalless in Seattle - July 16, 2026
- The Thorns Prediction Game: MD 15 – SEA v POR - July 10, 2026

Thorns were fortunate early, but then once they got going they really handled the match. Its nice to see the frontline all getting involved, though I agree that Turner is really struggling to find her role right now. I’m excited to get the wingers back, but still have no idea if/when they will be added to the roster. It would be nice to get some more information about it.
The Seattle game should be interesting, because in spite of being down one and then two players we really handled them. I’m not convinced they are that much better now, but I would expect a much better effort.
So as I think I emphasized in the piece, I was actually a bit surprised that, given the disparity in roster quality, how long Louisville stayed in the match. Andre Carlisle has a good piece discussing “what question does each NWSL team need to answer now that the season has resumed, and I want to quote him at length because it’s worth reading:
“This one is simple. Pretty much every nerd who pays attention to the NWSL is in agreement that the Thorns’ current position on the table is a mirage. That’s because they’re significantly overperforming their xG (17.53; 20 goals scored) and xGA (19.72; 14 goals conceded.
With Sophia Wilson back and looking like herself, there’s reason to believe that the xG overperformance could stick around, it’s just a thing she does. But that’s not a thing their defense or goalkeeper does. They’ve found themselves in a privileged and lucky position entering the break, now it’s up to them to improve their defensive performances and stave off an expected reversion to the mean.”
This match was practically a living illustration of that; xG 1.65, GF 4; xGA 1.25, GA 0.
So.
Here’s what I wrote after the first Seattle match, from the Reyes red to full time:
58-97′
Seattle possessions – 46
Portland defensive wins – 26
Seattle turnovers – 18
Combination (Portland pressure forcing a Seattle error) – 2
So good Portland defending killed off about 54% of Seattle’s possessions (that is, Seattle’s attacks). Seattle errors lost the remaining 42-odd percent.”
That’s 1) solid defending, combined with 2) appallingly poor play from Seattle.
What’s going to be key is bringing that defending to the Clink, because I’m not sure we can count on Seattle’s attacking being that bad again.
(Re: Hanks and Weaver – rehab is incredibly iffy (says the guy who’s working on rehabbing a shoulder injury); it’s literally day-to-day. So it’s not that the club doesn’t want to tell us more; my guess is they literally don’t know, and won’t until the day the trainers say “okay, you’re ready for matchday”.)
Watching the match, it seemed like the Thorns were doing less passing between the back line, and were more focused on getting the ball up field. If so, that’s a welcome change Vilahamn may be been working on with the downtime.
Look back up at the passing diagram. There was still a lot of the “Arnold to Hiatt to Muller to Hiatt to Arnold to Perry to Vignola to Perry to Arnold”. What helped is that it looked to me like Yanez didn’t set Racing’s pressing triggers very high (we typically have a LOT of trouble playing out of the back), so the advancement was able to reach midfield before the press kicked in.