30-second answer

PowerShell
Get-PnPWeb -Includes LastItemModifiedDate, LastItemUserModifiedDate |
  Select-Object LastItemModifiedDate, LastItemUserModifiedDate

LastItemModifiedDate moves when anything touches the site, including system processes. LastItemUserModifiedDate moves when a person does. For any question about activity, the second date is the answer and the first is noise.

What this proves

The timestamp of the last change made by a user identity on this site, as distinct from the last change made by anything at all.

What it does not prove

  • Whether anybody reads the site. Both dates track writes. A reference site that hundreds of people open every week and nobody edits looks identical to a site nobody wants.
  • Who made the change or what it was. One corrected typo resets the clock as thoroughly as a year of daily work.

PowerShell

PowerShell
$web = Get-PnPWeb -Includes LastItemModifiedDate, LastItemUserModifiedDate
$days = [int]((Get-Date).ToUniversalTime() - $web.LastItemUserModifiedDate).TotalDays
"{0} days since a person changed anything" -f $days

Example output

Text
LastItemModifiedDate    LastItemUserModifiedDate
--------------------    ------------------------
06/08/2026 15:30:33     10/01/2025 09:12:04

573 days since a person changed anything

Explanation

The example is from a real tenant, and it is why the distinction is the whole answer: on the day of collection, every site checked had a LastItemModifiedDate of that same day, because a system process had touched all of them. The user date told the real story: one site had gone 573 days without a person. Any inactivity report built on the first date would have concluded the tenant was uniformly busy.

Production considerations

  • Both properties are on the Web object and load with -Includes; there is no admin-centre requirement, site read access is enough.
  • Compare against a recorded collection time, not "now": a gap in days is only true relative to a moment, and a report read a year later should still say what was true on the day.
  • A locked or archived site cannot be changed by anybody. Check LockState and ArchiveStatus before calling a site abandoned; a site somebody decided about is not a site nobody wants.
  • SPO-ACTIVITY-001: no person has changed anything on this site for over a year

References

Found something wrong? Suggest a correction. The article source is not public; the engine it cites is.

What this answer underwrites

The engine reads these Microsoft operations to collect evidence, so what is established here is what those collectors rest on.

  • activitywhen a person last changed something on one site
  • agentsthe Copilot agents in one site, and the sources each declares
  • classificationwhat a site records about the kind of content it holds
  • modernityhow one site is built: template, branding, publishing
  • ownerswho administers one site
  • sharingwhat one site permits, and its default link