In brief, the pattern card stays with the contact even if the user comes to the site after several days.
How it works?
When a pattern card is assigned to the contact, Sitecore places the card in the contact session. At the end of the session, those data are flushed into the Sitecore MongoDB.
In the Contacts collection, the respective contact is updated with the pattern card. The next time the user comes in, Sitecore will check the cookie SC_GLOBAL_ANALYTICS_COOKIE from the user browser. If the cookie is present, Sitecore will load the contact into the session from the MongoDB collection.
So, as long as the cookie is present, Sitecore will be able to identify the user even if the user is anonymous.
Point to note
Let’s say there is more than 1 user using the same browser and accessing the same site. If the user is anonymous, the users will still be the same. But if the user has registered on the site, you can use the Identify
method so that Sitecore knows which contact to load.
Sitecore.Analytics.Tracker.Current.Session.Identify(yourIdentifier)