Why it happens
One physical device can live in several ecosystems at once — commissioned into Apple Home, imported by Home Assistant, bridged into SmartThings — and each one describes it differently. Threadlytics merges records only when a stable hardware identifier (a serial number, a radio hardware address, a resolved network host) proves they're the same box. Names are never enough: two “Kitchen Plug”s might genuinely be two plugs.
When duplicates merge on their own
As scans gather more evidence — a diagnostics read that exposes a serial, an address that resolves to the same host — the proof arrives and the rows merge automatically. A device that just joined a second ecosystem often shows as two rows for a scan or two before collapsing into one.
When they stay split — by design
If two records never share a provable identifier (common with cloud-only integrations that don't expose hardware identity), Threadlytics keeps them separate rather than risk gluing two different devices together. A wrong merge would corrupt every grade and map built on top of it; a visible duplicate is the honest state of the evidence.
What you can do
Run a scan (fresh diagnostics are the main source of identity evidence), then check the device's detail page — the Sources section shows which ecosystems feed each record. If a pair obviously should merge and never does, contact support with the two device names and their manufacturers; these reports directly improve the matching rules.

Related: Scanning & data freshness