I usually say (and I happen to be in a country that is not very litigious) "While I can't tell you how you did in this interview -- we have to go through HR's process first -- I could offer you some general advice based on my experience", and would give some positive suggestions based on what I've observed. E.g. "try to read up more on how technology X works under the hood" or "when faced with a complex problem, it's okay to take time to think it through or ask questions", or "your communication skills are good, but you can be even better if you lead with the answer and have the lengthy explanation follow the answer" etc.
I'm wondering whether this is a good practice?
We try to hire more long term (we aim for 5+ years retention), dunno if that's related, or if there is any evidence to back this procedure.
I find it a bit weird myself, which is why as a candidate I'd like to know about it :-)
It's better to offer the candidate what the company is prepared to offer, both in terms of position and compensation. Let the candidate decline. At least some candidates will like the company enough to try working their way back up.
Though I'm sure acceptance rate is in some KPI, so there could be some bureaucratic nonsense involved.
Normally, the good interviews begin with some kind of high-level salary discussion with HR or the recruiter. Typically, the recruiter (or HR rep) casually asks what I make in my current job. In one case, I accepted an interview where I'd get a small paycut. (Some things are worth taking a lower salary.)
Something along the lines of: "To pay you as much money as you requested, we'd have to categorize you as a [Senior/Prinicipal] developer, but your skills/experience only put you at [Junior/Professional]".
If, as a candidate I had received this kind of feedback from two or three companies in one vertical, I would know that I have the choice between getting payed less and switching to a different vertical that pays better.