When is 日本語、お上手です used?


When is 日本語、お上手です (your Japanese is good), or possibly 上手い instead of 上手,
used? Is it based solely on the person's level of proficiency, or their
proficiency compared to what was anticipated, or visibly making an effort?

Please don't be too ranty in your answers.




I wouldn't imagine it really has any connotations that are different than if
you told someone, "Hey, your English is pretty good." I think generally we
expect others that speak our native language as a second language to have some
issues, so we might be prone to say that even if they have some issues with
grammar or pronunciation that a native speaker would be looked down on for.
Here are two example situations where I would imagine this phrase could be
used:

A Japanese native talking to a foreigner they just met might say this if the
foreigner shows competency in Japanese, whereas the native may have been
(reasonably) expecting their Japanese to be somewhat broken or possibly
nonexistent, especially if they're just a tourist or something.

Maybe you used some phrase or word that shows you have a deep understanding of
the language, and the person saying this was legitimately impressed at your
skill.

