helloworld1 / AnyMemo

Advanced Spaced Repetition flashcard learning software for Android.
http://www.anymemo.org
GNU General Public License v2.0
151 stars 53 forks source link

Statistics screen not adding up #380

Closed studentjunk closed 8 years ago

studentjunk commented 8 years ago

I'm trying to figure out how the statistics screen is working. It seems to me that it should show the same information all day. But it is changing. The numbers aren't adding up. I took a few pictures after changing the time. https://www.dropbox.com/sh/a2qjtj0jka9a9fx/AABfNrgjcFtOkiCLctuE0Hada?dl=0

The number of cards scheduled stayed the same. But it did not add the 90 or so cards i didn't finish from yesterday.

The accumulated cards scheduled changes with the hour. This is an error i believe. For today, it seems to just show the cards ready to be reviewed. So my guess is we are missing the cards for today that haven't been displayed yet.

helloworld1 commented 8 years ago

Thank you for reporting. I think it is related to the time range. The X axis in statics is now + x * 24h to now + (x + 1) * 24h instead of the natural day. So for the first bar, it is the cards needs to be reviewed in the next 24 hours, not by the end of the day.

studentjunk commented 8 years ago

Thank you for the detailed explanation. Unfortunately, I don't think that explains everything. I uploaded a few screen shots again

Last night, i had zero cards to review and column zero had 3 cards. So if i am understanding things correctly, that would mean over the following 24 hours, i would be presented 3 cards. I woke up this morning and i had 30 cards to review.

Am i missing something else?

On Mon, Dec 14, 2015, 19:48 helloworld1 notifications@github.com wrote:

Thank you for reporting. I think it is related to the time range. The X axis in statics is now + x * 24h to now + (x + 1) * 24h instead of the natural day. So for the first bar, it is the cards needs to be reviewed in the next 24 hours, not by the end of the day.

— Reply to this email directly or view it on GitHub https://github.com/helloworld1/AnyMemo/issues/380#issuecomment-164606306 .

helloworld1 commented 8 years ago

The "rev 0" means there are 0 cards scheduled before now. The chart first column showing "3" means there are 3 cards scheduled to be reviewed in the time range now to now + 24h.

If you current have 0 cards to review, you do not learn for 24 hours, you will have 3 cards to review.

The difference between "number of cards scheduled in a day" and "Accumulative cards scheduled" is: number of cards scheduled in a day: for the n-th column, it means number of cards schedule specifically on now + 24 * n to now + 24 * (n + 1). It means if you reviewed all cards before that day and don't have any new cards scheduled on that day, you will have that number of cards to study. It only gives some estimates of your work load.

The "Accumulative cards scheduled" is: For the nth column,if you don't study any cards before now + 24h * n, you will have that number of cards to study. This is also unlikely to happen, but it also gives you another view of your workload.

I hope it explains something for you. If you would like to suggest some other statistics chart that can help user to estimate the workload, please let me know. THank you!

studentjunk commented 8 years ago

Thank you again for the detailed explanation. I believe that i understand exactly what is supposed to happen. However, i believe this is not what is happening.

I repeated the test last night (and uploaded pictures into dropbox again to show you if needed)

I reviewed all cards in my 'med' database (rev=0). I checked the stats. When n=0, number of cards scheduled in a day was 9. Accumulative cards was zero.

So if i understand what is expected, when i wake up the next morning, i should have 9 or fewer cards to review. Instead i have 27.

I thought maybe it was due to a database error, but it happened in my port database too. Is it just me? On Wed, Dec 16, 2015, 15:40 helloworld1 notifications@github.com wrote:

The "rev 0" means there are 0 cards scheduled before now. The chart first column showing "3" means there are 3 cards scheduled to be reviewed in the time range now to now + 24h.

If you current have 0 cards to review, you do not learn for 24 hours, you will have 3 cards to review.

The difference between "number of cards scheduled in a day" and "Accumulative cards scheduled" is: number of cards scheduled in a day: for the n-th column, it means number of cards schedule specifically on now + 24 * n to now + 24 * (n + 1). It means if you reviewed all cards before that day and don't have any new cards scheduled on that day, you will have that number of cards to study. It only gives some estimates of your work load.

The "Accumulative cards scheduled" is: For the nth column,if you don't study any cards before now + 24h * n, you will have that number of cards to study. This is also unlikely to happen, but it also gives you another view of your workload.

I hope it explains something for you. If you would like to suggest some other statistics chart that can help user to estimate the workload, please let me know. THank you!

— Reply to this email directly or view it on GitHub https://github.com/helloworld1/AnyMemo/issues/380#issuecomment-165232433 .

helloworld1 commented 8 years ago

That sounds like either:

  1. database has some errors.
  2. The algorithm to calculate the statistics is wrong. Could you send a copy of your db to my email?
helloworld1 commented 8 years ago

Thank you very much for your database. I have identified two issues in the code:

  1. The "Number of cards scheduled in a day" wrongly aligned the date to a natural day boundary. I removed the alighment code. Commit: 94f97ae6c24224639e9edac4a248678a8b0ade40
  2. The "Accumulative cards scheduled" starts at day 0. The first column shows the cards scheduled for now. I keep as it is. But I think I should make it clear.

If you are willing to test for pre-release APK, please let me know. One issue for new version is that if you used the new version to open a db, you cannot open it in old version. You have to back up all you dbs to your computer first.

studentjunk commented 8 years ago

Thanks for looking into this. I can always use the export function to revert to the old version correct? What's the best format for exporting if needed? So long as I can go back if there is a problem, then i'd be happy to try the new version. Just let me know when it's ready.

On Fri, Dec 18, 2015 at 9:05 PM helloworld1 notifications@github.com wrote:

Thank you very much for your database. I have identified two issues in the code:

  1. The "Number of cards scheduled in a day" wrongly aligned the date to a natural day boundary. I removed the alighment code. Commit: 94f97ae https://github.com/helloworld1/AnyMemo/commit/94f97ae6c24224639e9edac4a248678a8b0ade40
  2. The "Accumulative cards scheduled" starts at day 0. The first column shows the cards scheduled for now. I keep as it is. But I think I should make it clear.

If you are willing to test for pre-release APK, please let me know. One issue for new version is that if you used the new version to open a db, you cannot open it in old version. You have to back up all you dbs to your computer first.

— Reply to this email directly or view it on GitHub https://github.com/helloworld1/AnyMemo/issues/380#issuecomment-165935603 .

studentjunk commented 8 years ago

By the way, if you are taking any polls, my preference is to use the natural day balance. But regardless of your decision, i agree that it should be consistent among the 2 graphs

On Sat, Dec 19, 2015, 05:33 Kalonji Collins scholar4chess@hotmail.com wrote:

Thanks for looking into this. I can always use the export function to revert to the old version correct? What's the best format for exporting if needed? So long as I can go back if there is a problem, then i'd be happy to try the new version. Just let me know when it's ready.

On Fri, Dec 18, 2015 at 9:05 PM helloworld1 notifications@github.com wrote:

Thank you very much for your database. I have identified two issues in the code:

  1. The "Number of cards scheduled in a day" wrongly aligned the date to a natural day boundary. I removed the alighment code. Commit: 94f97ae https://github.com/helloworld1/AnyMemo/commit/94f97ae6c24224639e9edac4a248678a8b0ade40
  2. The "Accumulative cards scheduled" starts at day 0. The first column shows the cards scheduled for now. I keep as it is. But I think I should make it clear.

If you are willing to test for pre-release APK, please let me know. One issue for new version is that if you used the new version to open a db, you cannot open it in old version. You have to back up all you dbs to your computer first.

— Reply to this email directly or view it on GitHub https://github.com/helloworld1/AnyMemo/issues/380#issuecomment-165935603 .

helloworld1 commented 8 years ago

The review count is not using natural day after AnyMemo 9.0. So I think statistics should take the same approach.

You are correct, you can export to Mnemosyne XML or Mnemosyne2 cards file and then import into the old version. It will work in old version. If the db file is broken in any case, you can send me a copy and I can help you to fix it.

I will send you a copy of AnyMemo preview version APK by email.

studentjunk commented 8 years ago

Thanks. I have been using the new version and it appears to be working correctly. I have another question and a suggestion.

In the statistics, each card is only counted once right? Over the 24 days, many cards will be repeated when they are missed. Do the stats count the cards when they are expected to repeat?

Suggestion: in the accumulated stats, when n=0, it only shows the cards to review, and adds no new information. I think it should be removed so all the data shifts to the left by one. I imagine you would just need to adjust the formula. This would also make this graph more consistent with the other one. Finally, i like having the 3 button grade button style as default. I never noticed it before and prefer it.

On Sat, Dec 19, 2015, 23:03 helloworld1 notifications@github.com wrote:

The review count is not using natural day after AnyMemo 9.0. So I think statistics should take the same approach.

You are correct, you can export to Mnemosyne XML or Mnemosyne2 cards file and then import into the old version. It will work in old version. If the db file is broken in any case, you can send me a copy and I can help you to fix it.

I will send you a copy of AnyMemo preview version APK by email.

— Reply to this email directly or view it on GitHub https://github.com/helloworld1/AnyMemo/issues/380#issuecomment-166060811 .

helloworld1 commented 8 years ago

Thank you for testing it out. For your suggestions:

  1. Each card is counted only once. The statistics only shows the current view of cards. If you reviewed some of the cards later or studied some cards, the view will change because the cards will be rescheduled. So in short, it means if you repeat some of the cards, the statistics chart will change.
  2. I will do as you suggested. The n = 0 is kinda pointless. Fixed in 2912ecf04d5e7800a93d58c3f3bb59b2a03cb9b9
  3. The 3 button style will be the default. It can be customized in "Options".

I am closing this issue. If you have other comments, feel free to open new ones.