Blog/GST & ITC
Not an invoice

A lorry receipt looks tabular. Models love tables. Posting it as a purchase is fiction.

pageclass.py votes lorry when the keywords fire. But some lorry receipts carry GSTINs and amounts. If the gate passes GSTIN and arithmetic on a transport document, that is a miss. Score it honestly.

The supplier staples the tax invoice to a lorry receipt. The photocopy arrives as a two-page PDF. Page 1: tax invoice for ₹2,80,000. Page 2: lorry receipt with a GSTIN, a vehicle number, and a freight amount of ₹18,000. The system splits two pages. Page 1 exports as a purchase. Page 2 exports as a purchase. Now Tally thinks you owe ₹2,98,000. You owe ₹2,80,000.

Lorry receipts are transport documents. They are not tax invoices. Section 16 wants a tax invoice. A photocopy of a lorry receipt is not that document. See section 16. Posting it as a purchase is fiction.

pageclass today

Lorry hints: "lorry receipt", "consignment note", "goods receipt note", "vehicle no". If two or more fire, pageclass votes lorry. The row should not export. But some lorry receipts carry GSTINs. If the gate passes GSTIN and arithmetic, the row may still auto-export. That is a miss. Score it.

How lorry receipts sneak through

The lorry receipt has a GSTIN (some do, for the transporter). It has amounts (freight, weight). The gate runs GSTIN checksum: pass. Arithmetic: pass (the freight amount closes). Regime: pass (if the GSTIN is in the same state). The row exports. The product has posted a transport document as a purchase. That is wrong.

The miss is not that pageclass failed. pageclass may have voted lorry. The miss is that the gate passed GSTIN and arithmetic on a non-invoice. The gate does not ask "is this a tax invoice." It asks "does the GSTIN checksum and do the rupees add." Those are different questions.

Two-page bundleinvoice + lorry receipt
Page 1

Tax invoice

Pass. Export.

Page 2

Lorry receipt

Should not export. If it does, that is a miss.

Score both pages in the bake-off.

What to do in a bake-off

Include a lorry receipt in the 500 scans. One with a GSTIN and amounts. If it auto-exported, that is a miss. Score it. Do not hide it behind "the gate worked." The gate passed the wrong document. That is a product bug.

Include a lorry receipt without a GSTIN. If it went to review, the gate blocked it (required GSTIN). That is the correct failure. Score it separately. Both are misses. They are different classes of miss.

What we will not do

We will not add "is this a tax invoice" as a gate check. That is a classification problem, not a checksum problem. It belongs in pageclass, not in the validator. Do not conflate the two. The movement paper with legal teeth is the e-way bill: movement paper vs money paper.

We will not promise "lorry receipts never export." They may, if they carry a GSTIN and pass arithmetic. That is a known hole. Bake-off it. Do not pretend we closed it.

Meter

If we rasterised the lorry receipt, it is a page. The meter counts it. That is honest billing. If you want to skip non-invoice pages, that is a product conversation. Not a blog promise.

Sources
  • EntryLedger
    extraction/pageclass.py

    Lorry hints. Keyword vote. Not a classifier.

  • EntryLedger
    Challan post

    Same class of miss: non-invoice page that passes the gate.

Frequently asked questions
Does it catch lorry receipts?+

Yes, when keywords fire. But if the page has a GSTIN and amounts, it may still pass the gate. Score it.

Will you fix this?+

Lorry receipts with GSTINs are a known hole. Bake-off them. Do not pretend we closed it.

Meter?+

If rasterised, billed. Honest billing.

Score lorry receipts in the bake-off

If they auto-export, that is a miss. Do not hide it behind "the gate worked."