When is something wrong?

This morning I got 翠玉白菜, and I had forgotten how to write 翠. (I should say, as usual I had forgotten how to write 翠.) I was surprised when I got to the end of my short session I was congratulated on getting 0 wrong.

I didn’t get zero wrong. I couldn’t write 翠玉白菜.

I checked on the web site; it says I last studied the Rune for 翠玉白菜 this morning and will next study it in a month. That’s seems a bit far out for something I just got wrong.

When I look up 翠 on its own the web site says I last studied the Rune 3 months ago and is next up in 12 days. That’s odd since I have never studied it on its own. If it says anything at all, I’d expect it to say I studied it this morning.

On the old web site, and in the latest app, I also find out that I’ve written 翠玉白菜 correctly 29 times out of 30. That is complete nonsense. The old web site more realistically says I have a 64% success rate with 翠 (ergo the only compound using it, 翠玉白菜, should be 64% as well).

I haven’t paid a lot of attention to words’ statistics – I always assumed they reflected my performance but now I’m not so sure. As for the app, I get things wrong all the time for missing only 1/N characters, so I’m puzzled why I didn’t this time.

1 Like

We’ll look under the hood. Could be a flaw in the logic when words are more than X characters. The fact that this doesn’t happen regularly is a good thing, but the expected behavior for this particular word is that it is graded as incorrect as you state, and it should be due again at the end of the session for another review.

I’ve made a note to investigate with Josh. We’ll keep ya posted.

1 Like

Here are the details. Skritter considers anything graded 2 or higher (so-so or higher) as being correct. The scheduling and grading logic for Skritter has some very specific bits that attempt to lessen the severity of word-level grading based on performance of writing individual characters (see code snippet below). Why that was the case, I don’t really know. It was well before my time.

const totalCount = reviews.length
let totalScore = 0
let totalWrong = 0

for (let i = 0, length = reviews.length; i < length; i++) {
  const reviewScore = reviews[i]['score']

  totalScore += reviewScore

  if (reviewScore === 1) {

if (totalCount === 2 && totalWrong === 1) {
  score = 1
} else if (totalWrong > 1) {
  score = 1
} else {
  score = Math.floor(totalScore / totalCount)

The code says the following:

  • If more than 1 wrong character is marked as wrong then the word is marked as wrong.
  • If the word is only 1 or 2 characters and 1 character is marked wrong the word is marked as wrong.
  • If the word is 3 or more characters and a single character is marked as wrong the word will likely be marked as so-so.

In the instance of getting 翠 wrong in 翠玉白菜. It would have the word marked as so-so since you only forgot one character, which would be considered correct in the review report.Previous versions of Skritter had the option of doing “word-level” grading, which would basically override all this stuff and just mark something as wrong, I always thought it was for those instances where you knew all the characters, but wanted the word-level rep again, but now I understand the true purpose… overriding this crazy logic.

So, the real question is… should we change things to be more aggressive? The end result will likely be lower performance scores, more reviews, and higher retention over time.

1 Like

Interesting! I have two thoughts on this:

The first is that I appreciate Skritter’s desire to be sympathetic. Certainly, if I get one character wrong in a rarely-used 8 character 成語, I may very well not care enough about it to want to be drilled on it every day until I get it right. If I got 7/8 characters, that’s good enough for me. But that’s a very personal choice, and I would like it to be made by me and not hard-coded into the app.

The second is that the above logic is simply incorrect. I have experienced this incorrectness on several occasions, and it is frustrating. The problem is that when I scribe or assign a tone to one of N characters in a word, an error can be the result of many things:

  1. I might have drawn the character incorrectly.
  2. I might have believed I was supposed to be using a different character.
  3. I might have misremembered the tone used by the character.
  4. I might have chosen a tone that was incorrect given the context.

There may be others. But of the above, only #1 and #3 represent a situation where my knowledge of the character is in question. In those cases, it is probably good to mark the character wrong, and it might be a case where I care less about the word (though again, I’d like to be the one make that call). In the case of #2 and #4, though, my error was wholly that I didn’t remember the word. Marking the character wrong and the word correct is unequivocally the complete opposite of what should be done.

An example I experienced quite a bit before I gave into O’BrienSkritter and its insistence on using the fifth fingertone were compounds ending in 邊. I’d keep getting tone cards for 邊 on its own, and keep getting them right, but they would keep coming back because I’d frequently enter 3-1 for words like 左邊. Assuming for the moment that 3-1 is wrong, entering 3-1 only means I don’t know how to say 左邊. It in no way represents a misunderstanding of 邊.

A far more entertaining example is 啊. Since all five tones are valid, you literally can’t get it wrong. But I am asked its tone a lot more than I should (taking on a different tone in 是啊 and 好啊 frequently trips me up on or the other).

(The above examples should be uncontroversial. I would, however, take things a philosophical step further and say that even the case of #3 (not that Skritter can tell the difference :slight_smile: ), I lean towards thinking the fault should be 100% assigned to the word. Tone changes happen enough that even for characters with unambiguous tone marking an intra-word tone error as a character error is reinforcing a relationship that isn’t really there. Moreover, the tones are most important when speaking, when to operate at speaking speed you are remembering – at the very least – the sounds of whole words. You don’t have the time to analytically construct each word out of its “characters” and their tones. At some point, your remembering of how to pronounce a word simply starts having a lot less to do with the individual characters.)

Unrelated to your discussion, but this is just plain wrong in Skritter. Both 啊 in 是啊 and 好啊 should be neutral tones. Naturally, the 啊 after 好 is high, but that’s just normal neutral tone behaviour; it’s still neutral. I have updated the reading and audio (which was correct) in Skritter.

1 Like

Concur that whatever the underlying logic of Skritter’s default plan for word-level determination, having the ability to change word level grading independently of the the component characters was useful and should be restored.

1 Like

This happened to me again today (more than once).

The first, more poignant time was a writing card for 烏龍茶. I couldn’t remember which wū it was, so I got that character wrong, but Skritter decided I got the word right and scheduled my next review for 8 months from now.

That’s a long time for a word I couldn’t write, to put it mildly.

Like the 翠 in 翠玉白菜, I’m not studying 烏, so character-specific grading will have no secondary educational effect. Unlike 翠, I actually know 烏 (it’s an important word in Japan :wink: ) and could write it just fine – knowing how to write “crow” does not determine one’s ability to write “oolong”.

Yes, I used to override the word grading in Web Legacy Skritter fairly often.

Wouldn’t killing the logic entirely just make things easier? I think the only way the logic every really made sense was if you’re always adding every character that you’re learning in words to your study queue. As you’ve pointed out @powelliptic, simply knowing how to write an individual character, doesn’t actually mean you know how to write that character in the context of a word or phrase it appears in.

This way the word is marked as incorrect, and it’ll be due again for study. In the event that it is a longer word you don’t want to write entirely, just tap the skip button for the character(s) and skip writing them again.

It’s probably a very easy thing to comment out in a beta build for everyone to try.

1 Like


The important thing is that I review words often enough. As long as that is true, the fact that I sometimes review characters too often isn’t a big deal.