How many tokens is my PDF?
Short answer: there is no reliable per-page or per-file-size estimate. A PDF's token count depends on how much actual text is on the page, and that varies too much to guess. Extract the real text and run it through the target model's real tokenizer, which is exactly what a tool like NoRefund does in a few seconds, on your own machine.
Why "tokens per page" doesn't work
People often reach for a rule like "a page is about 500 tokens." It is not a bad starting point, but a PDF is a layout format, not a text format. The same page count can hide very different amounts of real text:
- Dense contracts and reports. Small font, narrow margins, few images: often 700-900+ tokens per page.
- Slide decks exported to PDF. Mostly whitespace and images with a handful of bullet points: sometimes under 100 tokens per page.
- Scanned documents. If the PDF is an image of a page rather than real text, a text extractor gets nothing at all, and you need OCR first.
- Tables and forms. Repeated short cells and column structure tokenize very differently from prose, usually less efficiently per visible character.
A 10-page PDF from a slide deck and a 10-page PDF of a legal contract can differ in real token count by 2 to 3 times. Any single "tokens per page" number is a guess that gets worse the more documents you throw at it.
The rule of thumb, if you need a rough number right now
For plain English prose specifically (not PDFs generally), OpenAI's own guidance is that one token is roughly 4 characters, or about 0.75 words. So 500 words of body text is roughly 650-700 tokens. Use this only as a sanity check before you have the real file in hand, not as something to plan a budget around.
How to get the real number
- Install NoRefund (free, Windows, macOS, or Linux).
- Open the File Parser screen and add your PDF.
- Pick the model you actually plan to call, since every model's tokenizer counts differently.
- Click Analyze. NoRefund extracts the real text and counts it with that model's real tokenizer, tells you if it fits the context window, and estimates the cost.
As a real example: this project's own 882-word architecture guide comes out to 1,951 tokens against GPT's tiktoken tokenizer and 1,948 against the tokenizer used to approximate Claude and Gemini, a spread of well under 1%, because it is fairly plain prose. A PDF with heavy tables or unusual formatting can spread much further apart. See the Claude vs GPT token count comparison for the full breakdown.