
Peyman-yar — Progress Statement Evidence Desk
On public construction contracts in Iran, a line item in a progress statement can be struck off if the signed site minutes behind it are missing or were never formally served. Peyman-yar imports the statement, links each price-list item to the minutes, instructions and letters that back it, and produces a gap report with the exact amount exposed, before the consultant ever sees the file. It also tracks the statutory review windows of the General Conditions of Contract, and prepares the objection when deductions do happen.
// Architecture
A FastAPI backend on the shared Orv SaaS core with a Next.js 14 panel and PostgreSQL, where every calculation is plain, tested arithmetic in Rials and every legal interval is counted in the Jalali calendar. The 1404 building and road price lists ship as seed data, statements come in from the contractor's existing Excel exports through a column mapping that is remembered per layout, and the output is a single PDF package: generated cover, index and gap report followed by the original scanned minutes. A language model is used in exactly one place, to read price-list codes out of scanned minutes, and any code it returns that is not literally in the text is discarded.
// Key capabilities
Gap report in Rials
Each line item is counted once at its worst finding; minutes approved by the consultant but not yet served by the employer are weighted at the 0.7 factor the price-list rules set, and the total always equals the sum of the rows on screen.
Review clock
Every document's signature trail across contractor, supervisor, consultant and employer is tracked, and the review and objection windows are counted from the day it reaches the next party, with alerts as each one runs out.
Deductions and price adjustment
Contractual deductions are computed in their legal order and set beside what the employer actually withheld, and price adjustment is calculated per quarter from published indices, flagged as pending rather than zero when an index is missing.
Objection without guesswork
The objection letter is a fixed template that cites the relevant articles verbatim, so the same inputs always produce the same letter, never a model's draft.
// Technology stack
- Python / FastAPI
- Next.js
- PostgreSQL
- openpyxl
- fpdf2 / pypdf
- Docker
// Next step
Need something like Peyman-yar — Progress Statement Evidence Desk?
Tell us what you're building. We'll reply with how we'd approach it, a rough timeline and the first step.
Start a similar project


