← All articles

Script Counter 2.1: Toll-Free Numbers, Short Dates, and Seventeen New Reading Controls

Version 2.1 adds seventeen new controls over how your script is read aloud, from toll-free phone numbers and short dates to slashes, leading zeros, and whether you say fifteen hundred or one thousand five hundred. It also corrects thirteen readings that were wrong, including phone numbers written with word-processor dashes, decades read as seconds, bare web addresses, and the phrase 24/7.

 · 12 min read · Updates

Most Script Counter releases have been about finding more things to expand. This one is different. Version 2.1 is about the fact that two narrators can read the same line correctly and still not say the same words. One says “fifteen hundred dollars” and the other says “one thousand five hundred dollars”. Both are right. Only one of them matches your script.

So this release adds seventeen new controls over how your script is read, bringing the options panel to thirty-six. It also fixes thirteen readings that were simply wrong. Here is the tour.

Toll-Free Numbers Read Like Phone Numbers Again

This was a real bug, and it was hiding in the most common phone number in commercial copy. A toll-free number lost its country code, and the leading digit was stranded outside the phone number entirely. The result was a mess that no one would ever say out loud.

Now a toll-free number is read the way you would actually say it, grouped and paced:

  • 1-800-555-0199 becomes “one, eight hundred, triple-five, zero one double-nine”
  • 555-123-4567 becomes “triple-five, one two three, four five six seven”

Every North American toll-free code is recognised now, so 888, 877, 866, 855, 844, and 833 are grouped and paced correctly alongside 800. The ones ending in double zero are read as hundreds, because that is how they are said. The rest are read as digits, for the same reason:

  • 1-888-555-0199 becomes “one, triple-eight, triple-five, zero one double-nine”
  • 1-877-555-0199 becomes “one, eight double-seven, triple-five, zero one double-nine”

Numbers written with dots are fixed as well. 1.800.555.0199 used to come apart into decimals and produce “one point eight zero” followed by nonsense, because a dotted number looks a lot like a version number. Ordinary numbers are now recognised too, by checking the area code and exchange against real numbering rules, so 1.415.555.0199 reads “one, four one five, triple-five, zero one double-nine” while an address like 192.168.1.1 and a version like 1.2.3 are left alone.

Bare local numbers are fixed too. 555-0199 was being read as a range, “five hundred fifty-five to one hundred ninety-nine”. It now reads “triple-five, zero one double-nine”. Genuine ranges are protected by checking the exchange against real numbering rules, so “pages 100-2000” is still a range.

Two subtler phone bugs went with them, and both are the kind you would never think to look for. A number at the end of a sentence was not being detected at all, because the rule that stops a number running into more digits was also rejecting the full stop. Since that is where a phone number usually sits in a script, it mattered.

The other came from a reader who pasted a script out of a word processor. Word had quietly replaced the hyphens in the phone number with non-breaking hyphens, which look identical on screen. The counter did not recognise them as a phone number and read the result as a chain of ranges: “one to eight hundred, five hundred fifty-five to zero one nine nine”. Every dash variant is now recognised, and a range is only a range when it joins exactly two numbers, so a longer chain is never mistaken for one.

If you prefer a flat digit-by-digit read, turn off Toll-free style and the grouping goes away. The commas are there for pacing and do not change the word count.

Short Dates Are Dates Now, Not Fractions

This was the worst bug of the four, because it was silent. A date with no year is one of the most common things in a commercial script, and the counter was reading it as a fraction. “Order before 12/31” came out as “order before twelve thirty-onths”, which is not a word in any language.

Short dates now have a dedicated setting with three positions, because the right answer depends on where your client is:

  • American: 12/31 becomes “December thirty-first”
  • International: 31/12 becomes “December thirty-first”
  • Off: the pair is left to the fraction rule, which is the old behaviour

The two modes disagree on purpose. In American mode 4/3 is April third. In International mode the same text is March fourth. That ambiguity is real, it exists in your script rather than in the tool, and the setting is how you tell us which one you meant.

Genuine fractions are protected in both modes. “Add 1/2 cup” still becomes “add one half cup”, and the same goes for the other common fractions a script actually contains.

Symbols Split Into Five Separate Switches

Symbols used to be one switch covering percent, hash, and at. That was too blunt. A social media script wants hashtags spoken but not the number sign, and a corporate script wants the opposite.

There are now five independent controls, and splitting them uncovered two more bad readings that the single switch had been hiding. The number sign was being read as a hashtag, and a decimal percentage was losing its decimal point entirely:

  • See item #3 becomes “see item number three”, not “hashtag three”
  • Up 3.5% becomes “up three point five percent”, not “three.five percent”
  • Tag it #VoiceOver becomes “tag it hashtag VoiceOver”
  • Follow @VOWordCounter becomes “follow at sign VOWordCounter”
  • Meet @9 becomes “meet at nine”

Capitalisation is preserved now too. A brand name in a hashtag or a handle keeps its shape on the page instead of being flattened to lower case, which makes the preview far easier to read back against the original.

Web Addresses Without the www

Scripts write a web address the way a client says it, which usually means no scheme and no www. Until now the counter only recognised the prefixed form, so a bare address was counted as a single written word and never expanded.

vowordcounter.com now becomes “vowordcounter dot com”, and example.co.uk becomes “example dot co dot uk”. Only recognised top-level domains qualify, which is what keeps a filename like script.pdf, an abbreviation like e.g., and a sentence that is simply missing a space out of the results.

One quirk is worth knowing. A label of four letters or fewer is spelled out, so acme.org reads “a c m e dot org”. That is exactly right for hp.com and wrong for a short brand name, and no rule can tell the two apart from the text alone. If your script is full of short brand domains, turn the option off.

24/7 Is an Idiom, Not a Fraction

”Open 24/7” was being read as “open twenty-four sevenths”, for the same reason short dates were breaking: a slash between two numbers looks like a fraction. It is now read as the idiom, “open twenty-four seven”, and “24/7/365” becomes “twenty-four seven three sixty-five”.

We stopped short of applying the same treatment to “9/11”. In American short-date mode it legitimately reads as September eleventh, and nothing but the surrounding sentence can tell you which one a script means, so we left that judgement with you.

Repeated Digits Say Double and Triple

Nobody reads a phone number as “five five five”. They say “triple-five”. The counter now does the same, in the readings where digits are spoken one at a time:

  • 007 becomes “double-zero seven”
  • 0005 becomes “triple-zero five”
  • 9962008700 becomes “double-nine six, two double-zero, eight seven double-zero”
  • 1-800-555-0199 becomes “one, eight hundred, triple-five, zero one double-nine”

Switch on Say “oh” for zero and the same lines read “double-oh seven”, “triple-oh five”, and “double-nine six, two double-oh, eight seven double-oh”, which is how most commercial reads handle it.

A longer run breaks into pairs, with a single triple when the count is odd, so four zeros are “double-zero double-zero” rather than the easily misheard “quadruple”.

This is strictly a digit-by-digit rule, and that boundary matters more than it might seem. A number read as a quantity is never touched: $5,500 is “five thousand five hundred dollars”, 1955 is “nineteen fifty-five”, and 55 is “fifty-five”. None of them will ever say “double-five”. There are tests for each of those specifically, because the failure would be silent and embarrassing.

Fixing this exposed one more error. The hundreds reading was being applied to any three-digit group ending in double zero, including the middle of a number, so 415-200-0199 was coming out as “two hundred” in the middle of a phone number. Only the area code takes that reading now, which is the only place anyone says it.

Decades, and Ranges That Carry a Unit

”The 1990s” was being read as “one thousand nine hundred ninety seconds”, because the trailing letter was being taken for the unit of time. Decades now read the way you would say them:

  • the 1990s becomes “the nineteen nineties”
  • the 1900s becomes “the nineteen hundreds”
  • the 2000s becomes “the two thousands”
  • the 2010s becomes “the twenty tens”

A genuine duration is untouched, so “wait 30s” still reads “wait thirty seconds”.

A range carrying a unit had a similar problem: the unit was claiming the second number before the range was noticed, so 65-75°F came out as “65-seventy-five degrees Fahrenheit” with the first number stranded. It now reads “sixty-five to seventy-five degrees Fahrenheit”, and 5-10km reads “five to ten kilometers”.

Slashes

A slash between a number and a word is almost always spoken as “per”, and until now you had to fix that by hand.

It is $3/dozen becomes “it is three dollars per dozen”. Fractions, dates, measurements, and web addresses all claim their own slashes first, so this rule only sees the ones nothing else wanted.

For whatever is left, such as “A/B” or “and/or”, there is a second setting with three positions: leave it alone, read it as “per”, or read it as “slash”. An A/B test becomes “an A per B test” or “an A slash B test” depending on which you pick.

How Numbers Are Spoken

This is the group that prompted the release. None of these change which text gets expanded. They change the words that come out.

  • Say fifteen hundred. $1,500 becomes “fifteen hundred dollars” instead of “one thousand five hundred dollars”. This covers whole hundreds from 1100 to 9900, so 2500 is “twenty-five hundred” while an exact thousand stays put and $2,000 is still “two thousand dollars”. On by default.
  • Say “and” in numbers. $1,234.56 becomes “one thousand two hundred and thirty-four dollars and fifty-six cents”. This is the British and Commonwealth read. Off by default, since most modern voice-over direction drops it.
  • Hyphenate number words. On, you get “twenty-first”. Off, you get “twenty first”. This changes the text you read from, not the count, because a hyphenated compound is one word on the page and two words in the mouth either way.
  • Leading zeros digit by digit. “Agent 007” becomes “agent zero zero seven” rather than “agent seven”. On by default.
  • Say “oh” for zero. The same line becomes “agent oh oh seven”, and the setting carries into phone numbers too. Off by default.
  • Read www as double-u. Some reads want all three letters spelled out in full. Off by default, since “w w w” is the more common direction.

The Written Count Now Matches Your Word Processor

This one will be visible the moment you open the tool, so it deserves its own explanation.

The Script Counter shows two numbers, and the written one is supposed to be the figure you already know: what Word or Google Docs tells you. It was not. The counter was splitting on punctuation, so it read $1,500, as two words and 1-800-555-0199 as four. A script that Word called ten words was being reported as fifteen.

The written count now uses the same rule your word processor does. That number will go down for any script with prices, phone numbers, or hyphenated words in it, and nothing is missing: the difference between written and spoken simply gets bigger, because it was always bigger than we were showing you.

Our own homepage example makes the point. It is a ten word line that becomes twenty-two words at the microphone. The tool used to report that written figure as fifteen, which quietly halved the gap it exists to show. Both numbers are now locked to a test, so the example and the engine cannot drift apart again.

The spoken count is untouched. It still splits on punctuation, because “twenty-one” really is two words when you say it out loud. Two numbers, two questions, two rules. We checked every case in our test corpus: two thousand four hundred and forty written counts changed, and not a single spoken count moved.

Some Counts Will Change, and That Is the Point

When we rebuilt the engine in July, the whole promise was that your numbers would not move. A rewrite that changes your results is a rewrite you cannot trust, so we held that release to producing identical output.

This release is the opposite kind of change, and we want to be straightforward about it. Thirteen of the readings above were simply wrong, and correcting them changes the spoken count for any script containing a phone number, a decade, a bare web address, a short date, a number sign, a decimal percentage, a range carrying a unit, or the phrase 24/7. If you re-run an old script and get a different number than you did last month, that is expected. The new number is the accurate one.

Since a spoken word count is usually the basis of a quote, it is worth re-running anything still open. Our guide to quoting voice-over work covers how that count turns into a rate, and why accurate word counting matters explains why the written count was never the right figure to quote from.

One correction moves counts the other way, and it is worth expecting. Saying “triple-five” instead of “five five five” is two words rather than three, so any script with repeated digits in a phone number will come out slightly shorter than before. That is not the count shrinking, it is the count finally matching the read. If a quote depended on the old figure, re-run the script.

One change is purely cosmetic. Currency names are no longer capitalised in the middle of a sentence, so the preview reads “fifteen hundred dollars” rather than “fifteen hundred Dollars”. No count moves as a result.

Finding Your Way Around Thirty-Six Options

Thirty-six switches is a lot, so the panel is now grouped into four sections: Preprocessing, Expansions, Symbols and slashes, and Number style. The defaults are set to the most common American commercial read, which means most people can ignore the panel completely and simply paste a script.

Your choices are remembered in your browser between visits, and they never leave your device, exactly as your script text never does. Every rule, with before and after examples, is documented on the Script Counter features page, which has been updated for this release.

Check It Yourself

You do not have to take any of this on trust. The Try a sample script button now loads a script written to contain one of everything above, grouped under labelled headings, so you can watch each rule work on a single page.

That sample is also how we test the tool. Every option in the panel has to be demonstrated by it, and the expected reading for each one is checked automatically, so an option cannot be added without the sample being updated to show it off. The whole expanded script and both word counts are pinned as well.

That turned out to matter more than we expected. Writing the sample immediately exposed three of the bugs described above, all of which had passed their own tests. Each rule was correct on its own; they only broke when one realistic script had to pass through every rule at once. It is the closest thing we have to reading a real script over the tool’s shoulder.

What’s Next

Two smaller things are still on the list, and both are on the sample script’s future rather than its present. A range whose first number happens to look like a telephone exchange, such as “pages 200-3000”, is read as a phone number, because nothing in the text says otherwise. And a three-part version number such as 1.2.3 is read as a decimal followed by a stray dot, which looks wrong whenever a script mentions software.

If a script of yours reads incorrectly, that is the most useful thing you can send us. Reach out through the contact page or email info@vowordcounter.com, and paste the line that came out wrong.