DueproofGitHub

How Dueproof reads a notice

A notice goes in as a PDF or a photograph. What comes out is a set of entries, each with a date, a desk and the exact passage it rests on, outlined on the page.

What it reads off one GST notice

A sample Form GST ASMT-10, one page, typed. This is what the default profile finds in it, field by field.

Kind of noticeGST notice, filed to the GST & Indirect Tax desk
ReferenceZD2910260012345
Issued byAssistant Commissioner of State Tax
Dated20 October 2026
Amount demandedRs. 4,52,300
Provisions citedSection 61, Section 73(1)
DutyExplain the discrepancies and pay the tax with interest, within 30 days of receipt
Due23 November 2026, for a notice received on 24 October
Hearing18 November 2026, 11:00 AM
The GST notice open in Dueproof, with its reference, issuing office, amount, reply deadline and hearing listed beside the page
The same notice in the app. Choosing an entry outlines its sentence on the page.

Why you can check every entry

Dueproof never paraphrases its way to a date. Each entry keeps the sentence it came from, and that sentence is located on the page by its words, not by a guess.

Exact, strong, approximate or not found

Each outline says how well the passage matched the page. When nothing matches well enough, there is no outline and you are told so.

Original wording is the proof

For a Hindi or Tamil notice the English is a working translation, labelled as one. The outline is on the original.

Translations are checked

If a translation seems to have dropped a number or a known term, the entry is flagged for you to check.

Measured, not promised

The test suite fails if any finding is outlined confidently in the wrong place. Run dueproof eval on your own labelled notices.

From a list of dates to work that gets done

The deadline list: obligations in date order, overdue ones marked, each linked to its page
The deadline list, in the order things fall due. Overdue items are marked in amber.

An owner for every duty

Assign a person or leave it with the desk. View the deadline list one desk at a time.

Corrections that keep the original

Change a date, a desk or an owner. Dueproof stores who changed what and when, next to what it first read.

Done and dismissed

Close an item when it is handled, or dismiss a sentence that was never a duty. Dismissals become labels for measuring accuracy.

A weekly email

Each person gets the items due in the coming days and anything overdue. It runs from cron or a systemd timer.

Search across every page

In English and in the original script, including scanned pages.

Take it with you

A printable evidence report with each passage cropped from its page, and a spreadsheet of the register.

Notices that are not in English

Text in an Indian language is translated into English on your own machine, so the same rules find the same duties. The outline stays on the original words.

A circular with a Malayalam paragraph produces dated entries without anyone writing Malayalam rules. Which languages are supported.

A circular with Malayalam text: findings translated into English, the Malayalam passage outlined on page 3
Translated findings are labelled. The Malayalam passage is outlined on the page and quoted beneath it.

Made to fit your notices

A profile is a plain Python file of word lists: your desks, the kinds of notice you receive, who issues them and how they phrase a deadline. The default covers Indian tax, corporate, labour, regulatory and court notices.