dating algorithm factors