Extract Signatures and Dates From Scanned Documents
By Schema LawPublished Updated
To extract signatures and dates from scanned documents, let OCR read the typed parts of each signature block, such as the entity, the printed name and the title, and record the handwritten parts yourself from the page image. Put the result in an execution table with one row per signature line, signed or blank.
That division of labor is the whole method. A search of the converted text finds where the signature pages are, and OCR reads what was typed on them. A person has to say whether ink is present and what a handwritten date says. The sections below cover each part and the layout that holds the answers.
Can OCR read a signature on a scanned document?
OCR cannot read a signature in any useful sense. It recognizes characters, and a signature is a drawn mark that often contains no legible letters. What OCR reads is the typed text around the mark, and that text carries the names, titles and typed dates.
When a page with a signature goes through recognition, the mark itself tends to come out in one of three ways: nothing at all, a few stray characters such as "J/\_~", or a confident wrong guess at a word. None of these tells you who signed. They do not even reliably tell you that someone signed, since a smudge or a rule line can produce the same stray characters.
So treat the two halves of the task separately.
| Part of the page | What recognition typically gives you | Who supplies the answer |
|---|---|---|
| Typed entity name, "By:", "Name:", "Title:" labels | Text you can search and copy | OCR, then a check |
| Typed name and title under the line | Text | OCR, then a check |
| The signature mark | Nothing, noise or a guess | A person looking at the image |
| A date typed beside the signature | Text | OCR, then a check |
| A date written by hand | Unreliable; depends on the hand and the scan | A person looking at the image |
| Whether the mark is this person's genuine signature | Not something a conversion addresses | Outside this task entirely |
The last row matters. Recording that a signature appears above Dana Okafor's printed name is an observation about a page. Whether Dana Okafor made it is a question of evidence that no conversion tool answers, and this post does not go there.
Where OCR earns its keep is in locating the pages. In a converted file of two hundred pages, search for "By:", "Name:", "Title:", "IN WITNESS WHEREOF", "Signature" and "Notary". Each hit is a page to open on the image. That turns a page-by-page hunt into a list of a dozen places to look.
Tools differ in how they treat handwriting and marks, and nothing here predicts how a particular tool will handle your pages. Schema Law's homepage says recognition is weaker on handwriting and that nothing marks a passage as uncertain, so the parsed pages should be checked against the original. The questions on the homepage give the wording. General limits of handwriting recognition are covered in the post on OCR and handwritten notes.
What a signature block gives you besides the signature
A signature block gives you the legal name of the party, the printed name of the person who signed, that person's title or capacity, and sometimes a date. Where the signature is illegible, those typed lines are what identify the signatory.
A block for a company might look like this:
HALVORSEN MARINE SERVICES, LLC
By: ______________________
Name: Dana Okafor
Title: Chief Operating Officer
Date: ____________________Read each line for what it says and what it leaves open.
The entity line. This is the party as it signed. Compare it, character for character, with the party named on the first page. "Halvorsen Marine Services, LLC" and "Halvorsen Marine, Inc." may be different companies. Record both versions if they differ and flag the row. Do not tidy one to match the other.
"By". In a block like this one, the word introduces an individual signing for the entity named above the line. Where a block has only a name under the line, record what the page shows and leave the question of capacity to the lawyer.
The printed name. Sometimes typed in advance, sometimes written by hand at signing, sometimes left blank. If it is blank and the signature is illegible, the honest entry is "signatory not identified on the page".
Title or capacity. "Chief Operating Officer", "Authorized Signatory", "Trustee", "Attorney-in-Fact". Record it as written. Whether that capacity carried authority to bind the party is a legal question for the lawyer on the matter.
Copy the title into the execution table exactly as printed, next to the entity name. For legal capacity, record only the words on the page, such as officer, member, or attorney-in-fact. A blank date line stays blank in the table.
Nested blocks. An entity may sign through layers:
REDWATER HOLDINGS LP
By: Redwater GP LLC, its General Partner
By: ______________________
Name: Imogen Achterberg
Title: ManagerThree names appear and only one is a person. Record the chain in order: the party, each entity signing for it, and the individual at the end.
What else may be on the page. Witness lines, a corporate seal, an address for notices, a footer code identifying the document version, and a page number. The footer and page number tell you which document the page belongs to, which matters when signature pages were circulated separately.
Fictional names are used throughout this post.
Recording signatories and signing dates in an execution table
Record signatories and signing dates in an execution table with one row for each signature line in the document. Each row says which page of the scan the line is on, who was meant to sign, whether a mark is present, and what date appears beside it.
The procedure
- Convert the scan and export text you can search. Keep the scan open beside it.
- List the expected signers from the first page: every party named in the opening paragraph.
- Find every signature page by searching the text for the block labels, then page through the image from the last clause to the end in case a block was missed. Look inside exhibits too.
- Make a row for each line, including lines for witnesses and any line left blank.
- Copy the typed fields from the converted text, then compare each with the image.
- Fill the handwritten fields from the image only. Signature present or absent. Date as written.
- Reconcile the rows with the list from step 2. A party with no row has no signature block in this scan.
- Initial and date the table as checked.
The layout
| Column | Entry |
|---|---|
| Document and scan file | Short title; the file name of the scan |
| Scan page | The page of the PDF, not the printed page number |
| Party as named on page 1 | Copied from the opening paragraph |
| Party as named in the block | Copied from the block |
| Signing through | Any intermediate entity in a nested block |
| Individual | Printed name, or "not printed" |
| Title or capacity | As written |
| Mark present | Yes, no, or unclear |
| Kind of mark | Ink signature, initials only, stamp, typed name, electronic signature panel |
| Date beside signature | As written, or "none" |
| Date typed or handwritten | One or the other |
| Witness or notary | Name, if any, with its own row for details |
| Notes | Mismatches, legibility, anything odd |
| Checked by | Name and date |
A worked example
A scanned vessel maintenance agreement between Halvorsen Marine Services, LLC and Redwater Holdings LP runs 31 pages. The table, trimmed to the main columns:
| Scan page | Party in block | Individual | Capacity | Mark present | Date beside signature |
|---|---|---|---|---|---|
| 28 | Halvorsen Marine Services, LLC | Dana Okafor | Chief Operating Officer | Yes | "4/11/24", handwritten |
| 29 | Redwater Holdings LP, by Redwater GP LLC | Imogen Achterberg | Manager | Yes | None |
| 29 | Witness line under Redwater block | Not printed | Witness | No | None |
| 31 | Exhibit B guaranty: Redwater Capital Inc. | Not printed | "Authorized Signatory" | Yes, illegible | "April 2024", handwritten, no day |
Four rows, and three of them carry a note for the lawyer: an undated signature, an empty witness line, and a guaranty signed by someone the page does not name.
What do you record when the signing dates differ?
When the signing dates differ, record each one exactly as it appears beside its signature, and record the agreement's stated effective date in a separate column with the clause it comes from. Do not merge them into a single "date of the contract". They answer different questions.
A signed agreement can carry several dates that all look official:
| Date | Where it appears | What it tells you |
|---|---|---|
| The "as of" date | Opening paragraph: "dated as of April 1, 2024" | The date the document gives itself |
| A defined Effective Date | Definitions or the term clause | When obligations start, according to the text |
| Each signing date | Beside each signature | The date written beside that signature |
| The latest signing date | Worked out from the rows | When the last listed party signed |
| A notary's date | The acknowledgment | The date the acknowledgment gives |
An agreement may define the effective date by reference to signing, with words such as "the date of the last signature below". In that case record the effective date as a computed value. Take the latest date from the table and record the working. If one signature is undated, the effective date cannot be worked out from the page, and the row should say so.
Situations to flag without resolving:
- A signature dated before the "as of" date, or long after it.
- Signatures weeks apart. Possible where counterparts were signed in different places, and worth showing.
- An undated signature where the block provided a date line.
- A numeric date that reads two ways. "4/11/24" is 11 April or 4 November depending on who wrote it. Record the characters as written and note which reading the rest of the document supports.
- A date that someone altered by writing over a digit.
Which of these dates controls, and what follows if they conflict, depends on the agreement's wording and the law that applies to it. That is the lawyer's call. Your table should make the conflict impossible to miss.
Once the effective date is settled, the deadlines that run from it can be calculated. The post on extracting contract dates into a key dates list covers that arithmetic.
Handwritten dates, initials and notary blocks beside a signature
Handwritten dates, initials and notary blocks are the parts of a signature page most likely to be wrong or missing in converted text. Read each one from the image, record what you can see, and use "unclear" freely. A guess entered as fact is worse than a gap.
Handwritten dates
A date line may be printed as "Date: ________, 20__" and completed by pen. Recognition may return the printed parts and skip the ink, or run the two together. Common reading problems on the image itself:
- A 1 that looks like a 7, or a 4 that looks like a 9.
- A month written as a numeral with no clue to the order.
- The day left out, leaving a month and a year.
- A pre-printed "20" followed by a two-digit year squeezed into a short blank.
Enter what is there, in quotation marks, and add your reading in a second column. "3/7/24" as written; "7 March or 3 July 2024, order not determinable from this page" as the reading.
Initials
Initials can show up in three places: at the foot of each page, beside a handwritten change, and occasionally in place of a full signature. For page-foot initials, record which pages have them and which do not. A page without initials in a document where every other page has them deserves a note. Initials beside a change are part of a different job, covered in the post on handwritten changes to a contract.
Do not try to attribute initials from the converted text. Two or three handwritten letters give recognition very little to work with. Match them by eye to the signers in your table, and say "not matched" if you cannot.
Notary blocks
An acknowledgment may be a printed form with blanks, for example a venue line naming a state and county, a date, the name of the person who appeared, the notary's signature, a seal or stamp, and a commission expiry date. The form differs by jurisdiction. The printed form converts like any typed text. The blanks are handwriting. The seal may be an inked stamp lying across the text or an embossed impression that barely shows in a scan. The post on whether OCR can read stamps over text explains what an overlapping stamp does to the words beneath it.
Give the notary block its own row or its own small table:
| Field | Entry |
|---|---|
| Venue as written | State and county |
| Date of acknowledgment | As written |
| Person named as appearing | As written |
| Notary's printed name | From the stamp or the typed line |
| Commission expiry | As shown, or "not visible" |
| Seal visible in scan | Yes, faint, or no |
If an embossed seal is not visible, write "not visible in scan" and not "no seal". The paper may have one. Requirements for a valid notarization vary by jurisdiction, and whether a given acknowledgment meets them is not something to judge from a table.
Is every signature line on the scanned agreement actually signed?
Check every signature line on the scanned agreement by counting the lines the document provides and confirming a mark on each one from the image. Converted text cannot tell you this. A blank line and a signed line can produce identical text: the labels, the printed name and the title.
That is the trap. A search for "Dana Okafor" finds her printed name on page 28 whether or not she ever picked up a pen.
Run the check in this order:
- Count the blocks you expect. One for each party on page 1, plus any guarantor, spouse, witness or notary the document calls for.
- Count the blocks you found. Compare. A missing block may mean a missing page.
- Look at each line on the image. Mark present or absent. Zoom in; a light pen on a low-contrast scan can vanish at normal size.
- Check the back of the document. Exhibits such as guaranties, joinders and acknowledgment forms carry signature lines of their own, and these are easy to overlook.
- Check the words before the block. "Signature page follows" at the foot of the last clause should be followed by a signature page.
- Give the scan a status. Fully signed, partly signed, or unsigned, on this copy.
"On this copy" is deliberate. A scan showing one party's signature may be one of several counterparts, each signed by a different party. Before reporting that an agreement was never fully signed, look for the other pages. The post on counterpart signature pages explains how to match loose pages to an agreement and assemble a complete set.
Two neighbouring cases need a different test. A typed name in a script font, or a signature that looks pasted in with a border or a certificate line beside it, may be an electronic signature that was printed and rescanned. The post on telling an electronic signature from a pasted signature image covers how to inspect the file. And a stamp that reads "signed" or a "/s/" in place of a mark may indicate a conformed copy made for reference. Note it and ask where the executed pages are.
If you are working through many agreements, the same table can hold them all, with the document title in the first column. In Schema Law you see the parsed result page by page on screen, so you can check it against the original, and export the text in any of the formats listed on the homepage. The observations in the table remain yours to make.