Omniture (and other analytics packages) have a section on “Loyalty”. The stats are misleading though. The “Return frequency” report, for example, double-counts multiple visits which makes results look far more favourable than they really are.
An alternative is using the loyalty score. When most users return with a week it gives a value higher than Daily Unique Visitors. When most users don’t return with a week the value if lower than Daily Unique Visitors.
For example, here is the extreme case of no visitors returning within a week:
Total Daily Unique Visitors for last week = 10M
Weekly Unique Visitors = 10M
Loyalty score = TDUV / WUV = 10M / 10M = 1M
Here is the other extreme where all visitors return every day:
Total Daily Unique Visitors for last week = 10M
Weekly Unique Visitors = 1.4M
Loyalty score = TDUV / WUV = 10M / 1.4M = 7.14M
The site i work at has a loyalty score of: 8M / 7M = 1.1M