Contracts to Excel: a register of parties, dates and values, from the folder you already have.

Forty tenancy contracts, sixty labour contracts, a drawer of supplier agreements. The question is always the same: which ones end in the next ninety days, and what are we committed to. The answer is on page one and page eleven of each, and nobody has read them all.

  • Last updated2026-09-13

The short answer

Upload the folder against a table of the fields a register needs: the parties, the start date, the end date, the value, the payment terms, the notice period, the governing law if you track it. Saff reads each contract for those fields, wherever in the document they sit, and returns one row per contract. Sort by end date and the next ninety days are the top of the sheet.

Contracts are long and the fields are scattered, so this is where the review matters most. A date Saff found in a schedule rather than the main clause, a value quoted in two currencies, a party named differently on the cover and the signature page: those are flagged, with the page beside them, and a person confirms. The rest of the register fills itself.

Why the register is built by hand, and stays out of date

A contract is not a table. A converter has nothing to draw a grid around; it returns the text of forty pages as forty pages of text, which is what you started with. So the register is typed, by someone opening each PDF, finding the term clause, and copying the dates into a sheet. It takes a day, it is done once, and it is wrong by the second renewal.

The fields are also inconsistent across documents. A tenancy contract puts the term on page one; a supplier agreement buries it in a schedule; a labour contract states a probation period and a notice period and both matter. A template-based tool needs a template per contract type. A column-based one needs the columns.

And many are bilingual. UAE tenancy and labour contracts are commonly Arabic and English side by side, and the Arabic version is the one that governs. Extracting from the English column only is how a register ends up with the wrong end date.

The columns of a contract register
ColumnWhy it is collectedWhere it goes wrong in the document
PartiesWho is bound, for the counterparty list.Named in full on page one, abbreviated afterwards, differently on the signature page.
Start and end dateThe expiry view, the ninety-day list.Stated as a term from a commencement date rather than as a date; in a schedule.
Contract valueCommitments and budgets.Annual rent and total term value both present; two currencies.
Payment termsCash-flow planning; cheque schedules.Number of cheques on a tenancy contract; net days on a supplier one.
Notice periodThe date by which you must act.Expressed in days, months or 'one quarter'; different for each party.
Renewal termsWhether it rolls over silently.An automatic renewal clause is easy to miss and expensive to have missed.

How Saff builds the register

Create the table with the columns above and describe each field briefly, so that 'end date' means the end of the current term and 'value' means the total for that term. Upload the contracts, native PDFs or scans, Arabic, English or bilingual. Saff reads each one for those fields, taking a date from the schedule when the clause refers to it, and returns a row per contract. Long contracts cost more than five-page documents, and the estimate tells you before you run the batch.

Review the flagged rows with the page beside each: two dates where one was expected, a value in two currencies, a party name that differs between cover and signature. Confirm, correct, mark reviewed, export. Add the next contract to the same table when it is signed and the register stays current instead of being rebuilt next year.

The table columns screen in Saff: each column has a name, a key, a type and a description
The register's columns, defined once with a type and a description each. Every contract, whatever its kind, fills the same row.

What Saff will not do with contracts

It will not interpret a clause. It extracts what the contract says into the field you described; whether a notice period was validly served, or which version governs a conflict, is a question for whoever advises you, and the register is built to make that question easy to ask early.

It will not read a scanned contract that was signed in pencil and copied twice. Faint pages produce flagged cells, and a flagged end date on a contract is a date worth finding by hand.

Can Saff extract dates and values from a signed contract PDF?

Yes. Name the fields, start date, end date, value, notice period, and Saff reads each contract for them, from the clause or the schedule, and flags anything it was unsure of for a person to confirm.

Does it handle bilingual Arabic and English contracts?

Yes. Both languages on the same page are read in their own direction, and you can name a column for the Arabic party name and another for the English one if both matter to you.

How much does a long contract cost to process?

Pricing is per document of up to five pages, so a forty-page contract costs proportionally more; the estimate is shown before the batch runs. The first 15 documents a month are free.

Are the contracts kept on your servers?

Not by default. The file is used for the extraction and then removed, unless you connect your own storage and choose to keep originals there. Extracted values stay in your workspace, encrypted.

Build the register from the folder

Upload the contracts you have. Fifteen documents a month are free, and the originals are not kept.