It's also interesting how you showed how Benford's Law breaks down, especially when prices are involved. There's lots of $10, $100, and $1000 limits, so you will get a lot of prices being pushed back to something starting with an 8 or 9.
Yes, that's why it's an interesting tool for spotting 'anomalies'. That doesn't mean it's spotting things that are incorrect, or fraudulent, or illegal etc., just it spots things that are out of the ordinary.
I have a feeling that datasets that are largely defined by human psychology - the list of iPhone passwords is a good example - are less likely to adhere to Benford's law than "naturally" generated datasets.
Benford's Law really only applies to numbers where the growth rate is a function of the current value (ie. exponential growth). It's not some magic property that can be applied to any dataset.
This isn't true. Benford's law applies just as equally to ordinary, arithmetic growth as well. The reason Benford's law works is because a growing number spends as much time with "1" as its initial digit as it did traversing the entire previous order of magnitude. This is true true whether the growth is exponential or arithmetic or multiplicative.
Consider a sequence increasing by 1 each period. Now pick a random number between 1 and 10000. Generate the sequence between 1 and your random number. It will approximately conform to Benford's law, modulo your ending number.
Benford's law is a property of growing numbers, not of any particular kind of growth.
Linearly growing sequences don't follow Benford's law, but lower first digits (1, 2, 3) are still more probable than higher first digits (7, 8, 9) "most of the time", as you describe it.
That is not true, you just happened to choose lucky starting numbers. For example consider this one: choose a number between 1 and 10000. Generate the sequence between 9000000 and 9000000+(your number). Everything starts with 9.
Benfords law applies only to exponential growth over a long timescale.