This issue could easily be resolved if HubSpot leveraged its own lifecycle stage property history in reporting. Resetting the lifecycle stage does not actually delete historic data, it simply overwrites it with new info.
We solve this by exporting lifecycle stage property history and build lead reports out of a database. That allows us to report on the complete transactional history of a contact’s lifecycle stage over time. Which means we can reset lifecycle stage without fear of losing data.
The only problem is, HubSpot only uses a contact’s current values in its reports. You can only report on the current “became a lead/sql/mql date” value. The contact’s history is not reportable natively inside of the HubSpot application as far as I can tell. So in our implementation, HubSpot reports will always be inaccurate.
If HubSpot were to enhance its native report behavior to use the lifecycle stage date property history, then multiple “became a lead” events for a single contact be reported and this would not be an issue, regardless of how HubSpot intends for the lifecycle stage to flow.
I’m interested to hear MFrankJohnson’s take on what HubSpot’s philosophy is on returning customers. Imagine a scenario where an existing Customer churns. One year later, they return as a lead and re-enter the funnel. I don’t think that’s something that HubSpot can natively handle with single-direction lifecycle stage.