At this point I’m not sure what point there’d be to taking a deep dive into the dispiriting 2-2 draw that Bay FC wrenched out of Portland on the road, simply because we’ve seen this exact same fucking story play out so often this season…
- The Thorns attack struggles in front of the opposition’s goal, either because Sophia Wilson is cold and can’t score, or the other attackers can’t quite put together any sort of understanding and coherence in buildup (or do, but can’t finish, or break down short of the shot or final pass), and
- The Thorns defense breaks down – either from individual mistakes or lack of group understanding/cohesion – at the worst possible time(s) and ships soft goals.
…although in San Francisco we also saw a more recent, equally frustrating, Thorns dysfunction on display.
Carlisle-sensei sums the first two problems down in a single graphic:

Carlisle noted that us stats nerds have been warning that the Thorns’ early-season form was dependent on over-performing the xG and getting lucky off their opponents’ failure to convert from their chances (living well below the xG-against, that is), and that those sorts of statistical anomalies tend to “regress to the mean” over enough time.
But fucketty fuck does it hurt when that regression bites you dead in the ass on the run-in to the playoffs.
The whole thing is pretty well lined out by the Sofascore “attacking momentum” plot:

Minutes 0-28: The visitors were mostly in control; possession was pretty equal but Bay, being Bay, didn’t really do shit with the ball, while Portland got some decent looks. Pietra Tordin missed just barely high in the 9th minute, Morgan Weaver’s strong left-channel run set up Reilyn Turner in the 21st minute, but Turner was unable to turn quickly enough and missed just right of Silkowitz’ left post.
Bay, also being Bay, coughed up a horrific Joelle Anderson pass-directly-to-Caiya-Hanks turnover in the 10th minute. Hanks attacked the top left of BFC’s penalty box; she was dispossessed but the ball ran to Nina Nijstad. Nijstad squared to Weaver, whose rocket beat Jordan Silkowitz to her near post to put the Thorns up a goal.
Other than that, though? The Thorns couldn’t drive in the dagger, and in the 29th minute the Thorns dug themselves a nightmarish hole…

…or maybe not.
The play certainly started with a patented Thorns Defensive DerpTM; Jenna Nighswonger played a nifty 1-2 with Dorian Bailey from a far-side throw-in. Hanks and Tordin fucked up the exchange; both stayed along the touchline with Nighswonger as Bailey drove to, then in along, the byline.
Reyna Reyes, in turn, contributed her nickel to the fuck up by lingering near her mark, allowing Bailey to drive into the near edge of the 6-yard box and slam a cross that M.A. Vignola could only hoof desperately away…but no further than Bailey, who’d continued her run to the top of the six.
Bailey dinked a header towards Agostina Holzheier, at which point Vignola stuck the boot in, center referee Alexandra Billeter pointed to the spot – it’s revealing that none of the Thorns so much as raised a hand to protest the call – and it looked like the match was level, until Billeter got a call from the VAR booth and went to the monitor.
Then came back and announced that there was no foul committed.

Yeah, no shit, me, too, M.A. I thought you were fucking cooked right there.
So in the first half hour we had:
- A Thorns hero-goal (off an awful BayFC-grade derp), but
- No other really dangerous Thorns chances or, obviously, additional goals, and
- A horrific Thorns defensive derp (multiple player derps, actually, but a collective team derp) that through pure dumb luck and VAR intervention didn’t drop any points.
Minutes 31-90+3: But then, though, the Thorns did the third thing that’s been costing them points and matches; the club just fell apart.
Oh, Portland scrabbled the late equalizer, sure.
But between the PK shout and the final whistle the Thorns as a squad looked completely adrift. Baffled, disjointed, clueless, just eleven people sort of wandering about a grassy field in San Jose with some sort of vague notion of why they were there but unable to do anything worthwhile about it.
Did some soccer-y things. Even got some looks; in the 64th minute Arnold’s long free-kick found substitute Shae Harvey’s head, and Harvey’s flick put Marie Muller (another sub) in towards goal. Muller hit a tidy lead pass to Turner…but Turner’s first touch was crude, and the ball slid out from under her and into Silkowitz’s gloves.
But that was pretty much it. Had you not looked at the table you’d have had a hard time telling which team was about 210 minutes from vacation in Puerto Vallarta and which one was grinding for a playoff spot.
During that time:
Minute 33: Apparently unwilling to give up her cunning plan to gift the opponents a goal, three minutes after the VAR review and play resumed Vignola completely mishit a pointless backpass that Holzheier flew in and picked off, carried to the endline and crossed back into the six-yard box where Carolyn Calzada was ballwatching instead of paying attention to Caroline Conti.
Mackenzie Arnold was already out of the play – she’d come outclumsily and been rounded by Holzheier like a practice cone – so all Conti had to do was tap in the equalizer.
Minute 67: Substitute Aldana Cometti passed through Portland’s front five of the 4-1-4-1 to find Karlie Lema in front of Reyes. Reyes was unable to prevent Lema from turning to serve the diagonal pass in to Kennedy Fuller. Fuller brutally megged Calzada and put BFC up 2-1.
Minute 86: Shae Harvey dispossessed Bailey and found Hanks attacking BFC’s left side. Hanks made space for herself to take a shot. It was blocked, but right back to Hanks, who took another whack and, that time. beat Silkowitz to her near post to snatch the aforementioned Thorns equalizer and the draw from the jaws of defeat.
So here we are, right back where we started.
Attacking sterility? Yep; two goals on less that 2 xG (meaning that in order to get those two the Thorns needed some low-percentage shots to get past Silkowitz, and they did). Go back up to Carlile’s xG map. Look at the Thorns “good/great shots”. Turner in the 8th minute (0.4xG)? Miss. Turner in the 21st minute (0.23xG)? Miss. Tordin in the 77th minute (0.2xG)? Miss. You have to go all the way down to Tordin’s 77th minute putback to find a “good/great” shot on frame.
Defensive Errors? Yep; BFC got their two on even less xG (1.44), and the navy-and-orange made money off Portland all match, between straight-up errors and poor organization; look at the clumsy defensive positioning leaving acres of space for the BFC attackers in the screenshot below:

Those gaps? Were open all match, as they have been all season. We’ll discuss that in a bit, as well as in the comment section.
Mental/Organizational Fragility? The squad’s reaction – or lack of one – after the whole PK/VAR contretemps and then the horrifying “Whew, the danger is past…FUCK!!!!” concession sure seems to point to some real issues within the collective headspace on this team. When something goes wrong, there doesn’t seem to be a rallying response, a reserve of strength fight back or fight through. The squad just sort of wanders off picking flowers.
Why, though? Internal dissension or conflict within the locker room? Lack of on-field leadership? Unhappiness with the gaffer? Over at Stumptown there’s already whispers that the coaching staff has “lost the locker room”.
Without a 2026 Dani Foxhoven – and remember, we never actually found out what the hell was happening inside the team in 2013, just that Foxhoven hinted at a rift between the allocated and non-allocated players – we’ll probably never know.
Here’s what we do know.
There are two matches left in the regular season. Six points. Portland is currently seventh, leads the final playoff club, Seattle, by only a single point, and the highest team currently below the red line – North Carolina – by only two.
That’s some pretty simple math.
As Clausewitz famously wrote, what’s extremely simple can also be extremely difficult.
Short Passes
The possession and passing stats are damn near indistinguishable. Possession 51-49% in favor of Bay FC, passing, Bay 76% completion of 391 passes, Portland 77% of 381. Complete wash.
Carlisle-sensei with the passing plots. Portland:

Yep. The law of averages is hard law, and Portland’s sentence is beginning at just the wrong time.
But among the other problems is…look at the shape of that fucker in the plot above. The idea was supposed to be a 4-2-3-1 with Turner as the center-forward. See if you can find Turner. C’mon, look hard now. See her?
Yeah. What the fuck is the supposed-#9 doing tucked in close to the kickoff spot, behind the notional #6/8 or whatever the fuck Fleming is supposed to be doing. The front end of that whatever-the-fuck-it-is looks like the front end of a Toyota Prius after a close encounter with a bridge abutment.
Not in single spies but in battalions, eh?
Anyway, Bay:

What helped was Portland’s-under-Gale-and-now-Vilahamn bizarre obsession with pinching the fullbacks and outside midfielders inside, as well. Only Reyes stays wide consistently, so in this case it let Nighswonger and Holzheier and Fuller and Lema kinda walk the ball around outside Portland’s 18. Bay being Bay they couldn’t do that much with it (without help from Portland, which was happy to help, unfortunately) but it got them a draw.
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 |
| Seattle – Away (L) | 33 |
| Denver – Away (L) | 33 |
| Gotham – Home (D) | 23 |
| Utah – Away (L) | 17 |
| Boston – Away (W) | 17 |
| Orlando – Home (W) | 24 |
| Denver – Home (W) | 19 |
| Gotham – Away (D) | 21 |
| Washington – Home (L) | 23 |
| Chicago – Home (D) | 18 |
| Orlando – Away (W) | 22 |
| Houston – Home (D) | 20 |
| Boston – Home (L) | 33 |
| Bay FC – Away (D) | 35 |
After the Boston match I called Portland’s turnovers “a fucking disaster”. I think we can just rinse and repeat that for this clusterfuck. Worse, in the second half when the Thorns needed to put the match away they started handing the ball to the home side like it was Halloween and the ball was yummy candy; having coughed up 14 before the break Portland was awful afterwards, giving away 21 times. Even worse that that, BFC was fairly tidy, losing only 13 all match, 6 before halftime, 7 afterwards.
Three Thorns tied for Biggest Loser; Reyes, Calzada, and Fleming each coughed up five apiece. Weaver booted away four, Nijstad three, and five others lost two apiece.
Obviously the single worst was Vignola’s backpass that began the first concession. Reyes almost repeated that suicide attempt in the 59th minute but Arnold came off her line to clear away before Bay’s people could pounce on it as Holzheier did the earlier awshit.

Press!
Twenty-seventh 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”.
Like the tone of the match itself, the pressing changed between about the 20th to 30th minutes.
Portland came out pressing high and hard; about 15 press attempts in the first quarter hour, and 10 of those were in BFC’s defensive third. That included almost forcing the turnover that lead to Weaver’s goal. Bay’s first press didn’t even occur into the 12th minute, and the navy-and-orange only tried 12 presses in the first half hour.
That changed after the Conti goal. Portland, as we’ve discussed, sort of deteriorated into a bunch of new acquaintances randomly thrashing about, ending with 19 wins out of 30 presses in the first half and only 6 forced turnovers to Bay’s 13 wins out of 22 presses and 5 ball wins.
In the second half Portland tried pressing – 51 times, but won only 21, so from 63.3% wins before the break to only 41.1% afterwards – and Bay essentially stopped; only 20 presses, 12 wins, and from 59% to 60% success, so pretty much a wash. Still, one of Bay’s forced turnovers led to the Thorns equalizer, so.
| Match time | BFC presses (wins)(%) | Thorns presses (wins)(%) |
| 0-45+3′ | 22(13) (59%) | 30(19) (63.3%) |
| 45-90+3′ | 20(12) (60%) | 51(21) (41.1%) |
| Match Total | 42(25 (59.5%) | 81(40) (49.4%) |
My thoughts:
1) This was an oddity, and I’m not sure how much of that was created by coaching and planning and how much was just random happenstance caused by the dysfunction of a bad team (BFC) and a team that’s playing badly.
2) Portland isn’t helped by the random, hero-ball/freelancing nature of it’s press in general.
3) Turnovers forced by high pressing contributed to three of the four goals, though, so the press played a role in the outcome. Just how much and exactly what role, I’m not sure.
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%) |
| Seattle Away (L) | 67(46) (68.6%) | 66(35) (53.0%) |
| Denver Away (L) | 46(24) (52.1%) | 53(27) (50.9%) |
| Gotham Home (D) | 60(32) (53.3%) | 58(86) (67.4%) |
| Utah Away (L) | 86(61) (70.9%) | 70(38) (54.2%) |
| Boston Away (W) | 84(55) (65.4%) | 83(44) (53%) |
| Orlando Home (w) | 94(57) (60.6%) | 87(55 (63.2%) |
| Denver Home (W) | 87(55) (63.2%) | 60(32) (53.3%) |
| Gotham Away (D) | 42(34) (80.9%) | 90(49) (54.4%) |
| Washington Home (L) | 43(30) (69.7%) | 64(35) (54.6%) |
| Chicago Home (D) | 42(27) (64.2%) | 54(33) (61.1%) |
| Orlando Away (W) | 38(29) (76.3%) | 39(23) (58.9%) |
| Houston Home (D) | 20(11) (55%) | 43(23) (53.4%) |
| Boston Home (L) | 36(20) (55.1%) | 53(23) (43.3%) |
| BayFC Away (D) | 42(25 (59.5%) | 81(40) (49.4%) |

Corner Kicks
Six. Five in the first half, one in the second. One short, four long.
| Time | Taker | Short/Long? | Result |
| 8′ | Fleming | Long | Found Turner’s head, but her soft looping header went right to Silkowitz |
| 9′ | Fleming | Long | Not a bad effort; went to Tordin, and her header was just a skosh over the crossbar. |
| 22′ | Fleming | Short | …to Tordin. Her cross went into the scrum and was cleared away. |
| 38′ | Fleming | Long | Into the near side of the scrum and cleared away, recycled, but Fleming lobbed in for Silkowitz to claim. |
| 42′ | Fleming | Long | Reyes got up and headed it into the scrum. A red shirt got to it and passed out to Holzheier who, with everyone but Arnold up for the corner, took off in a horrific reminder of the Washington semifinal match last season. Only yhis time Vignola caught up and tackled the ball off her. |
| 72′ | Fleming | Long | Went over the byline for a goal kick |
Tordin’s effort on the 9th minute wasn’t bad, but, then, the 42nd minute breakaway was damn near disastrous. One again, the Thorns don’t seem to have plans or set plays or really work hard to score off these set plays, and I’m not sure why not.

Player Ratings and Comments
Turner (81′ – +4/-1 : +2/-1 : +6/-2) Reilyn Turner is tied for third on the squad in goals scored – 5 – as well as fourth in goals-per-minute-played (0.42, behind Wilson (0.55) and Weaver (0.45). And she has a lot of damn good forward’s skills.
But she also seems to lack…something. Bite? Incisiveness? In San Francisco she played almost the full match and took only two shots and put only one on frame. Both her highest percentage shots (look back up at the xG map) were off target.
I know I keep banging this drum, but I don’t think this is her. I think there’s something wrong with this attacking roster. Either the coaching isn’t melding the skillsets, or the skillsets aren’t meld-able. If it’s Door #1 that’s on Vilahamn, if #2 it’s principally on GM Jeff Agoos. Could it be both? Sure. But for now we just can’t really tell.
But you look up at the passing/position plot and that’s a real headscratcher. WTF? Was Turner where she was because Vilahamn wanted her there? If so, why? And if he didn’t, why was she there so much? Why didn’t he grab her ear and remind her what a #9 is supposed to do and where?
To make this even more difficult it’s not just her and it’s not just Vilahamn; Gale had similar problems with his roster and tactics, and Norris before him did, too. This has been a long-running problem, as you can see, and one of the reasons that – as I’ve argued here this season – the RAJ organization need to replace someone; Vilahamn, Agoos, both…I dunno. But you’d think that a player with Turner’s skills should be more consistently effective, and until we have a better gaffer, well, I kind of have to assume it’s not her problem, it’s his/hers/theirs.
Dufour (9′ – no rating) Good to see her healthy again. It’d be even better to see her fitted into a more coherent, effective attack.

Weaver (56′ – +6/-3 : +0/-0 : +6/-3) This season it seems like Weaver is either scoring bangers or faffing about flailing. The candles were nice, but this match was a little of both; hellacious strike, then about 40 minutes of next-to-nothing. I get it; she’s not really fully match-fit, but that’s a tough choice. This club can’t afford passengers, not even ones that scored a banger.
Harvey (34′ – +3/-2) Seems to work hard, but, like many of Vilahamn’s subs, doesn’t seem to really fit into whatever-the-fuck his “tactical scheme” is assuming he actually has one. Again, as an individual player Harvey shows glints of promise. As part of the squad..? (shrug emoji); I have no fucking idea where she fits, or if she can fit. Part of that is that I have no fucking idea what a truly dangerous Vilahamn “attack” even looks like.
Tordin (+7/-3 : +2/-1 : +9/-4) Again; tons of individual skill, but…four shots, only one on frame, no goals. I’d hoped that she would see Wilson’s suspension as a challenge to rise to.
Apparently not.
But again…player problem? Coaching problems? Both?
Hanks (+4/-3 : +5/-1 : +9/-4) Hustles her tail off, and I’ll always stan for a player who leaves it all on the pitch. Got the equalizer, too, out of pure hard graft and persistence. I wish her touch was a bit more deft, but that might still come with time and good training. What I really wish is that she had a couple of strike partners and a system that integrates them such that she could use her pace, which is truly fiendish, to open up defenses for Wilson or Turner or Tordin or Weaver to stick the knife into. That is a coaching tactical issue, so for this one you know who’s looking at you, coach.
Fleming (+6/-3 : +3/-3 : +9/-6) First, I appreciate the work Jess Fleming puts in. As I said for Hanks; you leave it all on the pitch and I’ll carry your water bottle from here to the Halls of Montezuma and kiss your ass when we get there.
Second, though, this roster was assembled around Sam Coffey at the #6 (and Hina Sugita as a #6/8) and has not really solved the problems or filled the holes their departures have created. Fleming isn’t a genuine destroyer-six, and she – even partnered with Nijstad – can’t lock down the back of midfield the way Coffey and Hina-san did. With the current backline? That’s a big fucking problem.
This match was not Fleming’s best work, either. Faded badly in the second half, sloppy in passing, and most significantly, as one of the veterans on this squad Fleming needed to rally the troops after the Conti goal and either didn’t or couldn’t. That’s a tough demand, but that’s what team leaders do. They’re heroes, that’s their job.
Nijstad (72′ – +6/-1 : +3/-2 +9/-3) Nice little setup for Weaver’s goal, plus all her usual good pressing, tackling, and intercepting. Kind of the same issues as Fleming, though. Again…there’s talent here, but Nijstad’s talent isn’t being used in a way to make her squad better than the sum of it’s parts.
Bogere (18′ – +2/-2) No real impact.
Vignola (56′ – +8/-5 : +0/-0 : +8/-5) So here’s another one of those damn “How many pluses can you give Player X for this amazing play? How many minuses to Player Y for doing this stupid fucking goddamn boneheaded thing?” problems.
Because Vignola, for all that she did a whole bunch of “regular fullback chores” just fine or better, damn near singlehandedly lost the match for her team in the space of about four minutes. She escaped through the magic of VAR from one of her awshits, but the second? Goddamn it.
It’s often difficult for me to be objective about Vignola because of her part in trading away Sugita, perhaps my all-time most beloved Thorn. But even so, this player has quite the gift for doing some truly, deeply, astoundingly boneheaded things. So, dammit, woman…

…put your damn thinking cap on before your shinguards from now on, y’hear? You can’t just keep doing that shit.
Muller (34′ – +5/-1) I think the idea was to go to the three-back and get more attack on the pitch. Instead the Bay went up a goal and Portland still needed some Hanks hero-ball to sneak away a point.
Perry (+4/-3 : +1/-4 : +5/-7) On the other hand, the centerbacks didn’t even get the “whole bunch of regular centerback chores right” credit. Calzada got exposed the worse, but Perry was no bundle of joy in San Jose. Turnovers, positioning, ball-watching, anticipation…as individuals the backline may have had worse afternoons, but as a unit? Holy Hell.
Calzada (72′ – +0/-6 : +0/-1 : +0/-7) Culpable on both concessions. Failed to mark Conti on the first, then owned by Fuller. Earlier in the season both the young centerbacks had some promising moments. At this point? I’m not sure whether the simplest and most effective solution is to just tear the backline down to the subgrade and just build anew. I’m not sure what Calzada’s confidence level is at the moment, but since attendance at BFC matches is not uncommonly in five figures getting pantsed in front of tens of thousands of fans would sure leave me kind of a mess.
Obaze (18′ – no rating) And getting yeeted after the damage was already done couldn’t have helped Calzada much.
Reyes (+2/-3 : +4/-4 : +6/-7) We’ve discussed her role in the Conti goal. Outworked by Lema on the second concession. “Better than Vignola” isn’t really high praise.
Arnold (+2/-2 : +1/-0 : +3/-2) Good work on Fuller’s 57th minute bullet, evened out by getting beaten like a rented mule by Holzheier. Not a great outing for Macca on a bad day for her club.

Coach Vilahamn: Same as always; I don’t hate on the guy, but he clearly has no clue how to make this roster do any better than that have this season, which is to say “barely-better-than-midtable-dross”. And that is a gaffer’s only actual job. Meaning he’s kind of crap at his actual job. In the outside world if you’re crap at your job (so long as your job isn’t working for the current president) you usually get canned.
The obvious problem is “So…who’s gonna bring in a better head coach than this dude?” Agoos? Presumably Vilahamn was his guy. Which, in turn, suggests that Agoos’ judgement where team managers are concerned is suspect at best and crap at worst.
We’ve seen this. Chicago? The sorry-ass Stars organization responded to getting shut of that cheap sonofabitch Whisler by fire-sale-ing the squad and then had the gall to defenestrate Lorne Donaldson for playing the bin of misfit toys they gave him to play with as best he could. Sky Blue? Same problems, same reasons.
I’m a Portland supporter. I will support this team, crap or not. I stuck with it through Riley (spit!), through the chaos of the Peregrine-to-RAJ transition, and I’ll stick with it through this season and beyond, come what will.
But.
It sure is a lot more fun when I can write about good soccer and happy times. And, like everyone else, I like to be happy.
Here’s the crux of the biscuit.
Tomorrow we host North Carolina. Those wenches are hungry-mad to break into the playoff bankvault, and we’re the eight-buck-an-hour rent-a-cop standing between them and that big score. Beat us tomorrow and they’re in and we’re most likely out (since Seattle gets Utah and even though they’re at home the Sisterwives are in fucking free-fall).
Then on Decision Day we go to Houston, remember them? The outfit that came to our house and slapped a 1-1 draw needed-an-85th-minute-Muller-lightning-bolt-just-to-save-the-fucking-home-point kind of match out of us? That Houston?
Two games. Six points on offer. Only two points above the red line. Win and go to the playoffs. Lose and go home.
It’s that simple.
And that difficult.

I know how you feel, kid.
- Thorns FC: Drawing to an inside straight - October 22, 2026
- The Thorns Prediction Game: MD28 – BFC v POR - October 11, 2026
- Thorns FC: Gone in 1,260 Seconds - October 8, 2026
