Count actually typed words

One thing missing from Scrivener for me is the ability to count actually typed words. While the ‘Session Target’ popup (Project --> Project Targets) is somewhat helpful, it does not accurately reflect how much words I really typed during the current session.

For example, if I duplicate (part of) a document, the ‘Session Target’ increases with thousands of words. While precisely speaking it’s true that my project increased with thousands of words, it also defeats the purpose of using ‘Session Target’ as a daily writing target.

The same goes for removing words from the ‘Session Target’. While true that the project size decreased when removing words, it does not accurately reflect how much work I put into reaching a daily goal.

So I’d love to see a way for Scrivener to only count the words I actually typed in the current session. That makes it possible to track daily writing targets, instead of having those be affected by arbitrary things like copy-paste, duplicate documents, or remove stuff.

Hi, Jura,

I suspect the algorithm which could do what you envision accurately would be surprisingly complicated. Especially since you might be moving around and between documents and doing any kind of editing on the fly. In my idke algorithmic reflections, many gotchas presented themselves.*

I know you know your own mind, but I am surprised that words-typed is really the measure you want. Maybe you have some special case context which makes that make sense (like, maybe you get paid by the keystroke :wink:), but I hazard that most people want session counts so as to measure their progress. If you typed n words or m characters in your session, but these were devoted to working and reworking a particular sentence, I guess most would not count themselves as having acheived their word/character goal for that session.

FWIW, I guess you can make the existing session count do your bidding pretty much by refraining from freelance editing during times you wish to measure words typed.


  • But why focus on words? If what you want to ensure is that you get a certain amount of “keyboard action” in, just count characters. Much easier atleast.

It’s not that complicated, I think. ‘Simply’ count the keyboard input as long as the Scrivener application is active. For a session total of words, it doesn’t matter in which document those words where typed or whether editing has been on the fly.

But we don’t need to go into that discussion; that’s something for the Scrivener team to figure out if this idea ever even get to the ‘under consideration’ stage.

Thanks for taking the time to reply. The problem you overlook with using the project’s total word count as an indication of progress, is that it requires a fixed end (like a manuscript of 80k words). I don’t have that goal; my goal is to consistently add a certain number of words to my project. I don’t care if my Scrivener project ends up with 10k words or 1 million.

Thanks for your input, but I’ve already tried to make that work – it doesn’t work based on my writing workflow. I thought it was pretty common that, when doing a review, around 25% get deleted while the remainder gets rewritten. With that I’m still in negative territory after three hours of typing. And that’s just one example.

I was not actually thinking of using project total word count, but the session target setting.* If you have the goal of typing a certain number of words in a session and (roughly) refrain from editing, you are in fact setting in with a word count value that seems precisely apt for use with the session target setting. Admittedly, this does not help you in /editing/ sessions, of course. But I guess I never myself would have thought of words typed as a measure for editing sessions – I am more likely to set the goal of editing through these certain sections or editing through this amount of draft text.

Maybe you are right and it would not be forbidding to work out. But I guess it is not so easy as keystroke counting. Counting keying only gives you a keystroke count, not a word count. For a word count you need something rather more sophisticated which is watching keyboarding and textual context (where the cursor is and what surrounds it would be important at each moment). If I type ‘shift’, I have not typed a word if I have just placed my cursor at the end of ‘make’. If I place my cursor at the syllable break in ‘makeshift’ and hit the space bar, have I typed a word? I was just imagining that there would probably be a surprising number of these kinds of considerations if one was really trying to do this thing.


  • I might be speaking entirely out of school here, since I have just been presupposing the session target function is part of the current winScriv implementation (and not just part of macScriv)…

[Duplicate post I can’t seem to delete on mobile.]

Unfortunately, refraining from editing does not give a very accurate ‘session target’ for me. That’s because I used templates whenever I create new articles in my Scrivener.

So say I’m drafting and create three new documents in Scrivener based on my templates. Boom! Scrivener says I’ve “written” 600+ words already. But in fact all I did was press Ctrl - D (duplicate) and type in the document title for each. So the actually written words is probably 50.

Another example: I’m drafting and I copy-paste a quote into my document. Boom! Scrivener says I’ve “written” an additional 200 words during my drafting session. Not correct; I only pressed Ctrl - V.

Another example: I’m drafting and paste a code example into my document. Boom! Scrivener says I’ve “written” an additional 900 words. Not even close to being accurate.

This shows that, even when drafting, I’d like Scrivener to allow me to choose how words are counted.

This is the problem with our discussion: you seem to have trouble imaging what the value of counting actually typed words is and are therefore opposed to it. But while it doesn’t suit your workflow, it might fit the workflow of others very well.

I think we can probably keep discussing how you write and how I write till 2030, but that difference in workflow doesn’t change the fact that, for me, the way words are counted doesn’t reflect the words I actually typed in Scrivener.

All I know is that Write! ( counts words accurately (meaning, the actually typed word during the session, without counting copy-paste operations). So yeah, it might be a bit complicated and there are of course special circumstances to address. But it’s certainly possible, even for a smaller developer team than Scrivener probably has.

I don’t think it is physically possible to have a developer team smaller than one person, which is what Scrivener has. One person developing and coding both Mac and iOS version.

I agree with this. It’s logical to assume that people who actually UTILIZE the Session Target tool in Scrivener, are those that use the number of words that they type a day as a way of measuring their progress. Therefore, refining the tool to only count REAL PROGRESS, will only serve to make it more useful for users that would like to use it, in the first place.

After playing around for a while and trying to find a potential loophole, I’ve got a another thought to add.

When the “Documents included in compile only” box is checked in the “Novel Target” section, duplicating templates in the Research folder doesn’t contribute to the Novel Target, but it does to the Session Target. To add the “Documents included in compile only” option to the session target would be, in my opinion, the first step to refining the session target tool for those of us who want to measure our writing for that day, and don’t want to include research notes and the like.

I write fantasy, primarily. I do a lot of extensive world-building in my projects, and while I do consider that progress, what I utilize my “Session Target” for is to determine how much I’ve written my NOVEL, not how much I’ve typed, in general, that day. But if, while I’m writing, inspiration strikes, and I want to make note of something in a different folder before continuing my writing for the day, I don’t want that note of that inspiration to count toward my session target. That skews my view of the particular type of progress that I’m trying to measure.

I hope this didn’t come too far off topic. I do agree with the OP, as well, and I think adding BOTH options to the Session Target (include compile only AND count actually typed words only) would be invaluable tools for those of us who use word count as a measure of progress.

Hi there!

I’ve been using Scrivener on Windows for a little over two years. I really, really love it. Anything I can’t do in Scrivener I’ve either learned to live without or have found a workaround. Until I was told by a friend that 4thewords has a feature that tracks how many words were written in a session even if some words are deleted.

I have no desire to pay to switch to some other project when I’m quite happy with Scrivener. However, that feature would be extremely useful to me. Useful enough that after two years of happy use, it’s driven me to figure out how to submit feature requests and create an account here.

I see from a quick perusal of past requests that KB has stated a preference for not implementing any advanced word count trickery (circa 2012):

I do keep a spreadsheet and track daily words, and I can see that there is some confusion from GR as to why a feature that counts all words written without subtracting deleted words would be useful.

You know that adage that you should cut 15% of a first draft? Right, well for some of us that’s pretty optimistic. When I “finish” a draft I tend to cut closer to 20-30%. But I also write new words in there when editing (like a lot of people). The way the word counter tracks progress now means that any significant amount of editing leaves me in the hole–even if I have met my word goal for the day. This becomes a huge impediment to editing. I have literally only edited one (very) short story in the last four months because I know that if I take the time to edit my work I will have a negative word count. I won’t reach my word goal (or rather, I will, but I’ll have no way of knowing that). I won’t get my little writerly reward for doing my dutiful daily word count. It kinda sucks. And it’s ultimately hurting my output.

I put obnoxious quotes on “finish” a draft because I also write circularly. That is, I edit as I go. A first draft for me has already seen a lot of editing and rearranging by the time I’ve gotten all the sections written. Which means that I have to write a lot more words to meet my word goal than someone who writes linearly.

Basically, if you write like me, word counters like the one Scrivener (and MS word, and any other word processor I’ve ever seen), make it impossible to get a count of how many actual words were written in a session.

Moreover, it’s hard for me to write straight through without editing. I can see how GR’s suggestion above might seen reasonable to a writer with a linear process, but by hard, I mean pretty much impossible. I didn’t even write this post in order. My brain doesn’t work that way. My writing process doesn’t work that way. Suggesting that writers who write like me “power through” or “edit at the end” is about the same thing as suggesting I grow wings and fly to work to avoid my commute. It would be awesome! I’d love to. Not gonna happen, alas.

There are two solutions to this problem that I’ve used in the past and they are both pretty ugly.

The first is to copy/paste all my deletions until the end of the writing session, then paste them all back into the end of the document, and then determine my actual word count for the day. (This is awful, imo. I have to switch thinking modes, I have to take my hands off the keyboard, I have to switch windows, etc. No real way to get and stay in the “zone” as it were.)

The second is to write very very badly. To see a crappy string of words and leave it in, with the hope that I’ll remember to delete it on another day when I have enough words to compensate for it. My brain doesn’t like this. It’s impossibly distracting. Even if I use brackets or some other notation, my subconscious is still trying to keep track of it all and it eats up my mental RAM. This is what I’m doing now and it is not ideal, obvs.

If you read to the end, I thank you for your time. I appreciate that Scrivener is ultimately for KB’s use. I understand my writing process is not necessarily common (though I do know several writers with various non-linear processes). Still, I can’t overstate the usefulness of this feature to me and writers like me.

Why not set a time goal, rather than a word count goal? That’s what I do on days when I’m primarily editing.

Everyone works differently, but in the end the number of finished words is what matters to potential publishers. If I promise a client a 3000 word article, he doesn’t care whether I needed 3100 words or 30,000 to get there. That’s why Scrivener’s targets are set up the way they are.


Thanks Katherine! I actually did set time goals for myself to see if it would work as well (for a year, haha, I was committed to making it work). It didn’t really pan out. Partly, because I have a second kid now, setting time goals tends to fail at the outset. It’s like you say–it’s all about the words. If I can meet my word goal in 15 minutes, great! If I set a time goal of 15 minutes, I will almost certainly miss it. Surely, I will think to myself, 15 minutes it too short. I need 30 minutes. But I won’t ever find 30 minutes in the day all together. That one year I tended to only write on weekends and my production suffered. Whereas if I have a word count goal, I will try to meet it even if I only have 5 minutes here or 2 minutes there–every word gets me closer!

At any rate. I’m not trying to convert anyone to my way of thinking. (I don’t think that’s a thing you can do, after all. Everyone has their own process.) I’m merely trying to submit a feature request that I would find useful.

Is this going to be fixed in Scrivener 3? I see that the statistics feature is described as:

Since it literally says “keep track of how much you write” (and not how much you copy/paste), I suspect it is. But can someone confirm that for me? I’d rather not mess with my Scrivener installation for nothing. :smiley:

How is Scrivener supposed to know where copy/pasted words come from? For example, some people prefer to use other tools for rough drafts for a variety of reasons. I’d be pretty unhappy if I typed 3000 words into an Android tablet, copied them over, and then Scrivener refused to count them.

Scrivener 3 does add a new writing history feature, that breaks down where new words were created. … t-the-ways


Sorry to stepped on your toes. But Scrivener can simply monitor copy/paste actions. It doesn’t need to know where the actual words comes from.

Well, a simple checkbox option can be used for that to make people configure how Scrivener counts words. I didn’t say that ‘count actually typed words’ should be the way, but just a way.

So yeah, we all have different preferences and ways in which we use Scrivener. Luckily Scrivener is versatile and allows everything from writing blogs to screenplays and novels. You as a support team member probably know all too well that different customers use Scrivener in different ways than you do.

I can’t figure out from that blog post if Scrivener still uses negative word counts. Do you perhaps know if that’s still the case with Scrivener 3?

Yes, Scrivener 3 still supports negative word counts. The history feature is new, but the features carried over from Scrivener 2 work in the same way.


Unfortunately, this isn’t really practical. Although it’s possible for Scrivener to override standard Apple/Windows copy/paste commands and so note that “this text was created from a paste”, after that initial action no further knowledge is available. So, suppose you then hit Undo after pasting. At this point Scrivener cannot tell the difference between an undo action and typing/deleting - this is just information that is not made available to Scrivener via the text system. So if you paste something in and Scrivener doesn’t count it and then hit undo, your word count will go down by the number of words you pasted in.

All the best,

Related use case: Cutting text from one file and pasting it into another, the word count targeted is first debited and then credited. This makes the session’s target statistics useless, because the text is not new. I understand there’s likely no way around this (Scrivener doesn’t know where the buffer contents came from, and if they’re from outside the program or a non-compiled file in the program, you do want to count them), but is it possible to track the origin of the cut text? So that if I cut from compile file A and paste into compile file B, the two actions are a net zero for the session target counter .

There is no way of tracking this, I’m afraid. Text on the pasteboard is just text on the pasteboard - there’s no other information there.

I figured as much - thanks for the quick response.

One alternative is to never cut the text in the first place. Instead, use the Documents -> Split command to break it into its own document, use the Binder to drag it where you want it, and then Documents -> Merge to glue the pieces back together.

This is also slightly safer, because the text is always part of a file on disk, rather being in “limbo” in the clipboard.