Last_changed_ts rarely and erratically appears in my states table

My understanding was that:
last_updated_ts changes whenever either the state or an attribute changes but last_changed_ts changes only when a new state is recorded.

However in my states table, the last_changed_ts column is present (i.e., NOT NULL) only about 2% of the time.

Indeed for 2/3 of my active sensors all rows have that column blank.
Even for sensors when it does appear, it seems to appear irregularly and erratically
The following seems to be true:

  • If the state itself CHANGES, then no last_changed_ts entry
  • For the rows where the state is UNCHANGED, then last_changed_ts is recorded about 60% of the time but it doesn’t seem to be related to whether attributes_id changes – and I can’t figure out what causes it to be NULL vs non-NULL

Can someone please explain when last_changed_ts is entered and what it really signifies?

NOTE: the last_reported_ts column seems to be NOT NULL about 99.6% of the time – but again not clear what conditions cause it be NULL…

I could not find a clear explanation of this anywhere.

Any help appreciated…