В основе выбора «say» / «tell» – грамматическое правило: You say something to somebody. Ты говоришь что-то кому-то. You tell somebody that ... Ты говоришь кому-то что-то. Основная идея «tell» – сказать, рассказать КОМУ-ТО. После слова «say» обычно идёт ЧТО мы хотим сказать. Это может быть конкретное слово – «say hello», «say no», слова – «say a few words», или целая мысль – «say that you don’t like this music». Не зря же «saying» по-английски – это высказывание, поговорка. А дальше начинается мистика ... Хотя обычно дополнение «сказать ЧТО-ТО» привязывается через say, tell используется, когда есть оттенок предсказательности, когда мы догадываемся, предполагаем, угадываем, а не выражаем известный факт или мнение. Конструкции в плане предлогов выглядят одинаково, поэтому выбираем здесь say / tell только по оттенку в значении – предположение или точное знание: Вот это «угадательное» значение «tell» и даёт несколько устойчивых выражений: tell the fortune – гадать, предсказывать суд