Just curious how to calculate the length of time it would take someone to read a paragraph with x characters and/or y words. Any thoughts on this?
Let’s say it’s 938 words. or if you use JavaScript you can do this
const blogPost = "article or blog post if its in a variable like this"
// get number of words in blogpost
const wordCount = blogPost.split(" ").length
Divide your total word count by 200.
You’ll get a decimal number, in this case, 4.69. The first part of your decimal number is your minute. In this case, it’s 4.
Take the second part — the decimal points — and multiply that by 0.60. Those are your seconds. Round up or down as necessary to get a whole second. In this case, 0.69 x 0.60 = 0.414. We’ll round that to 41 seconds.
The result? 938 words = a 4 minute, 41 second read.
But that’s really specific. Why not round that time to make things simpler for your reader? Anything less than 30 seconds gets ignored; anything more than 30 seconds gets rounded up to the next minute.
that rounding makes your 938-word article a 5-minute read.
I used an approximate 233 words per minute reading time as shown in the fiddle HERE.
Rounded up the result to one decimal using readingtime = +readingtime.toFixed(1);
.
Cross checked the result with MS Word count and seems acceptable. Did also some stopwatch timing with reading time and seems reasonable.
The code for word count was taken from stackoverflow
Late response but hope it helps!
I would toss the X characters idea. Humans don't read on a character by character basis; we recognize entire words as a whole per se.
Check this article on rates of reading. Studies showed a range of reading rates (measured in words per minute) based on the purpose for reading. We read slower if we are trying to maximize the amount of information we absorb, and very fast if we are searching for something in particular within a given text.
With that, you could use the average range to provide a range of time that a person would be expected to read your paragraph in given Y number of words.
If you want to get more accurate, you will have to add extra parameters, such as: