Уважаемый Сергей!
1. Поглядите как делает сервис www.booking.com . Весьма наглядно.
2. Я не думаю, что правильно заводить в рейтинг параметр "чем выше сумма, тем лучше" - это затруднит активность и преподавателям и Пользователям. Лучше стимулировать поток отзывов, чтобы могли проявиться те, кто берет не очень много, но работает очень качественно. А так Вы их потопите. Стимулировать поток отзывов можно пиьмами Пользователям: "Три недели назад Вы заказали ____________ , пожалуйста, сообщите нам как у Вас дела. Вот простая анкета. Это поможет другим Посетителям в выборе преподавателя __________". Тот же букинг так делает - потому там и отзывов весьма много.
3. Полноту профиля я бы в рейтинг не заводил. Просто, если профиль заполнен не полностью, опускал бы такого препода "в хвост" и отправлял бы ему письмо: "Заполните информацию о себе и поднимитеь выше". А также явно писал, чтобы было видно и ему и Пользователям сайта: "Этот преподаватель НЕ указал о себе а) ___________; б) _______________".
4. Мне также кажется, что "количество проведенных уроков" и "при отсутствии рейтинг понижается" вполне покрывается количеством отзывов и оценкой по ним.
Успеха,