Source code available online here
A claim that has gained traction lately is that Donald Trump’s posting patterns suggest “sundowning” — the late-day cognitive decline associated with dementia. The argument goes that his late-night and small-hours posting, often described as becoming more erratic or aggressive, points to something going on cognitively.
Its a serious claim and one, I figured, you could look at with data rather than rely on vibes.
I’ve been working hard on Annhexation recently (shameless plug, go check it out if historical 4X is your thing - its been a wonderful distraction for me to create this) so figured it would be interesting to take a short break and take a look.
Below is partly methodology and partly the result. The short version is that temporal patterns, alone, in his posting do not support the sundowning hypothesis. Though its a somewhat incomplete answer.
The data
Unsurprisingly given the feelings he provokes in people Donald Trump’s posts are exceptionally well-archived. For Twitter (May 2009 to his January 2021 suspension) I used the trumparchive.com v2 dump which is a single JSON file covering the full pre-suspension run, with explicit UTC timestamps. The Mark Hershey’s complete trump tweets archive CSVs cover the same period; their Time column lacks a timezone marker but is empirically UTC, and I added them as an alternative source after the fact to cross-check the analysis.
Despite some slight differences the two archives give the same conclusions. However the JSON archive has 89,805 unified records vs the Hershey path’s 87,549; the JSON dump has slightly fuller coverage of early and late tweets and preserves second-precision timestamps the CSV loses. And the Hershey CSVs don’t have an isRetweet column, so retweet filtering can’t run on that set.
For Truth Social (February 2022 onwards) I used a pre-built archive — a JSON array of statuses in the same shape that Truth Social’s public API returns. There are several such archives in circulation; Truth Social runs on a fork of Mastodon and its public statuses endpoint is reachable without authentication for prominent accounts, so the archives are all derivatives of the same underlying data.
The two data sources have slightly different shapes so there is a normalisation step that maps both to a canonical record. The normaliser handles a few edge cases worth flagging: CSV cells with embedded newlines and quotes, the various ways retweets are encoded across archive versions, and Mastodon’s HTML markup needing to come out as plain text before any of the analyses run.
All times are ultimately analysed in US Eastern (America/NewYork in IANA parlance). For those outside the US, like me, the US: Eastern time covers the major east-coast cities: Washington DC, New York, and Florida. Those are the three places he’s most likely posting from on any given day, and all three are in the same time zone, so we don’t need to know which one he was in on any particular Tuesday. It’s also where the sundowning claim is being made — by US commentators reading his posts on their own clocks.
Daylight saving is handled per-post via Intl.DateTimeFormat with the America/New_York zone — not a fixed UTC offset, because a fixed offset would smear half the year’s posts into the wrong hour.
The pipeline
With the data normalised the actual analysis is pretty simple and quite small and results in 3 heatmap views:
- Year by hour of day
- Month by hour of day (probably the smallest bucket of granularity that would give meaningful results)
- Day of week by hour of day
There is a script for ecah of these that builds a CSV and then a HTML viewer that use SVG with sequential colour ramps to display the heatmap. Hopefully with a FT look and feel!
On the views you can choose per year normalisation which shows shape (where within each year posting is concentrated) and global normalisation which shows intensity.
What sundowning would look like in posting data
Now I should preface this by saying I’m hardly an expert in dementia and sundowning. However I suspect most of those commenting aren’t either.
Sundowning is specifically a late afternoon to evening worsening of confusion and behavioural symptoms in people with dementia, hence the name: as the sun goes down. The relevant window is roughly 4pm to 9pm local time, not the small hours. If we were going to see it in posting times we’d expect to see:
- A relative increase in late-afternoon/evening posting concentration over time — that period taking a larger share of his daily output in recent years than it did historically.
- Possibly a change in content quality within those hours specifically — though that’s a content question, not a timing question. We’ll come back to that.
- More volatile day-to-day rhythm in recent years — sundowning isn’t constant; it’d manifest as some days being clearly affected and others not.
Note that “late-night posting” — 11pm, midnight, into the small hours — is not sundowning. It’s a different thing. He’s posted at unusual hours for years, and that pattern has its own explanations (chronic insomnia, time-zone displacement from travel, late-night TV consumption) and conflating the two muddies the question.
What the data shows
I’ve included interactive visualisations in the analysis below but you can also visit the interactive HTML outputs from the pipeline:
Year by hour - per year scale
The per-year view normalises each column to that year’s own maximum, which strips out volume differences and lets you compare the shape of the day across very different posting eras.
The first thing that really stands out is that the 2009–2012 columns look different. They’re basically locked to the working day. I read this as the pre political era and likely mostly concerning business promotion, possibly written by Trump but probably scheduled and posted by staff during working hours.
From 2013 onwards the pattern becomes recognisably him.
Scanning left to right the first thing that jumps out is that through 2013 to 2015 he seemingly never slept with posts occuring all through the full, 24 hour, day. Maybe some of this was scheduled, maybe some of this was staff, but its notably different to what follows.
From around 2016 and through the first presidency a fairly stable pattern appears - posting starts in earnest from 6am onwards and during the presidency it really focuses in on the 6am to 10am window tailing off after that. Heavier full day posting kicks in again (still mostly concentrated in the morning) in 2020 as the Presidential campaign kicks in.
The second presidency is marked by much more intensive posting throughout the day with the level of small hour posting increasing slightly as time goes by.
However there is no noticeable increase in posting during the sundowning period. A hot spot at 6pm in 2025 and a hot spot at 9pm in 2026 but otherwise nothing notable and its hard to read much into that.
Year by hour - global scale
The global-max view tells you something the per-year view deliberately hides. Each cell is now scaled against the single most concentrated hour in the entire dataset.
The first thing I noticed is that his business focused period, 2009 to 2012, represent much more concentrated posting than later years. In particular he really arrived on Twitter with a bang with super intense posting in the morning in 2009.
Having understood that its worth removing that from the rest of the analysis so we can get a more granular view of that, which we can do by removing those years.
With this clearer view his first presidency stands out for the intensity of that morning period again. There are also two clear peaks during 2021 which would be worthy of analysis in a different context, but otherwise over the remaining years its a fairly even spread over the day.
In 2026, this year, we see a little more posting in the very early morning but thats not the sundowning period and we only have a partial years data.
Weekday by hour - global scale
From this we can see that he tends to post most frequently during the working week - which fits, at the weekend he seems to play a lot of golf! Most posting in the working week seems to take place in the afternoon.
Notably there looks to be nothing in this view that would support the sundowning case either.
Month by hour of day - per month scale
This is the finest grain that still has the statistical power to spot week-to-week or month-to-month drift. The per-month-max scale strips out volume differences between months so the shape of each month’s day is directly comparable.
There’s, as usual, a pretty consistent white band across the night hours but otherwise a fairly chaotic scattering of peaks and troughs.
We can perhaps see a subtle shift towards afternoon posting in April and May 2026 and this is perhaps the only subtle indication of sundowning but it could also simply be noise and events. There have been other increases in intensity in afternoon posting but these two columns are accompanied by a reduction in morning posting. It would be worth checking this in a couple of months.
Month by hour of day - global scale
The overall picture here is fairly uniform, hot cells exist but they’re scattered and isolated. December 2024 around 1–3pm is the most concentrated single cluster and that’s the election certification period and the run-up to inauguration, plausibly a high-volume policy-statement window.
Other hot cells are scattered around and are isolated single cells surrounded by unremarkable neighbours. These look like individual high volume news days or events.
If sundowning was developing you’d expect a band darkening — a whole row of cells getting hotter across consecutive months as the pattern entrenche and that’s not there.
Conclusions
I don’t think there is anything in the views that supports the timing version of the sundowning narrative. There’s no evening drift, no real sense of pattern.
But all we have here is temporarl analysis - we have no sense of whether or not the posting content has changed. Some suggest he has become more aggressive and less coherent but we can’t tell that from the analysis undertaken here.
We do, however, have the data to also analyse this and there are three relatively straightforward things I could follow up with, again tracked over time:
- Surface post metrics - things like sentence length, word length, caps usage, word ratios etc. These are cheap and simple to compute
- Semantic drift via embeddings - compute a 384 dimensional embedding per post using a small model then track the centroid of his embeddings over time. Month to month measure how far that month is from the overall datasets centroid. That would give a sense of semantic distance from his average self.
- Structured classification via local LLM - run something like Llama 3.1 over the dataset asking the LLM to label the outputs: stance, target type, tone, topic. This is simple to setup but given the volume of posts would take a little time to run.
All these results have limitations but they may provide a clearer answer than temporal analysis alone.