I would like to suggest a method to retain the old node and historical statistical information is to implement a new node status to NPM called 'Archived' and add a new column 'ArchivedDateTime' to the Nodes table and provide the ability through Manage Nodes page to "archive" a node which when put in this state, updates the 'ArchivedDateTime' column, ignores all polling of device resources (interfaces, volumes, UnDPs, etc.), ignores alerting for node and all resources and marks them as 'Archived' state as well. The 'Archived' node and all its resources and statistics are retained in similar fashion and still accessible through all the normal NPM pages and mechanisms. The 'ArchivedDate' would be displayed the Advanced Node Details Resource. To overcome the duplicate Nodename issue for cases when a node is upgraded to a new model and old node info is wanted to be retained, a special char or identifier (for example, *A* for Archived; <nodename>*A*) be prefixed or appended to the Nodename for establish uniqueness from the new node likely to have the same nodename. In addition, by default, filter 'Archived' nodes from NPM Summary/TopXX resources, etc. but could be visible by adding a resource filter. Not everyone may want to see archived nodes and associated resources cluttering up/visible in these resources. Add a new resource called All 'Archived' Nodes resource to be able to drill into device details and statistics just like a normal node. Add 'Archived Nodes' to Group By groups in Manage Nodes page.
Oh, one last thing, an 'Archived' node/interface/volume would not be counted in the NPM license.