oceanplot (@oceanplot) header
oceanplot (@oceanplot) profile picture

Citizen journalist covering the PNW.

Joined August 2025
Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)Photo by oceanplot (@oceanplot)
oceanplot retweeted
Before the report was finalized, internal emails show regulators shaping the findings while under conflict and political pressure. Read the full investigation ↓
1
13
2
41
3,735
oceanplot retweeted
Tomorrow, 8:00AM PST. X | Substack | Facebook
I've been quietly working on a major story the past few months. It’s one of those stories where the layers keep giving way, a real rabbit hole. It happens to intersect with someone running for governor in Oregon. The investigation publishes this week. Stay tuned…
2
9
50
2,682
oceanplot retweeted
EXCLUSIVE — Police report delay raises questions after suspect in two East Portland assaults released from custody A set of Portland police reports describing two assaults in East Portland took more than three months to obtain through a public records request, a delay that raises questions about how crimes intersecting with immigration policy are handled and reviewed before release. The suspect identified in the reports is Santos Thomas Puerto Rios, 24. Officers wrote that he was identified using a passport found on his person, and police records list Honduras as his place of birth. The records describe two separate assaults on the morning of November 25, 2025 along SE 122nd Avenue in East Portland. In one incident, a man standing at a bus stop told officers that Puerto Rios approached him, looked at him twice, and then struck him in the face without warning. The victim required a friend to translate during the encounter with police. Investigators later connected the same suspect to a second assault earlier that morning involving a 69 year old woman. According to the report, this victim was taking out garbage from her residence when a man approached her, said “Hi,” and punched her in the face, knocking her to the ground. The victim initially did not want to pursue a police report. According to public documents, her family later obtained power of attorney and contacted police so charges could be pursued on her behalf. Records released to oceanplot also show the suspect was assigned both a federal and state criminal identification number, including an FBI identifier, both of which were redacted in the released documents. Those identifiers are used in national fingerprint databases that track individuals across law enforcement systems. The time it took for the report to be released is notable, as other routine police report requests are typically processed quickly. These records were not produced for more than three months, even after repeated attempts to resolve the request in writing. In the time between, Puerto Rios proceeded through the court system without the public having access to the underlying police reports describing the assaults. Taken together, the delay and the purported crimes illustrate a broader fault line that has emerged in the national immigration debate. President Trump has recently pivoted to argue that immigration enforcement should focus primarily on removing illegal immigrants who commit crimes. At the same time, cities such as Portland have adopted sanctuary policies that block local police from sharing immigration status information or cooperating with federal immigration enforcement, including when someone is arrested or released. In practice, this leaves cases like the one described in these reports in a gray area. A suspect may be identified through foreign documents or statements about place of origin, while local authorities remain restricted from confirming immigration status or coordinating with federal immigration authorities. Court records show Puerto Rios pled not guilty but was later found unfit to proceed in the criminal case and ordered to undergo a psychological evaluation. A court notice indicates he was released from custody on February 20, 2026 while the evaluation process continues. The result for Portland is a system in which violent incidents are investigated locally while immigration questions remain largely outside the public record. In this case, a suspect accused of two unprovoked assaults, including against a vulnerable individual, moved through the competency process and was ultimately released from custody while the broader immigration questions surrounding the case remain unresolved.
4
24
2
62
2,634
oceanplot retweeted
BREAKING — Portland Police just arrested an alleged drug dealer operating out of Hazel Heights. Officers say they seized 57 grams of fentanyl, mushrooms, suspected counterfeit Xanax, a firearm, stolen IDs, a commercial grade fake ID printer, stolen checks, and a manipulated passport. Police said it was "like a drugstore" operating out of the complex. This is the same publicly-funded Hazel Heights complex oceanplot reported on this week, where public records show more than 400 police reports associated with the address since 2019. Police say yesterday's arrest followed complaints about drug activity and a targeted enforcement operation tied to an open air market near 122nd and Glisan. Seven years into Portland’s housing first experiment, this question is getting more pressing: What happens when stabilization fails inside the building itself? Read the full story and my original reporting on the building below.
17
71
6
239
9,028
oceanplot retweeted
Watch the full interview here — youtube.com/watch?v=qyGy6_kO…
1
7
22
2,416
oceanplot retweeted
A publicly funded apartment in Portland has generated more than 400 police reports since 2019 — roughly one every six days. Over the past few months, I’ve obtained public records and conducted a detailed interview with a resident living inside the building. The story releases Thursday.
2
6
1
38
3,770
oceanplot retweeted
PREMIERE IN 15 MINUTES — Join me on YouTube for the premiere of my interview with Dustin, Travis’ brother (“Stolen Valor”). We talk fraternity, free speech, and how the ICE protests tore his family apart. Premiere & live chat starts at 6:00pm PST. Join: youtu.be/IAHrjkKLxNA?si=tyTa…
13
18
3
64
6,153
oceanplot retweeted
NEW — Track AIPAC, a group that tracks pro-Israel lobbying and campaign spending, has endorsed Jessica Salas over incumbent Rep. Maxine Dexter in the May Democratic primary for Oregon’s 3rd Congressional District. @TrackAIPAC says Dexter (@RepDexterOR) has received $607,085 in independent expenditures and campaign donations from pro-Israel lobbying sources, citing federal campaign finance records. Salas (@jsalfororegon) is mounting a progressive primary challenge as Dexter seeks to defend her first term representing the Portland area seat. Salas has previously centered direct action against ICE in her campaign, donning a gas mask and protesting at the ICE facility in Portland.
🚨 BREAKING — A Democratic Socialists of America challenger in Portland is foregrounding direct action against ICE as a central theme of her campaign in Oregon’s 3rd Congressional District, drawing a sharp contrast with incumbent Rep. Maxine Dexter ahead of the May 19 primary. In a campaign video released by Jessica Salas, footage shows her participating in protest activity at the ICE facility in Portland as part of what she describes as “standing on the front lines with the people most impacted.” In accompanying statements, she frames her presence as a necessary extension of representation, arguing that candidates should experience the conditions faced by the communities they seek to serve. Salas has called for the abolition of ICE and describes her campaign as rooted in grassroots organizing and rapid response to immigration enforcement. She has also criticized what she characterizes as “dark money” from establishment and AIPAC funding of Maxine Dexter, positioning her run as an effort to give voters in District 3 a clear alternative within the Democratic primary. Dexter, who represents the district in Congress, has taken a different approach to immigration enforcement and protest politics. While calling for ICE to leave Portland and for the impeachment of Homeland Security Secretary Kristi Noem, Dexter has emphasized policy outcomes through legislative channels rather than direct action at enforcement sites. In a statement outlining her governing philosophy, Dexter said: “There is no time to waste. The people of Oregon’s Third District deserve a representative who doesn’t just listen to their concerns—but turns concerns into action. I’m grateful that every single day, I get to wake up and do just that. With your continued support, we will continue not just fighting back against Trump’s lawlessness, but lowering the cost of living, expanding access to affordable healthcare, and combatting the climate crisis.” The contrast sets up a clear ideological and tactical divide within a district widely viewed as safe for Democrats in the general election. With no serious GOP challenge expected, the primary is likely to hinge on whether voters endorse institutional advocacy or the challenger’s emphasis on direct action and abolitionist politics. As the race moves toward May, both campaigns are framing the contest as a referendum not only on policy goals, but on what forms of political action are appropriate for those seeking federal office.
13
30
1
89
7,865
oceanplot retweeted
DEVELOPING — Organizers are calling on supporters to gather Saturday, Feb 7 at 12pm at Wilshire Park, then march to Mayor Keith Wilson’s home to urge the city to revoke ICE’s permit, setting up another flashpoint in the ongoing fight over immigration enforcement in the city.
20
19
1
44
12,611
oceanplot retweeted
UPDATE — New footage confirms reporter identity in political violence allegation at January 24 protest Newly reviewed footage recorded by oceanplot confirms that the statement heard in earlier reporting — “That man in the blue shirt just hit Tommy” — was in fact made by KATU reporter Jennifer Singh (@jennifersinghtv) in reference to Thomas Allen (@Tommy4Trump420). In the new footage, Singh can be seen pointing towards Allen before looking toward the camera at the moment the statement is made, confirming the speaker’s identity. The original reporting is linked below.
EXCLUSIVE — Video captures disputed statement during January 24 ICE protest Video recorded during a January 24 protest captures a moment that raises questions about how allegations of political violence are documented on scene and later characterized in local news reporting. In raw, unedited video recorded at Elizabeth Caruthers Park, a background voice can be heard saying, “The guy in the blue shirt punched Tommy.” The statement is partially obscured by crowd noise but remains audible in the footage. The voice appears to belong to Jennifer Singh (@jennifersinghtv), a reporter for KATU who joined the station last fall and was present at the scene. The statement appears to reference Thomas Allen (@Tommy4Trump420), a counter-protester whom oceanplot recorded being followed by a dozen or more people for much of the protest as it moved through the park. Read in context, the background statement alleges that Allen was struck by another individual. Video from the same period shows Allen being closely trailed by members of the crowd, as well as a man wearing a blue shirt running aggressively toward him. The footage does not independently confirm that Allen was struck. In subsequent reporting attributed to Singh, the incident was characterized differently. KATU reported that “crews also observed a counter-protester identified as Thomas Allen pepper spraying at least three protesters, who seemingly attempted to keep him away from the rally,” and noted that Allen “was arrested by Portland Police in the past during other anti-ICE protests.” The report did not reference an allegation that Allen was struck and instead presented Allen primarily as the source of violence. Allegations of violence at political protests carry significant weight, particularly in a charged national climate where such claims can shape public perception and justify escalation. When on-scene statements are captured on video but later framed differently in broadcast reporting, questions arise about how real-time observations are translated into definitive public narratives. Accurate and complete characterization of these moments is critical to maintaining public trust and ensuring that claims of political violence are reported with appropriate context and care. oceanplot contacted Jennifer Singh for comment regarding the discrepancy between the statement captured on video and her subsequent reporting. She did not respond by publication time.
4
82
4
196
16,618
oceanplot retweeted
EXCLUSIVE — Portland cannot say how much violent crime happens on its transit system. So we calculated it. For years, debate over safety on Portland’s public transit system has been driven by anecdotes, viral news, and political claims. Riders describe feeling unsafe. Others insist crime is rare and the transit system is a model. Officials point to enforcement efforts or overall changes in citywide crime. But one basic question has gone unanswered: How much violent crime actually occurs on TriMet? After months of public records requests across multiple law enforcement agencies, the answer is clearer. And the reason it was unclear reveals a deeper problem. No public agency tracks violent crime across the TriMet system as a whole. TriMet operates across multiple jurisdictions, and crime reporting is fragmented among several police agencies. Multnomah County Sheriff’s Office Transit Police handles many cases, including incidents in Portland. Gresham Police handle cases in their jurisdiction. Hillsboro Police report for Washington County transit policing, including Beaverton. Each agency tracks its own cases, but no one agency aggregates systemwide totals. The city has been flying blind. In other words, every piece of the data exists, but no one puts it together. So we did. Using federal violent crime definitions and official offense records from Multnomah County Sheriff’s Office, Gresham Police, Portland Police Bureau, and Hillsboro Police, violent crimes on TriMet in 2024 were counted across all jurisdictions, perhaps for the first time. For this analysis, violent crime follows FBI classifications, including homicide and attempted homicide, rape and sexual assault, robbery, aggravated assault, and kidnapping. Other crimes that may be violent in nature exist, but they weren’t included here. TriMet reported approximately 62.9 million passenger boardings in 2024, producing systemwide rates of approximately 1.25 violent crimes per one million rides, 4.7 property crimes per one million rides, and 27 total reported offenses per one million rides. Property crimes are defined here as theft and larceny offenses, burglary, motor vehicle theft, theft from vehicles, shoplifting, and vandalism or criminal mischief, excluding robbery, which is counted under violent crime. Total offenses are defined here as all criminal offenses contained in the TriMet-related records produced by law enforcement agencies in response to public records requests, regardless of offense type. While this data is notable as a point-in-time, perhaps the larger finding is the lack of aggregation, and in this case it may matter more than the numbers themselves. Public debate over transit safety has been happening without a reliable metric. Politicians, advocates, and media reports regularly cite individual incidents, but no public body maintains or publishes a unified violent crime rate for the system. Agencies meet federal reporting requirements individually, but those reports are organized by police department, not by transit network. TriMet itself is not a law enforcement agency and does not aggregate crime statistics across jurisdictions. The result is a system where everyone has part of the answer, but no one has the whole picture. This fragmentation also makes it difficult for the public to see how safety changes over time. Without a unified annual metric, it is hard to determine whether violent crime on transit is increasing or decreasing, to compare one year’s safety conditions to another, or to compare this transit system’s performance to that of a comparable system. The absence of reliable system data has practical consequences as well. 🧵 1/2
4
8
33
1,347
oceanplot retweeted
WATCH — “I fell down, shattered my shoulder, severed a vein. Five weeks in the hospital.” I met Jerry, a veteran who lives across from the ICE facility. He says the protests interrupted his peace. “These people don’t even live here. They come every night and disturb my life.”
23
108
20
408
46,598
oceanplot retweeted
DEVELOPING — A new protest flyer circulating online in Portland calls for a march from City Hall to the ICE facility on Sunday, Feb. 1, framing the action as a demand to revoke ICE’s city permit after recent deaths attributed by organizers to federal immigration enforcement.
14
16
3
43
11,260
oceanplot retweeted
EXCLUSIVE — Video captures disputed statement during January 24 ICE protest Video recorded during a January 24 protest captures a moment that raises questions about how allegations of political violence are documented on scene and later characterized in local news reporting. In raw, unedited video recorded at Elizabeth Caruthers Park, a background voice can be heard saying, “The guy in the blue shirt punched Tommy.” The statement is partially obscured by crowd noise but remains audible in the footage. The voice appears to belong to Jennifer Singh (@jennifersinghtv), a reporter for KATU who joined the station last fall and was present at the scene. The statement appears to reference Thomas Allen (@Tommy4Trump420), a counter-protester whom oceanplot recorded being followed by a dozen or more people for much of the protest as it moved through the park. Read in context, the background statement alleges that Allen was struck by another individual. Video from the same period shows Allen being closely trailed by members of the crowd, as well as a man wearing a blue shirt running aggressively toward him. The footage does not independently confirm that Allen was struck. In subsequent reporting attributed to Singh, the incident was characterized differently. KATU reported that “crews also observed a counter-protester identified as Thomas Allen pepper spraying at least three protesters, who seemingly attempted to keep him away from the rally,” and noted that Allen “was arrested by Portland Police in the past during other anti-ICE protests.” The report did not reference an allegation that Allen was struck and instead presented Allen primarily as the source of violence. Allegations of violence at political protests carry significant weight, particularly in a charged national climate where such claims can shape public perception and justify escalation. When on-scene statements are captured on video but later framed differently in broadcast reporting, questions arise about how real-time observations are translated into definitive public narratives. Accurate and complete characterization of these moments is critical to maintaining public trust and ensuring that claims of political violence are reported with appropriate context and care. oceanplot contacted Jennifer Singh for comment regarding the discrepancy between the statement captured on video and her subsequent reporting. She did not respond by publication time.
19
41
8
144
44,400
oceanplot retweeted
🚨 BREAKING — A Democratic Socialists of America challenger in Portland is foregrounding direct action against ICE as a central theme of her campaign in Oregon’s 3rd Congressional District, drawing a sharp contrast with incumbent Rep. Maxine Dexter ahead of the May 19 primary. In a campaign video released by Jessica Salas, footage shows her participating in protest activity at the ICE facility in Portland as part of what she describes as “standing on the front lines with the people most impacted.” In accompanying statements, she frames her presence as a necessary extension of representation, arguing that candidates should experience the conditions faced by the communities they seek to serve. Salas has called for the abolition of ICE and describes her campaign as rooted in grassroots organizing and rapid response to immigration enforcement. She has also criticized what she characterizes as “dark money” from establishment and AIPAC funding of Maxine Dexter, positioning her run as an effort to give voters in District 3 a clear alternative within the Democratic primary. Dexter, who represents the district in Congress, has taken a different approach to immigration enforcement and protest politics. While calling for ICE to leave Portland and for the impeachment of Homeland Security Secretary Kristi Noem, Dexter has emphasized policy outcomes through legislative channels rather than direct action at enforcement sites. In a statement outlining her governing philosophy, Dexter said: “There is no time to waste. The people of Oregon’s Third District deserve a representative who doesn’t just listen to their concerns—but turns concerns into action. I’m grateful that every single day, I get to wake up and do just that. With your continued support, we will continue not just fighting back against Trump’s lawlessness, but lowering the cost of living, expanding access to affordable healthcare, and combatting the climate crisis.” The contrast sets up a clear ideological and tactical divide within a district widely viewed as safe for Democrats in the general election. With no serious GOP challenge expected, the primary is likely to hinge on whether voters endorse institutional advocacy or the challenger’s emphasis on direct action and abolitionist politics. As the race moves toward May, both campaigns are framing the contest as a referendum not only on policy goals, but on what forms of political action are appropriate for those seeking federal office.
11
26
5
82
15,488
oceanplot retweeted
WATCH — Federal law enforcement used CS gas to repel protestors who trespassed onto the ICE property in Portland last night, but protestors lobbed the canisters back in a standoff that lasted nearly four minutes.
4
11
2
67
4,413
oceanplot retweeted
NEW — Portland Police are releasing additional images of the suspect allegedly involved in the shooting of two police officers downtown and are urging anyone with information to call 911 or submit tips online at [email protected]. The bureau describes the suspect as a mid-30s white male wearing a black jacket over a gray hoodie, black pants and shoes, carrying a backpack and a green shopping bag, and potentially armed with a handgun and knife. oceanplot submitted a public records request seeking the body worn camera footage that captured the suspect during the incident. That request is still pending.
NEW — One of the two Portland police officers shot Monday night has been released from the hospital, while the second remains hospitalized in stable condition, according to the Portland Police Bureau. The double shooting followed a call that a person had threatened someone they did not know with a knife near Northeast 21st Avenue and Clackamas Street, where officers located a suspect but were unable to apprehend them after an extensive search. Investigators are now turning to the public, asking residents and businesses within a wide perimeter from Northeast 15th to 19th avenues and Broadway to Multnomah Street to upload all raw security and doorbell camera footage from a 12-hour window between January 19 7:00pm and January 20 7:00am. Police say the footage should not be reviewed or edited by the public, underscoring how heavily the investigation now depends on privately owned surveillance to reconstruct what happened and identify the shooter. A QR code provided by police allows direct submission of video footage to @PortlandPolice. The photo below is an image purported to be a suspect in the investigation. The suspect is considered armed and dangerous and should not be approached.
7
52
2
110
20,095