How do you only have 558 PoH with ~900 days of daily use? Do you only use it for 30m per day?
Here's a 512GB WD Black from my home lab server. It runs ~10 super light usage VMs with Docker stacks that include 2 GitLab instances, 2 GitLab runners, 3 Nextcloud instances, 3 Redmine instances, 1 Gitea instance, 2 Drone runners, 1 Minio instance, 1 Nexus instance, 1 Emby instance (w/transcoding), and various reverse proxies, etc..
The write endurance is supposed to be 300TBW, so it should really be over 20% used but says 0%.
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 38 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 0%
Data Units Read: 95,066,245 [48.6 TB]
Data Units Written: 135,910,315 [69.5 TB]
Host Read Commands: 972,466,473
Host Write Commands: 2,504,003,547
Power On Hours: 17,383
Error Information (NVMe Log 0x01, max 256 entries)
No Errors Logged
Compare it to a 500MB Crucial MX500 under the same load which is supposed to have 180TBW:
Model Family: Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs
Device Model: CT500MX500SSD1
Serial Number:
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 11225
173 Ave_Block-Erase_Count 0x0032 032 032 000 Old_age Always - 1032
194 Temperature_Celsius 0x0022 067 044 000 Old_age Always - 33 (Min/Max 0/56)
202 Percent_Lifetime_Remain 0x0030 032 032 001 Old_age Offline - 68
246 Total_Host_Sector_Write 0x0032 100 100 000 Old_age Always - 59166051308
That's 68% used after ~30TBW (59,166,051,308 sectors*512 = 30,293,018,269,696 bytes).
What I've learned from trying to diagnose those MX500s is that TBW doesn't really matter all that much. It's the P/E cycles that really count. For example, the MX500s are rated for 1500 erase cycles (#173 above) IIRC.
I've also become skeptical of many SMART implementations. I know the PoH on the Crucials is incorrect because when they were new they were reporting 45 days of PoH on a system with 76 days of uptime. So if the manufacturers can't get something as simple as PoH right, how can anything be trusted?