This is a tracking tool for use with the FortuneBox android app. FortuneBox is an app that purports to give away gift cards and other prizes. (I have personally already won a $25 amazon gift card, so I know it does give away at least some prizes once in a while.) Is it legit? Or, is it trying to pull a fast one on us all? That's what you can figure out (with some probability of being correct) by using this tool.

So, here's how the FortuneBox app works. You will see giveaways that you can enter. These can be giftcards, phones, tv's, etc. You enter the giveaway by hitting the "Enter" button. Every giveaway has a certain number of target entries that, once reached, ends the giveaway. In other words, once enough people enter the giveaway enough times it gets closed down. For example, a $100 amazon gift card giveaway might have 23,250 total entries. Once all the players who entered that giveaway reach a total combined number of 23,250 entries, the contest is closed, and the prize is (presumably) given away to the person with the winning entry. Each player may enter as many times as he likes (but there is a limitation on the total number of entries any single person can have per day, not sure how many, but it's in the 100's.) The way the app makes its money is via advertising. Many of your clicks will bring up a full screen ad, which you will need to close in order to proceed. The good thing with this app is none of the ads require you to wait until the ad finishes playing. Longest I've had to wait is like 5 seconds, but that's rare. Most of the time you can immediately dismiss the ad on move on.

Each time you enter a giveaway you are randomly given a number between 0 and the total number of entries in that giveaway. In the previous example of the $100 amazon gift card with 23,250 entries you would be given a number between 0 and 23,249 for each of your entries. The winning number is determined mathematically by the following method: take the final 20 entries, assign a timestamp (number of milliseconds elapsed since January 1, 1970) to each, add up all those timestamps, and take the remainder when dividing the timestamp sum by the total number of entries in the giveaway. Even though the final 20 entries' timestamps are used for the calculations, all of the entries will have the same chance of winning, whether it was the first entry, the middle entry, of the final entry in the giveaway, they all have the same chance of winning. Note also the remainder in the division will always be a number between 0 (no remainder) and the divisor - 1. Examples: 3/3 = 1 remainder of 0. 4/3 = 1 remainder of 1. 5/3 = 1 remainder of 2. 6/3 = 2 remainder of 0. Any number larger than 3 that you divide 3 into will always have a remainder of 0, 1, or 2. Even though the timestamp sum is a huge number (an example of a recent timestamp sum is 30145073669515) taking the remainder of dividing it by the total number of entries in a giveaways guarantees the remainder will always be one of the numbers assigned to one of the entries.

I can think of a number of ways this could be rigged. One way would be to have "house players", which wouldn't be real human players, just entries that go to usernames the app developers can claim are other human players. When I check the results and see somebody named "Jenny G." won, how do I know Jenny G. is a real person? They could be giving 80% of the entries to dummy accounts, thereby risking only actually having to give the prize away 20% of the time. I'm not saying this is what is actually happening, just giving examples of ways the system could be rigged. Another method would be to fudge the timestamps to ensure the timestamp sum (only would need to fudge one timestamp) comes out to a number that, when divided by the total number of entries, results in a remainder of the desired winning number, which could be the only one that was assigned to the house dummy player account. And since we never see the actual timestamps (just the timestamp sum)...

How does this tool on this page help me determine whether FortuneBox is rigged?Since you know how many total entries there are in each giveaway, along with how many times you entered, it's simple enough to figure out your probability of winning the giveaway -- it's merely your number of entries divided by the total number of entries of all players. As a simple example, if there were 100 total entries and you had 50 of them your probability of winning would be 50 / 100 = .5 = 50%. It's always way more than 100 total entries, but I think you get the point. Your entries / total entries = your probability of winning. The problem is your chance of winning any given giveaway will always be very, very small. Best I've managed so far is about a 1% chance of winning. But this is also easily overcome by entering many different giveaways. Let's say you entered 100 giveaways and you had a 1% chance of winning each giveaway. What is the probability that you lost *all* 100 giveaways? Answer: 0.99^100 = 0.366. There was only a 36.6% chance of losing *every* giveaway. If you played that many times with 1% chance each and you didn't win any of them, then you can be 63.4% certain the game was rigged. So, what this tool does is it gives you a way to determine the likelihood that the game is rigged. 63.4% is by no means a gimme, but it does mean if you didn't win any of those giveaways it's more likely than not the game was rigged against you. Each time you play that percentage will increase, edging closer and closer to 100%, but never quite reaching it. By the time your reach 90% and still haven't won anything yet, you can be fairly certain it was rigged.

The tool works just like a spreadsheet. You enter values only in the 3 left-most columns (and in the right-most column if you are lucky enough to win something). First thing to do is click the Add New Entry button. This will add a new blank row to the spreadsheet table. Next, you enter your data into the 3 cells on the left side: Prize Value, My Entries, and Total Entries. The rest of cells in the row will be calculated by the tool. If you win something, put the value of the item in the Winnings column (the one all the way to the right). You can hit the Calculate/Save button to force the calculations if necessary, but I believe I have it working where it automatically recalculates for you as you enter your data. Use the tab key to easily navigate between cells. Your table of data will be saved in your browser in something called local storage (nothing is saved to my server, it's all saved locally in your browser). Data is automatically saved anytime the data is calculated, which happens automatically when you change any cell's value or when you click the Calculate/Save button. The Load Entries button will load a previously saved set of data, but this is also automatically loaded when the page loads, so you shouldn't need to use that button very often. The Clear Table button will do as the name suggests, clear the table. But this doesn't delete the data stored in local storage in your browser. To do that, hit the Clear Storage button. (Just be careful hitting Clear Storage because there is no way to recover your lost data once it's cleared.)

The Prize Value is simply the value of the prize in the giveaway. FortuneBox always gives us this information, so just use what they give you. (Alternatively, if you disagree with their valuation, enter your own valuation.) The My Entries field is where you enter the number of entries you have in the giveaway. Enter as many times as you like, just keep in mind you do have a daily limit and also the time you spend entering one giveaway is time you could have spent entering another giveaway (or doing the laundry). The Total Entries column is where you enter the total number of entries by all contestants.

Win Probability is the probability that you will win this particular giveaway. It's always a decimal number between 0 and 1, with 0 being no chance and 1 being guaranteed victory. If you prefer to think of it as a percentage, just move the decimal 2 places to the right and you have our percentage. Example: 0.0023 = 0.23%.

1 in xx Odds is the same as the Win Probability, except it's given in terms of a chance of winning as expressed as 1 in xx. For example, a win probability of .01 = 1% = 1 in 100. 0.02 = 2% = 1 in 50. 0.05 = 5% = 1 in 20. I think it's easier to understand the odds when they are expressed as 1 in xx, but that's just me.

Win Something Probability is where the action is. This tells you your probability of winning *at least 1* of the giveaways you've entered up to that point (or since your last win if you've won something already). This value is determined as the product of all the other single game Win Probability numbers subtracted from 1. I gave the example above of using 1% Win Probability in 100 giveaways. This would give you about a 63.4% chance of winning at least one of the giveaways. If you play 100 times at 1% each and still don't win you can be 63.4% certain the game is rigged. What does that mean? Well, it means the game is probably rigged, but not necessarily so. Keep playing until you get that number even higher to increase your certainty level. (Note: if you enter a value in the Winnings column, this resets the Win Something Probability and Win Something Odds for the next giveaway in the spreadsheet just as if it was the first one in the table.)

Win Something Odds is similar to the 1 in xx column covered above. It just gives you the Win Something Probability expressed as the odds of winning as 1 in xx, with xx being the number in the cell. As an example, 63.4% would be 1 in 1.57 odds of winning. This number will drop with each new giveaway you add to the tool, but will never quite reach 1.

Value Per Entry tells you the *average* real value of each entry in the giveaway. (All of the entries have zero value except the winning entry, which is worth whatever the prize is worth.) This will help you determine where you should be spending your entries in order to maximize your winnings (presuming the system isn't rigged against you). The bigger the prize and the fewer total entries, the bigger this value in this cell will be. Should you try for the $25 gift certificate with 5,925 total entries or for the $100 gift card with 23,250 total entries? The $100 entries are valued at $0.0039 each whereas the $25 entries are valued at $0.0042 each, so it actually pays to try for the $25 card rather than the $100 card.

Value of Entries gives you the total value of all your entries in that giveaway. This is simply My Entries multiplied by Value Per Entry. If this is a fair system (not rigged) that's the average value you will earn for that number of entries in that type of giveaway if you use the app long enough.

Cumulative Entry Values gives you the sum of all the Value of Entries numbers up to that point. If you use this FortuneBox app for, let's just say, a year of daily playing. By the end of that year the amount in the Cumulative Entry Values box should be approximately the same as the amount you will have won in total prizes (if it's a fair game and not rigged against you). As I type this my Cumulative Entry Values box stands at $11.50 and my actual winnings total stands at $25, so I'm still ahead of the game, so to speak.

Winnings is where you enter the prizes you have won. This is optional, but what it really does is it zeroes back out the Win Something Probability and Win Something Odds cells, allowing you to reset without having the clear out the table and start all over. Note: it does not zero out the cumulative values cells. My recommendation is to always put your winnings in that cell. If you win something you might figure, hey, this is a fair system, so I won't bother entering all this stuff anymore, and that's fine, but you really won't know for sure the game is straight if you stop using the tool. I've mentioned that I already won something ($25 amazon card), but that doesn't mean I'm convinced yet of the game's legitimacy. They might be letting a few people win these $25 cards just so they'll go on the play store and give them some good reviews and testimonials (as I have also done).

I've only been using this app for a short time (about 10 days or so), but I have a few observations I would pass on to you. Use a different number of entries instead of always using, for example, 25 entries per giveaway. This will make it easier to enter the data into this tool because it resolves some ambiguities (did I enter this one already or was it the other one?). Wait until *after* the giveaway is "announced" before keying in the data into this tool. If you enter while the giveaway is still being processed, sometimes they can get rearranged, making it more confusing to enter. They way I do it is enter prize value, my entries, and then tap the giveaway to see who won and hit the link that shows how the number was generated (to get the total number of entries value). Pay attention to the Value Per Entry values for the various giveaways and focus your attention on those that offer the best value. This *should* theoretically help you maximize your winning over the long term. Enter several different giveaways rather than spending all of your daily entries on the same giveaway. Think of it like this: if you had 1 entry in 100 giveaways you would have a chance (a very small chance, albeit) to win 100 prizes, whereas if you had all 100 entries in the same giveaway the *most* you could win would be that 1 single prize. (99 of your 100 entries are guaranteed to be losers, another way of looking at it.)

There are probably still a few things I will be adding to this. As it stands it's just something I cobbled together one afternoon. I plan to use it myself, and I'm sure I'll probably come up with some ideas to make it better or more user-friendly. But I won't make any changes that will "break" your existing data by rendering the data stored in local storage incompatible. I'll include a changelog in this location as I make changes.

Amazon card entry counts keep changing, so if you're using the "00" shortcuts you might want to make sure the current values are still correct. Sorry for the inconvenience, but
it's beyond my control. Here are the current values the tracker is using:

Amazon $25 cards:

Amazon $50 cards:

Amazon $75 cards:

Amazon $100 cards:

v2017.10.06 -- Initial public release

v2017.10.09 -- Replaced 0's in first 3 leftmost columns with empty spaces to prevent extra 0 errors when entering new data.

v2017.10.09 -- Added comma separated volume (CSV) support via copy/paste for loading/saving to csv file

Many spreadsheet programs support CSV files. In Open Office Spreadsheet you can copy csv file contents to the clipboard, then choose Paste
Special (CTRL+SHIFT+V) and choose "unformatted txt". Another box will popup. Select the checkbox next to the word "comma" to set the
comma as a delimiting character. Then OK to paste in the data. Similary, you can save to CSV format win the Save As... dialog by selecting
CSV as the filetype. You can also simply save the csv contents to a text file for safe keeping by pasting into notepad, then saving from
there. I can't simply open a file save dialog from within the browser due to security limitations of html5. (Well, I suppose I could -- see
workoutgensdonline.)

v2017.10.10 -- Added capability to save CSV file to disk and vice-versa. The textarea control (Textbox) is used as the go-between between the disk and the table. CSV file contents must be staged in the Textbox before moving either to the table (Loading CSV to Table) or to the disk (Saving CSV to File). I know this seems cumbersome and over-complicated, but it's simple enough once you get the hang of it. Care must be taking in using the Load CSV to Table button since this will overwrite whatever is in the table with whatever is in the Textbox, and is not reversible. I have some minimal error checking (balks if the Textbox is empty), but it's minimal. This is why the Load CSV to Table button is in red text, to signify it's a hazard to use if used incorrectly.

v2017.10.12 -- Decided to separate Calculate/Save button into separate Calculate and Save buttons. Table is now no longer automatically saved upon calculating new entries. You'll need to manually save to local storage by hitting the Save button. The advantage is it allows users to recover from accidentally deleting the table. Disadvantage is if you forget to Save you will lose your changes between sessions. Save button will be renamed to *Save to indicate you need to save your data each time calculate() is called, such as when adding new entries or modifying data.

v2017.10.13 -- Added shortcut for entering "Total Entries" field when using Amazon Gift Cards in $25, $50, $75, and $100 denominations. Enter "00" (without the quotes) if it's an Amazon Gift Card in one of those denominations. The Total Entries required for that particular giveaway will automatically be substituted in for the "00". $25 cards have 5925 (now 5999, as of 10/19/2017) entries, $50 cards have 7250 (now 8799, as of 10/19/2017), $75 cards have 9375 (now 12500, as of 10/19/2017), and $100 Amazon cards have 23250 required total entries.

v2017.10.18 -- Added expected winnings (just the bottom line from the cumulative entry values) to the recap below the table. Note: expected winnings and actual winnings aren't really expected to converge until you've played for a long time.

v2017.10.19 -- Removed the annoying popup alert warning changes to table can't be undone when clicking the CSV Load/Save Options button. Not really needed since we no longer autosave on all calls to calculate() function.

v2017.10.19 -- Added this capability to calculate how many giveaways you need to enter to reach a targeted win probability:

The above simple calculator can be used to determine how long it would take, for example, to reach a win something probability of 51% if you devoted all of your daily entries each day to try to win a $25 Amazon gift card, which has 5925 total entries per giveaway. Answer is 13.73 if using 300, 5925, and 51 for the 3 boxes. In other words, if you use all 300 daily entries every day for 13.73 days to try to win a $25 Amazon gift card, which has 5925 total entries from all players each day, you would have a 51% chance of winning at least once. If you haven't won it in 2 weeks of trying, then more likely than not, the game is not on the up and up, so to speak. But that's still only a 51% chance. If you want to move that up to an 80% chance, enter 80 in the percentage box and hit Submit. (Answer is 30.97, so 31 days.)

This calculator could also be used for general probability problems. For example, how many times do you need to flip a fair coin in order to have a 95% chance of getting at least one head? To find out enter 1 in the your entries box, 2 in the total entries box, and 95 in the percent box, then hit submit. (Answer is 4.32, so we need 4.32 flips to have a 95% chance of at least one head.) Here's another one: how many times would you need to draw 1 card from a standard deck of 52 playing cards, re-inserting the card and reshuffling between trials, in order to have a 50% chance of drawing the ace of spades? Enter 1 in the your entries box, 52 in the total entries box, and 50 in the percent box, and then hit submit. (Answer is 35.7, so you'd need to draw about 36 times to have a better-than-50/50 shot at drawing the ace of spades at least once.) One more, since this is kind of fun: The odds of hitting the powerball jackpot are about 1 in 292 million. How many tickets would you need to buy in order to have a 50% chance of winning? Enter 1, 292000000, and 50 to find out. (Answer is 208,298,165.49.) Even if you would settle for a 1% chance, you still need to buy 2,934,698.04 tickets (or else play 2,934,698.04 weeks in a row at 1 ticket each week, or if twice a week, then divide that by 2). Let's say you play twice a week, then that means you'd need to play 1,437,350 weeks, twice a week, or for 28,213 years in order to have a 1% chance of winning.

A note on the math behind the above calculator, for those interested in such things. We use natural logarithms. The formula is actually not
so complex:

Number of giveaways to enter = Math.log(1 - p) / Math.log((tE - yE) / tE)

where p = the percentage probability you wish to target (expressed as a number between 0 and 1, e.g. 75% = 0.75)

yE = your entries (e.g. 300 entries if you use all available daily entries)

tE = total entries in the giveaway (e.g. 5925 {now 5999, as of 10/19/2017} for $25 Amazon gift cards)

and Math.log() is the natural logarithm function

v2017.10.19 -- Removed "undefined" as the value of some table cells when loading empty rows from disk, setting them to empty instead. This makes it easier to enter data because there's no need to delete the "undefined" value before entering values into the cells.

v2017.10.19 -- Noticed some of the Amazon Gift Card total entry numbers changed, so updated the "00" shortcut feature to incorporate these changes. $25 cards went from 5925 -> 5999, $50 cards went from 7250 -> 8799, $75 cards went from 9375 -> 12500, $100 cards are unchanged and still at 23250. $75 cards are the best value per entry at 8/10 of a penny ($0.008) per entry. Values are (from 25 to 100): .0042, .0057, .008, and .0043. Best bet is to play the $75, followed by the $50, then the $100, and finally the $25 giveaways.

v2017.10.19 -- Added win something probability to the recap summary below the table.

v2017.11.03 -- They keep changing the Amazon gift card total entries. $25 cards now require 6250 entries, $50 = 9250 entries. Not sure on the $75 and $100 if they've changed or not.

v2017.11.04 -- $75 Amazon cards now go to 13850 (up from 12500) entries. Not sure about $100 cards yet.

v2017.11.08 -- $100 Amazon cards go from 23250 entries to now 25600.

v2017.11.21 -- $75 Amazon cards go from 13850 to 14950.

v2017.11.24 -- Amazon cards entry counts are changing so often, I've added a paragraph above the changelog to show the current values rather than updating them each time here in the changelog.

I welcome all comments/suggestions/criticisms. Drop me a line via mwganson at gmail with FortuneBox Tracker in the subject line.