Skip to content
100% local

Dialogue balance counter

See how dialogue is split between characters in a screenplay or script.

Input
Output

Dialogue balance counter

Paste a screenplay excerpt or a script and this tool breaks down exactly how the dialogue is distributed between characters. It builds a table with each speaker's line count, word count, character count, average words per line and their share of the total dialogue — so you can spot at a glance who dominates a scene and who barely gets to talk.

Two dialogue formats are recognized automatically, or you can force one from the options. Screenplay style is an all-caps cue line — a character's name, optionally with a parenthetical like "(V.O.)" or "(CONT'D)" — followed by the spoken lines underneath it until a blank line ends the block. Script style is the simpler "NAME: spoken text" on a single line, common in stage plays, radio scripts and dialogue outlines. Whichever pattern shows up more often in the pasted text decides the auto-detected style.

Beyond the per-character breakdown, the tool reports a dialogue-density figure: what share of all the words are actually spoken versus narration and stage directions. Turn on "Merge case variants" to fold "JOHN", "John" and "john" into a single character when a script is inconsistent about capitalization, and raise "Minimum lines" to hide bit-part characters from a long ensemble cast without losing their words from everyone else's share. Sort the table by word count, line count or name, and switch the output between a plain aligned text table and CSV for pasting into a spreadsheet.

Everything runs locally in your browser. Your script never leaves your device, so it is safe to check dialogue balance on unpublished screenplays, work-in-progress novels or scripts under NDA before you share them with anyone else.

FAQ

How does the tool tell screenplay format from script format?
It counts how often each pattern appears in the pasted text — all-caps cue lines for screenplay style, "NAME: text" lines for script style — and uses whichever is more common. You can force either style from the input style option if auto-detection picks the wrong one.
What counts as "narration" in the dialogue-density figure?
Anything that is not attributed to a character: action lines and scene description in screenplay format, or any line without a "NAME:" prefix in script format.
Why would I merge case variants?
Scripts are not always consistent about capitalizing character names. Enabling "Merge case variants" treats "JOHN", "John" and "john" as the same character instead of three separate rows.
Does excluding a minor character from the table change everyone else's percentages?
No. The minimum-lines filter only decides which rows are shown — every character's word count still counts toward the total dialogue used to calculate everyone's share.
Is my script uploaded anywhere?
No. Parsing and counting happen entirely in your browser — your text is never sent to a server.