{"name":"ERP requirements checklist for Indian manufacturers and traders","version":"1.0","checked":"2026-10-25","publisher":"Ahrom Labs","url":"https://ahromlabs.com/erp/requirements","license":"https://creativecommons.org/licenses/by/4.0/","citation":"Ahrom Labs, \"ERP requirements checklist for Indian manufacturers and traders\", version 1.0, https://ahromlabs.com/erp/requirements","departments":[{"name":"Sales and CRM","question":"What should an ERP do for sales?","answer":"Hold every enquiry, quotation and order in one place with its history, so follow-ups don't depend on someone's memory and every report reads the same records."},{"name":"Purchase","question":"What should an ERP do for purchasing?","answer":"Turn what production and stores need into requests for quotation, compare supplier quotes side by side, and raise the purchase order from the chosen one."},{"name":"Stores and inventory","question":"How detailed should ERP stock tracking be?","answer":"Down to the physical unit you actually pick and ship, a reel, a box, a plate, in each store, with stock promised to an order set aside so it can't be sold twice."},{"name":"Production and BOM","question":"What does a manufacturer need from an ERP on the shop floor?","answer":"A bill of materials the rest of the system works from, cutting and consumption recorded as it happens, and costs that come from what was actually used."},{"name":"Quality and traceability","question":"How should an ERP handle test certificates and traceability?","answer":"Every certificate linked to the material and the product it went into, with links that end up in statutory paperwork confirmed by a person."},{"name":"Dispatch and logistics","question":"What should an ERP do at dispatch?","answer":"Release only what is ready, carry the documents the goods must travel with, and let the customer see where their order is."},{"name":"Accounts and GST","question":"Does an Indian ERP need to do the accounting itself?","answer":"Either it keeps the books, with GST, TDS and an audit trail the law requires, or it posts cleanly into Tally. What it must not do is make your accountant type everything twice."},{"name":"Payroll and people","question":"What should an ERP do for payroll?","answer":"Work pay out from attendance, rates and advances, never type it, and keep each person's data visible only to those who need it."},{"name":"Customer and supplier portals","question":"Do customers and suppliers need access to the ERP?","answer":"A limited view: customers follow their own orders and documents, suppliers quote and record dispatch on a link, and neither ever sees your stock or prices."},{"name":"Reporting and AI","question":"What should ERP reports and AI be able to do?","answer":"Answer from the same records the business runs on, show where each number came from, flag what looks wrong, and never invent a figure."},{"name":"Integrations","question":"Which systems should an Indian ERP connect to?","answer":"Whatever you can't replace: TallyPrime, the GST portals, your bank statements and the Excel sheets people already keep."},{"name":"Reliability, access and support","question":"What do ERP buyers forget to ask for?","answer":"What happens when the internet drops, who can see what, how you get your data out, and how fast someone answers when it breaks."},{"name":"Contract and ownership","question":"What should an ERP contract settle before the build?","answer":"Who owns the code, what the licence covers and for how long, how changes are priced, and how your data leaves with you."}],"requirements":[{"kind":"erp-requirement","id":"sales.single-history","department":"Sales and CRM","question":"Can every enquiry's history be seen in one place?","requirement":"Every enquiry has one current stage and a dated history from first contact to order, visible to everyone who works on it.","why":"Follow-ups that live in one person's phone leave with that person.","test":"Open an enquiry from last quarter and show every call, quotation and stage change on it, with who did each and when.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Sales","Owner"],"satisfiedBy":{"name":"Sales CRM, enquiries and quotations","url":"https://ahromlabs.com/services/sales-crm"},"provenBy":{"url":"https://boiler-erp.ahromlabs.com/demo","signInAs":"Sales"},"url":"https://ahromlabs.com/erp/requirements#sales-single-history"},{"kind":"erp-requirement","id":"sales.history-migration","department":"Sales and CRM","question":"What happens to the sales history in our old CRM and Excel?","requirement":"History from the old CRM and spreadsheets is imported and checked row by row; a row that can't be matched to exactly one customer is held for a person, not guessed.","why":"A migration that guesses silently attaches quotations to the wrong customer, and nobody trusts the reports after.","test":"Ask how many rows of your old data would be imported, how many held for review, and how a held row is resolved.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Sales","Owner"],"benchmark":"20,167 of 20,167, including 154 a broken export had shifted","failureMode":"A broken export shifted 154 diary rows; a row-by-row check caught them instead of importing them against the wrong dates.","satisfiedBy":{"name":"Sales CRM, enquiries and quotations","url":"https://ahromlabs.com/services/sales-crm"},"explainedBy":"https://ahromlabs.com/notes/sales-history-moved-without-guessing","defines":"https://ahromlabs.com/systems/data-migration","url":"https://ahromlabs.com/erp/requirements#sales-history-migration"},{"kind":"erp-requirement","id":"sales.quotation-format","department":"Sales and CRM","question":"Can quotations go out in our own format?","requirement":"Quotations are generated as PDFs in the company's own format, with revisions numbered and kept, from the same items and rates the order will use.","why":"Retyping a quotation into an order is where rates and quantities drift.","test":"Revise a quotation twice and show all three versions, then convert the accepted one into an order without retyping a line.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Sales"],"satisfiedBy":{"name":"Sales CRM, enquiries and quotations","url":"https://ahromlabs.com/services/sales-crm"},"provenBy":{"url":"https://boiler-erp.ahromlabs.com/demo","signInAs":"Sales"},"url":"https://ahromlabs.com/erp/requirements#sales-quotation-format"},{"kind":"erp-requirement","id":"sales.followups","department":"Sales and CRM","question":"How does the team know which follow-ups are due?","requirement":"Follow-ups are planned with a date and an owner, and overdue ones are listed for each salesperson and their manager.","why":"Enquiries are lost to silence more often than to price.","test":"Show this week's due and overdue follow-ups for one salesperson, as their manager sees them.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Sales","Owner"],"satisfiedBy":{"name":"Sales CRM, enquiries and quotations","url":"https://ahromlabs.com/services/sales-crm"},"url":"https://ahromlabs.com/erp/requirements#sales-followups"},{"kind":"erp-requirement","id":"sales.funnel-from-records","department":"Sales and CRM","question":"Do sales reports come from the same records as the work?","requirement":"Win/loss, funnel, order and payment reports are computed from the enquiry, order and payment records themselves, not from a separate spreadsheet.","why":"Two sources of the same number always disagree eventually.","test":"Pick one figure on the funnel report and drill down to the records that make it up.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Sales"],"satisfiedBy":{"name":"Sales CRM, enquiries and quotations","url":"https://ahromlabs.com/services/sales-crm"},"implementedAs":"https://ahromlabs.com/patterns/derive-balances-dont-store-them","url":"https://ahromlabs.com/erp/requirements#sales-funnel-from-records"},{"kind":"erp-requirement","id":"sales.multi-company","department":"Sales and CRM","question":"Can one system invoice for two companies?","requirement":"Where the group has more than one company, each quotation and invoice is issued under the company chosen for it, with that company's letterhead, logo and GSTIN, from one shared customer list.","why":"Sister companies running separate software end up with two customer lists and two versions of the truth.","test":"Raise one invoice for each company to the same customer and show both letterheads and GSTINs.","priority":"Could","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts","Owner"],"satisfiedBy":{"name":"Multi-company finance and role-scoped access","url":"https://ahromlabs.com/services/multi-company-finance"},"provenBy":{"url":"https://interiors-erp.ahromlabs.com/demo","signInAs":"Office"},"explainedBy":"https://ahromlabs.com/notes/two-companies-one-book","url":"https://ahromlabs.com/erp/requirements#sales-multi-company"},{"kind":"erp-requirement","id":"purchase.need-to-request","department":"Purchase","question":"How does a shortage become a purchase?","requirement":"Shortfalls against orders and bills of materials become purchase requests automatically, after stock and usable remnants are counted.","why":"Buying what is already on the shelf is the most common, least visible waste.","test":"Release an order that needs more than is in stock and show the purchase request it creates, net of what's available.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"url":"https://ahromlabs.com/erp/requirements#purchase-need-to-request"},{"kind":"erp-requirement","id":"purchase.rfq-link","department":"Purchase","question":"Can suppliers quote without being given a login?","requirement":"Each supplier receives a private link by email or WhatsApp to enter rates and delivery dates, with no account to create.","why":"Suppliers won't sign up to every customer's portal; rates then arrive by phone and get lost.","test":"Send an RFQ to two suppliers, enter their rates on the links, and compare the quotes side by side.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"benchmark":"The link — no login, no account, no app","satisfiedBy":{"name":"Supplier RFQ portal and purchase orders","url":"https://ahromlabs.com/services/supplier-portal"},"provenBy":{"url":"https://boiler-erp.ahromlabs.com/demo","signInAs":"Procurement"},"explainedBy":"https://ahromlabs.com/notes/suppliers-quote-on-a-link","url":"https://ahromlabs.com/erp/requirements#purchase-rfq-link"},{"kind":"erp-requirement","id":"purchase.quote-to-po","department":"Purchase","question":"Does choosing a supplier quote create the purchase order?","requirement":"Choosing a supplier's quote drafts the purchase order with the quoted rates and dates, without retyping.","why":"Rates retyped from a quote into a PO are where overpayments start.","test":"Accept one supplier quote and open the purchase order it drafts.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"benchmark":"Choosing a quote drafts the purchase order","satisfiedBy":{"name":"Supplier RFQ portal and purchase orders","url":"https://ahromlabs.com/services/supplier-portal"},"url":"https://ahromlabs.com/erp/requirements#purchase-quote-to-po"},{"kind":"erp-requirement","id":"purchase.three-way-match","department":"Purchase","question":"Is each supplier bill checked against the order and what was received?","requirement":"Every supplier bill is matched against its purchase order and the goods receipt before it is approved for payment; differences in quantity or rate are flagged.","why":"Paying for what was ordered rather than what arrived is how short supplies get paid in full.","test":"Receive less than was ordered, enter the supplier's bill for the full quantity, and show the mismatch flagged before approval.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Accounts","Plant and stores"],"defines":"https://ahromlabs.com/systems/three-way-match","url":"https://ahromlabs.com/erp/requirements#purchase-three-way-match"},{"kind":"erp-requirement","id":"purchase.rate-check","department":"Purchase","question":"Are vendor and freight charges checked against agreed rates?","requirement":"Every vendor and freight charge is compared with its agreed reference rate, and anything above it is flagged for a person.","why":"Small overcharges on repeat trips add up and are rarely caught by eye.","test":"Enter a freight trip above the agreed rate and show where it is flagged and who sees it.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts","Owner"],"satisfiedBy":{"name":"Analytics and operational intelligence","url":"https://ahromlabs.com/services/operational-intelligence"},"provenBy":{"url":"https://interiors-erp.ahromlabs.com/demo","signInAs":"Vendors (one freight trip is overcharged on purpose)"},"implementedAs":"https://ahromlabs.com/patterns/reference-rate-anomaly-detection","url":"https://ahromlabs.com/erp/requirements#purchase-rate-check"},{"kind":"erp-requirement","id":"purchase.msme-due-dates","department":"Purchase","question":"Does the ERP track payments due to MSME suppliers?","requirement":"Suppliers registered as micro or small enterprises are marked, and each of their bills shows its due date under the MSMED Act, with overdue bills listed before the year closes.","why":"A payment to a micro or small supplier made after the legal time limit is not deductible as an expense in the year it was incurred.","test":"Mark a supplier as a micro enterprise, enter a bill, and show its due date and the list of MSME bills nearing or past it.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"defines":"https://ahromlabs.com/systems/msme-payment-rule","governedBy":{"law":"MSMED Act, 2006, section 15 (with Income-tax Act, 2025, section 37(2)(g))","quote":"Provided that in no case the period agreed upon between the supplier and the buyer in writing shall exceed forty-five days from the day of acceptance or the day of deemed acceptance","inForce":"Payment limit since 2006; the tax link since the Finance Act, 2023, carried into the Income-tax Act, 2025","appliesTo":"Any buyer of goods or services from a micro or small enterprise","source":"https://samadhaan.msme.gov.in/WriteReadData/DocumentFile/MSMED2006act.pdf"},"url":"https://ahromlabs.com/erp/requirements#purchase-msme-due-dates"},{"kind":"erp-requirement","id":"purchase.msme-tax-deduction","department":"Purchase","question":"Why does the MSME due date matter for tax?","requirement":"Year-end reports list MSME amounts paid after the section 15 time limit separately, so the accountant can treat them correctly in the tax computation.","why":"The Income-tax Act, 2025 allows that deduction only on actual payment, with none of the usual grace until the return due date.","test":"Show the year-end list of MSME bills paid late, with bill date, acceptance date and payment date.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"defines":"https://ahromlabs.com/systems/msme-payment-rule","governedBy":{"law":"Income-tax Act, 2025, section 37(2)(g) (formerly section 43B(h) of the 1961 Act)","quote":"amount payable by the assessee to a micro or small enterprise beyond the time limit specified in section 15 of the Micro, Small and Medium Enterprises Development Act, 2006","inForce":"From 1 April 2026 under the 2025 Act","appliesTo":"A business claiming the expense; confirm with your CA how it applies to you","source":"https://egazette.gov.in/WriteReadData/2025/265620.pdf"},"url":"https://ahromlabs.com/erp/requirements#purchase-msme-tax-deduction"},{"kind":"erp-requirement","id":"stores.unit-level","department":"Stores and inventory","question":"Should stock be tracked by quantity or by each physical unit?","requirement":"Stock is tracked by each physical unit that is picked and shipped (a reel, a box, a plate), each with its own number and label, not only as a total quantity.","why":"Customers order quantities, but stores ship units of different sizes; a total can't tell you which unit fills an order.","test":"Receive two reels of the same part with different quantities and show each as its own unit with its own label.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"provenBy":{"url":"https://electronics-erp.ahromlabs.com/demo","signInAs":"Store staff"},"explainedBy":"https://ahromlabs.com/notes/reels-boxes-and-two-stores","url":"https://ahromlabs.com/erp/requirements#stores-unit-level"},{"kind":"erp-requirement","id":"stores.scan-moves","department":"Stores and inventory","question":"How should stock movements be recorded?","requirement":"Stock moves in, out and between stores by scanning with a phone camera or scanner, not by typing codes.","why":"Typed codes are where most stock errors begin.","test":"Move three units between stores by scanning them with a phone, then show the move in both stores' records.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"benchmark":"Scan into a cart with a phone camera or scanner","satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"url":"https://ahromlabs.com/erp/requirements#stores-scan-moves"},{"kind":"erp-requirement","id":"stores.multi-store","department":"Stores and inventory","question":"Can we hold stock in more than one place?","requirement":"Stock is held in more than one store or site, including a partner's, and every move between them is logged unit by unit.","why":"Stock that leaves your building leaves your records if the system has only one location.","test":"Show stock for one item split across two stores, and the log of the last move between them.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores","Owner"],"benchmark":"5,256, none lost","satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"explainedBy":"https://ahromlabs.com/notes/reels-boxes-and-two-stores","url":"https://ahromlabs.com/erp/requirements#stores-multi-store"},{"kind":"erp-requirement","id":"stores.reservations","department":"Stores and inventory","question":"Can stock promised to one customer be sold to another?","requirement":"Stock is reserved against each customer order line; a reserved unit shows as reserved when scanned, and shipping it elsewhere needs a manager's override.","why":"Without reservations the same reel is promised twice and one customer finds out on delivery day.","test":"Reserve a unit for one order, then try to ship it on another and show the block and the override.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores","Sales"],"benchmark":"Whole reels per customer PO line, oldest first; shipping one elsewhere needs a manager's override","satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"provenBy":{"url":"https://electronics-erp.ahromlabs.com/demo","signInAs":"Owner"},"defines":"https://ahromlabs.com/systems/stock-reservation","url":"https://ahromlabs.com/erp/requirements#stores-reservations"},{"kind":"erp-requirement","id":"stores.approval","department":"Stores and inventory","question":"Should staff stock entries be approved?","requirement":"Stock entries made by staff wait for a manager's approval before they change stock; a manager's own entries go through at once.","why":"An unchecked entry changes the stock everyone else relies on.","test":"Enter a receipt as store staff, show it pending, approve it as a manager, and show the stock change only then.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"url":"https://ahromlabs.com/erp/requirements#stores-approval"},{"kind":"erp-requirement","id":"stores.balances-derived","department":"Stores and inventory","question":"How is the stock balance kept right?","requirement":"Stock balances are worked out from the movements themselves, not kept as a separate running total that can drift.","why":"A stored total that is edited directly stops matching its movements, and nobody can say which is right.","test":"Show the movements behind one item's balance and that they add up to it exactly.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores","Accounts"],"implementedAs":"https://ahromlabs.com/patterns/derive-balances-dont-store-them","url":"https://ahromlabs.com/erp/requirements#stores-balances-derived"},{"kind":"erp-requirement","id":"production.bom-import","department":"Production and BOM","question":"Can our existing Excel BOMs be imported?","requirement":"Bills of materials kept in Excel are imported as they are, matched to the item master and grouped into assemblies; a likely typo is suggested, never silently corrected.","why":"Re-entering every BOM by hand delays go-live by months and introduces its own errors.","test":"Import one of your real BOM sheets and show how each unmatched line is handled.","priority":"Must","appliesTo":["Manufacturing"],"signedOffBy":["Plant and stores"],"benchmark":"6","satisfiedBy":{"name":"BOM import and multi-level bill of materials","url":"https://ahromlabs.com/services/bom-from-excel"},"provenBy":{"url":"https://boiler-erp.ahromlabs.com/demo","signInAs":"Engineering"},"implementedAs":"https://ahromlabs.com/patterns/one-confirmation-teaches-the-system","url":"https://ahromlabs.com/erp/requirements#production-bom-import"},{"kind":"erp-requirement","id":"production.bom-release","department":"Production and BOM","question":"How do purchase and stores know which BOM to work from?","requirement":"A released bill of materials is frozen as a version that purchase and stores work from; later edits make a new version.","why":"When the BOM changes under people's feet, materials are bought against the wrong revision.","test":"Release a BOM, edit a line, and show the released version unchanged and the edit as a new version.","priority":"Must","appliesTo":["Manufacturing"],"signedOffBy":["Plant and stores"],"satisfiedBy":{"name":"BOM import and multi-level bill of materials","url":"https://ahromlabs.com/services/bom-from-excel"},"url":"https://ahromlabs.com/erp/requirements#production-bom-release"},{"kind":"erp-requirement","id":"production.cutting-remnants","department":"Production and BOM","question":"Can offcuts go back into stock?","requirement":"At each cut, what was used and the usable remnant are recorded; remnant weights come from dimensions and density, and remnants return to stock to be matched to waiting BOM lines before anything is bought.","why":"Remnants left off the books are bought again.","test":"Cut a plate, record the remnant, and show it back in stock with its weight and offered against a waiting BOM line.","priority":"Should","appliesTo":["Manufacturing"],"signedOffBy":["Plant and stores","Accounts"],"benchmark":"157.00 kg → 127.17 used + 15.70 remnant + 14.13 scrap","satisfiedBy":{"name":"Material traceability, cutting and remnant management","url":"https://ahromlabs.com/services/material-traceability"},"provenBy":{"url":"https://boiler-erp.ahromlabs.com/demo","signInAs":"Production"},"explainedBy":"https://ahromlabs.com/notes/plate-remnants-back-into-stock","url":"https://ahromlabs.com/erp/requirements#production-cutting-remnants"},{"kind":"erp-requirement","id":"production.costing-from-use","department":"Production and BOM","question":"Are job costs worked out from what was actually used?","requirement":"Each job is costed from the material and labour actually recorded against it, with each used piece costed by its share of the source piece.","why":"Costs estimated after the fact hide which jobs lose money.","test":"Show one finished job's cost, and the issues and work logs behind each line of it.","priority":"Should","appliesTo":["Manufacturing","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Accounts"],"satisfiedBy":{"name":"Material traceability, cutting and remnant management","url":"https://ahromlabs.com/services/material-traceability"},"url":"https://ahromlabs.com/erp/requirements#production-costing-from-use"},{"kind":"erp-requirement","id":"production.blockers","department":"Production and BOM","question":"Can we see what each job is waiting on?","requirement":"For each job or milestone the system shows what it is waiting on (material, drawing, approval, payment), worked out fresh each time it is opened.","why":"A status field typed by hand is out of date the day after it's typed.","test":"Open a delayed job and show what it is waiting on, then clear the blocker and show the status change by itself.","priority":"Should","appliesTo":["Manufacturing","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Plant and stores"],"satisfiedBy":{"name":"Analytics and operational intelligence","url":"https://ahromlabs.com/services/operational-intelligence"},"implementedAs":"https://ahromlabs.com/patterns/compute-blockers-on-read","url":"https://ahromlabs.com/erp/requirements#production-blockers"},{"kind":"erp-requirement","id":"quality.certificate-bank","department":"Quality and traceability","question":"How should material test certificates be stored?","requirement":"Material test certificates are kept once, in a bank, and linked to each piece of material and each product they apply to.","why":"A certificate filed per order is copied, misfiled and hard to find at inspection.","test":"Show one certificate and every product it has been used for.","priority":"Must","appliesTo":["Manufacturing"],"signedOffBy":["Plant and stores"],"satisfiedBy":{"name":"Material traceability, cutting and remnant management","url":"https://ahromlabs.com/services/material-traceability"},"defines":"https://ahromlabs.com/systems/material-traceability","url":"https://ahromlabs.com/erp/requirements#quality-certificate-bank"},{"kind":"erp-requirement","id":"quality.confirmed-links","department":"Quality and traceability","question":"Can the system link certificates to parts automatically?","requirement":"The system may suggest which certificate belongs to which part, but a link that ends up in statutory paperwork is made only after a person confirms it.","why":"A wrong automatic link in a statutory folder is a compliance failure, not a typo.","test":"Show a suggested certificate link waiting for confirmation, and that it doesn't appear in any document until confirmed.","priority":"Must","appliesTo":["Manufacturing"],"signedOffBy":["Plant and stores"],"explainedBy":"https://ahromlabs.com/notes/same-confidence-different-autonomy","implementedAs":"https://ahromlabs.com/patterns/human-confirmed-extraction","url":"https://ahromlabs.com/erp/requirements#quality-confirmed-links"},{"kind":"erp-requirement","id":"quality.statutory-folder","department":"Quality and traceability","question":"Can the ERP assemble statutory quality documents?","requirement":"Statutory quality documents (for example a boiler's IBR folder) are assembled from the records already in the system, not compiled by hand.","why":"Compiling a folder by hand from files takes days and repeats errors.","test":"Generate the statutory folder for one finished product and check each certificate in it against the material used.","priority":"Should","appliesTo":["Manufacturing"],"signedOffBy":["Plant and stores","Owner"],"benchmark":"IBR 2026 Forms I Part B, IV Part A, IV Part B and V Part B (Forms II(1), III, III A and IV A under IBR 1950), from a bank of material test certificates","satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"explainedBy":"https://ahromlabs.com/notes/ibr-statutory-folder-from-bom","url":"https://ahromlabs.com/erp/requirements#quality-statutory-folder"},{"kind":"erp-requirement","id":"dispatch.eway-bill","department":"Dispatch and logistics","question":"Does the ERP need to generate e-way bills?","requirement":"For goods moving with a consignment value above ₹50,000, the e-way bill is generated from the invoice and dispatch record, without retyping into the portal.","why":"Goods moving without a valid e-way bill can be stopped in transit.","test":"Dispatch a consignment above ₹50,000 and show the e-way bill details produced from the invoice.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Accounts","Plant and stores"],"ahromLabsStatus":"built-not-live","defines":"https://ahromlabs.com/systems/e-way-bill","governedBy":{"law":"CGST Rules, 2017, rule 138","quote":"consignment value exceeding fifty thousand rupees","inForce":"Rule 138 as substituted on 7 March 2018","appliesTo":"A registered person causing goods to move above the value limit","source":"https://gstcouncil.gov.in/sites/default/files/2024-05/notification-12-2018-central_tax-english.pdf"},"url":"https://ahromlabs.com/erp/requirements#dispatch-eway-bill"},{"kind":"erp-requirement","id":"dispatch.documents","department":"Dispatch and logistics","question":"Which documents should leave with the goods?","requirement":"Packing lists, invoices and certificates for a dispatch are produced from the same order and released to the customer as they are issued.","why":"Documents prepared separately from the dispatch don't match what's in the truck.","test":"Dispatch part of an order and show the packing list, invoice and certificates for exactly what left.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores","Sales"],"satisfiedBy":{"name":"Customer portal and online quote requests","url":"https://ahromlabs.com/services/customer-portal"},"url":"https://ahromlabs.com/erp/requirements#dispatch-documents"},{"kind":"erp-requirement","id":"dispatch.supplier-dispatch","department":"Dispatch and logistics","question":"Can stores see what suppliers have dispatched?","requirement":"Suppliers record each dispatch on their link (lines, quantities, transporter, vehicle, LR number, photos), so stores see what is on the way.","why":"Stores that learn of a delivery when the truck arrives can't plan the unloading or the inspection.","test":"Record a supplier dispatch on the link and show it in stores' incoming list.","priority":"Could","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Plant and stores"],"benchmark":"Lines and quantities, transporter, vehicle, LR number, up to 3 photos or PDFs","satisfiedBy":{"name":"Supplier RFQ portal and purchase orders","url":"https://ahromlabs.com/services/supplier-portal"},"url":"https://ahromlabs.com/erp/requirements#dispatch-supplier-dispatch"},{"kind":"erp-requirement","id":"accounts.audit-trail","department":"Accounts and GST","question":"Does my ERP need an audit trail?","requirement":"Every transaction in the books has an audit trail: an edit log of each change with the date it was made, which cannot be switched off.","why":"A company keeping its books in software must use software with this feature, and its auditor reports on it.","test":"Enter a purchase bill, change its amount, and show the edit log with the old value, the new value, the user and the time; then show there is no setting to disable it.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts","Owner"],"appliesWhen":{"company":true},"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"defines":"https://ahromlabs.com/systems/audit-trail","governedBy":{"law":"Companies (Accounts) Rules, 2014, rule 3(1), proviso","quote":"has a feature of recording audit trail of each and every transaction, creating an edit log of each change made in books of account along with the date when such changes were made and ensuring that the audit trail cannot be disabled","inForce":"Financial years from 1 April 2023 (date substituted by G.S.R. 235(E), 31 March 2022)","appliesTo":"Every company that keeps its books of account in accounting software","source":"https://egazette.gov.in/WriteReadData/2021/226081.pdf"},"url":"https://ahromlabs.com/erp/requirements#accounts-audit-trail"},{"kind":"erp-requirement","id":"accounts.audit-trail-date","department":"Accounts and GST","question":"From when does the audit-trail rule apply?","requirement":"The audit trail has been on, without gaps, for every financial year from 1 April 2023, including for data migrated from an older system.","why":"The requirement runs for the whole year; a gap during a migration is still a gap.","test":"Show the audit trail for an entry made before the switch to the new system, and the first entry after it.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"company":true},"defines":"https://ahromlabs.com/systems/audit-trail","governedBy":{"law":"Companies (Accounts) Second Amendment Rules, 2022","quote":"the figures, letters and words “1st day of April, 2023” shall be substituted","inForce":"1 April 2023","appliesTo":"Companies keeping books in accounting software","source":"https://egazette.gov.in/WriteReadData/2022/234733.pdf"},"url":"https://ahromlabs.com/erp/requirements#accounts-audit-trail-date"},{"kind":"erp-requirement","id":"accounts.e-invoice","department":"Accounts and GST","question":"Does my ERP need to generate e-invoices?","requirement":"Where aggregate turnover has exceeded ₹5 crore in any year since 2017-18, B2B invoices, credit notes and debit notes get an IRN from the invoice registration portal before they are issued.","why":"Above the threshold, a B2B invoice without an IRN isn't a valid tax invoice.","test":"Issue a B2B invoice and show the IRN and signed QR code returned from the IRP on the printed invoice.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"turnoverAtLeast":5},"ahromLabsStatus":"not-built","defines":"https://ahromlabs.com/systems/e-invoice","governedBy":{"law":"Notification No. 13/2020–Central Tax, as amended by No. 10/2023–Central Tax (under CGST Rules, rule 48(4))","quote":"the words “five crore rupees” shall be substituted","inForce":"1 August 2023","appliesTo":"Registered persons whose aggregate turnover exceeded ₹5 crore in any financial year from 2017-18","source":"https://gstcouncil.gov.in/sites/default/files/2024-05/10ct_eng.pdf"},"url":"https://ahromlabs.com/erp/requirements#accounts-e-invoice"},{"kind":"erp-requirement","id":"accounts.e-invoice-30-days","department":"Accounts and GST","question":"Is there a time limit for reporting e-invoices?","requirement":"Where annual aggregate turnover is ₹10 crore or more, every e-invoice, credit note and debit note is reported to the IRP within 30 days of its date, and the system warns before that window closes.","why":"After 30 days the portal refuses the document, and the invoice can't be made valid.","test":"Show the list of invoices not yet reported to the IRP, with the days left for each.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"turnoverAtLeast":10},"ahromLabsStatus":"not-built","defines":"https://ahromlabs.com/systems/e-invoice","governedBy":{"law":"GSTN advisory, 5 November 2024","quote":"taxpayers with an AATO of 10 crores and above would not be allowed to report e-Invoices older than 30 days from the date of reporting on IRP portals","inForce":"1 April 2025","appliesTo":"Taxpayers with annual aggregate turnover (AATO) of ₹10 crore and above","source":"https://www.mahagst.gov.in/public/uploads/gstnadvisory/1760531580_293%20Advisory%20Time%20Limit%20for%20Reporting%20e%20Invoice%20on%20the%20IRP%20Portal%20%20Lowering%20of%20Threshold%20to%20AATO%2010%20Crores%20and%20Above.pdf"},"url":"https://ahromlabs.com/erp/requirements#accounts-e-invoice-30-days"},{"kind":"erp-requirement","id":"accounts.gst-returns","department":"Accounts and GST","question":"Can GST returns come straight from the ERP?","requirement":"GSTR-1 and GSTR-3B are prepared from the sales, purchase and stock records already in the system, and input tax credit is reconciled against them.","why":"Returns rebuilt in a spreadsheet each month drift from the books.","test":"Produce last month's GSTR-1 and GSTR-3B from the system and tie one line of each back to its invoice.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"tally":"replace"},"benchmark":"GSTR-1 (B2B and HSN) and GSTR-3B","satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"explainedBy":"https://ahromlabs.com/notes/accounting-inside-the-manufacturing-erp","url":"https://ahromlabs.com/erp/requirements#accounts-gst-returns"},{"kind":"erp-requirement","id":"accounts.rates-registry","department":"Accounts and GST","question":"Where do GST and TDS rates come from?","requirement":"GST rates by HSN, TDS rates and payroll slabs come from one registry that a person verifies, used by every module, not typed into each transaction.","why":"A rate changed by notification has to change once, everywhere, on the right date.","test":"Change a rate in the registry with an effective date and show transactions before and after it using the right rate.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"explainedBy":"https://ahromlabs.com/notes/statutory-rates-across-systems","implementedAs":"https://ahromlabs.com/patterns/human-verified-statutory-rates","url":"https://ahromlabs.com/erp/requirements#accounts-rates-registry"},{"kind":"erp-requirement","id":"accounts.tds-purchases","department":"Accounts and GST","question":"Does the ERP handle TDS on purchase of goods?","requirement":"Where the business is a buyer with turnover above ₹10 crore in the previous year, purchases from a seller beyond ₹50 lakh in the year attract TDS, and the system tracks each seller's running total and deducts from the right bill.","why":"The threshold is per seller per year; tracking it by hand misses the bill that crosses it.","test":"Show one supplier's purchases this year against the ₹50 lakh threshold and the bill on which deduction started.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Accounts"],"appliesWhen":{"turnoverAtLeast":10},"defines":"https://ahromlabs.com/systems/tds-on-purchases","governedBy":{"law":"Income-tax Act, 2025, section 393(1), Table, Sl. No. 8(ii) and its Note","cited":"The provision is a table whose columns are split in the Gazette PDF, so no phrase is quotable word for word; read it in the Act, row 8(ii) of the section 393(1) table and the buyer definition in its Note.","inForce":"From 1 April 2026 under the 2025 Act (formerly section 194Q of the 1961 Act)","appliesTo":"A buyer whose turnover exceeded ₹10 crore in the preceding tax year; confirm with your CA","source":"https://egazette.gov.in/WriteReadData/2025/265620.pdf"},"url":"https://ahromlabs.com/erp/requirements#accounts-tds-purchases"},{"kind":"erp-requirement","id":"accounts.period-lock","department":"Accounts and GST","question":"Can a filed period be changed afterwards?","requirement":"A period whose returns have been filed is locked; any later correction goes in as a dated adjustment, with the audit trail intact.","why":"A filed return that no longer matches the books is a notice waiting to happen.","test":"Lock last month, try to edit an invoice in it, and show the block and the correct adjustment route.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"tally":"replace"},"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"url":"https://ahromlabs.com/erp/requirements#accounts-period-lock"},{"kind":"erp-requirement","id":"accounts.bank-reconciliation","department":"Accounts and GST","question":"How should bank reconciliation work?","requirement":"Bank statement lines are matched to entries automatically only when the match is unique both ways; everything else goes to a person.","why":"An automatic match that guesses between two equal amounts settles the wrong bill.","test":"Import a statement with two receipts of the same amount and show that neither is matched automatically.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"implementedAs":"https://ahromlabs.com/patterns/auto-match-only-when-mutually-unique","url":"https://ahromlabs.com/erp/requirements#accounts-bank-reconciliation"},{"kind":"erp-requirement","id":"accounts.reverse-charge","department":"Accounts and GST","question":"Does the ERP handle reverse charge?","requirement":"Purchases under reverse charge are marked, and the tax payable on them is computed and shown in the returns.","why":"Reverse-charge tax is easy to miss because no supplier invoice shows it.","test":"Enter a reverse-charge purchase and show the tax liability it creates in the return.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"tally":"replace"},"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"defines":"https://ahromlabs.com/systems/reverse-charge","url":"https://ahromlabs.com/erp/requirements#accounts-reverse-charge"},{"kind":"erp-requirement","id":"accounts.fixed-assets","department":"Accounts and GST","question":"Should the ERP keep the fixed-asset register?","requirement":"Fixed assets are kept in a register with cost, date put to use and depreciation, posted to the ledger.","why":"A register in a separate spreadsheet stops agreeing with the ledger by the first year end.","test":"Add an asset, run depreciation for the year, and show the ledger entries it made.","priority":"Could","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"tally":"replace"},"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"defines":"https://ahromlabs.com/systems/fixed-asset-register","url":"https://ahromlabs.com/erp/requirements#accounts-fixed-assets"},{"kind":"erp-requirement","id":"accounts.tally-posting","department":"Accounts and GST","question":"Can we keep Tally and still use an ERP?","requirement":"If Tally stays as the books, approved invoices post into TallyPrime as vouchers automatically, and each posted voucher is checked against Tally's own data so one deleted inside Tally is flagged.","why":"Two sets of books that aren't checked against each other diverge silently.","test":"Approve an invoice, show the voucher in TallyPrime, delete it in Tally, and show it flagged as unconfirmed after the next sync.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"tally":"keep"},"benchmark":"30 seconds","failureMode":"A voucher deleted inside Tally looked posted in the app until every voucher was checked against Tally's data.","satisfiedBy":{"name":"TallyPrime integration for cloud apps","url":"https://ahromlabs.com/services/tally-integration"},"explainedBy":"https://ahromlabs.com/notes/tally-voucher-posting","implementedAs":"https://ahromlabs.com/patterns/reconcile-against-source-of-truth","url":"https://ahromlabs.com/erp/requirements#accounts-tally-posting"},{"kind":"erp-requirement","id":"payroll.computed","department":"Payroll and people","question":"Should payroll be typed or computed?","requirement":"Pay is computed from attendance, rates and advances recorded during the month, never typed as a final figure.","why":"A typed pay figure can't be checked; a computed one can be traced to each day.","test":"Show one worker's month: days present, rate, advances, and the pay the system worked out.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts","Owner"],"benchmark":"Computed: days × rate − advances, never typed","satisfiedBy":{"name":"Attendance, work logs and daily-wage payroll","url":"https://ahromlabs.com/services/daily-wage-payroll"},"provenBy":{"url":"https://interiors-erp.ahromlabs.com/demo","signInAs":"People"},"url":"https://ahromlabs.com/erp/requirements#payroll-computed"},{"kind":"erp-requirement","id":"payroll.work-logs","department":"Payroll and people","question":"Can labour be logged against jobs?","requirement":"Who worked on which order, and on which part, is logged daily, so labour shows up in job costs.","why":"Labour not logged against a job makes every job look more profitable than it is.","test":"Log a day's work for two people on one order and show it in that order's cost.","priority":"Should","appliesTo":["Manufacturing","Project businesses (interiors, fit-out)"],"signedOffBy":["Plant and stores","Accounts"],"satisfiedBy":{"name":"Attendance, work logs and daily-wage payroll","url":"https://ahromlabs.com/services/daily-wage-payroll"},"url":"https://ahromlabs.com/erp/requirements#payroll-work-logs"},{"kind":"erp-requirement","id":"payroll.statutory-slabs","department":"Payroll and people","question":"Are PF, ESI and professional tax worked out by the ERP?","requirement":"PF, ESI, professional tax and income-tax slabs come from the verified rate registry and are applied by rule, not typed per employee.","why":"Slabs change by notification; typed values don't.","test":"Show the deductions for one salaried employee and the registry entries they came from.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"satisfiedBy":{"name":"GST, TDS and statutory compliance, built in","url":"https://ahromlabs.com/services/compliance-accounting"},"url":"https://ahromlabs.com/erp/requirements#payroll-statutory-slabs"},{"kind":"erp-requirement","id":"portals.customer-stages","department":"Customer and supplier portals","question":"Can customers follow their own orders?","requirement":"Customers sign in to see each of their orders as plain-language stages worked out from what each department records, never typed for the customer.","why":"Status typed for the customer goes stale, and the phone keeps ringing.","test":"Sign in as a customer, open an order, then move it forward internally and show the customer's view change.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Sales"],"benchmark":"9, from Order Received to Commissioning","satisfiedBy":{"name":"Customer portal and online quote requests","url":"https://ahromlabs.com/services/customer-portal"},"provenBy":{"url":"https://electronics-erp.ahromlabs.com/demo","signInAs":"Customer portal"},"explainedBy":"https://ahromlabs.com/notes/customer-portal-one-order-every-department","url":"https://ahromlabs.com/erp/requirements#portals-customer-stages"},{"kind":"erp-requirement","id":"portals.no-stock-exposure","department":"Customer and supplier portals","question":"What should customers never see?","requirement":"The customer portal shows a customer only their own orders and documents; stock levels, other customers and internal prices are never exposed.","why":"A portal built on internal screens leaks what competitors would pay to know.","test":"Sign in as one customer and try to open another customer's order by changing its number in the address.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Owner"],"satisfiedBy":{"name":"Customer portal and online quote requests","url":"https://ahromlabs.com/services/customer-portal"},"implementedAs":"https://ahromlabs.com/patterns/role-scoped-finance-views","url":"https://ahromlabs.com/erp/requirements#portals-no-stock-exposure"},{"kind":"erp-requirement","id":"portals.drawings","department":"Customer and supplier portals","question":"Can customers approve drawings online?","requirement":"Drawings, certificates, packing lists and invoices appear to the customer as they are released, and drawings can be approved or uploaded there.","why":"Drawing approvals by email get lost between versions.","test":"Release a drawing, approve it as the customer, and show the approval recorded on the order.","priority":"Could","appliesTo":["Manufacturing"],"signedOffBy":["Sales","Plant and stores"],"satisfiedBy":{"name":"Customer portal and online quote requests","url":"https://ahromlabs.com/services/customer-portal"},"url":"https://ahromlabs.com/erp/requirements#portals-drawings"},{"kind":"erp-requirement","id":"reporting.traceable","department":"Reporting and AI","question":"Can every report figure be traced to records?","requirement":"Every figure on every report can be opened to show the transactions it was computed from.","why":"A number nobody can trace is a number nobody acts on.","test":"Pick a figure on the owner's dashboard and open the records behind it.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"satisfiedBy":{"name":"Analytics and operational intelligence","url":"https://ahromlabs.com/services/operational-intelligence"},"implementedAs":"https://ahromlabs.com/patterns/derive-balances-dont-store-them","url":"https://ahromlabs.com/erp/requirements#reporting-traceable"},{"kind":"erp-requirement","id":"reporting.assistant-no-invented-numbers","department":"Reporting and AI","question":"Can an AI assistant answer questions from our books safely?","requirement":"An AI assistant answers from fixed look-ups in code; it never writes a number itself, and any written answer containing a number not in the data is dropped.","why":"An assistant that writes its own figures will, sooner or later, give one that doesn't match the accounts.","test":"Ask the assistant this month's sales in plain English and in Hinglish, then compare its answer with the sales report.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Accounts"],"benchmark":"55 of 55 test questions and 57 unseen real phrasings, including Hinglish","satisfiedBy":{"name":"Custom AI assistant over your business data","url":"https://ahromlabs.com/services/custom-ai-assistant"},"provenBy":{"url":"https://interiors-erp.ahromlabs.com/demo","signInAs":"any sample login (two free questions)"},"explainedBy":"https://ahromlabs.com/notes/assistant-that-answers-from-your-ledger","url":"https://ahromlabs.com/erp/requirements#reporting-assistant-no-invented-numbers"},{"kind":"erp-requirement","id":"reporting.extraction-review","department":"Reporting and AI","question":"Can AI read our purchase documents?","requirement":"AI reads purchase invoices, bills of entry, purchase orders and bank statements into the system, and a person approves each one before anything posts.","why":"Typing documents in is slow; posting AI output unchecked is worse.","test":"Upload five of your own documents and show the fields read, the corrections needed, and that nothing posted before approval.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Accounts"],"benchmark":"88–95%","satisfiedBy":{"name":"AI document extraction with human review","url":"https://ahromlabs.com/services/document-extraction"},"explainedBy":"https://ahromlabs.com/notes/ai-extraction-human-in-the-loop","implementedAs":"https://ahromlabs.com/patterns/human-confirmed-extraction","url":"https://ahromlabs.com/erp/requirements#reporting-extraction-review"},{"kind":"erp-requirement","id":"reporting.ai-search","department":"Reporting and AI","question":"Can we search old documents and decisions?","requirement":"Drawings, certificates, past quotations and decisions are searchable in plain words, and each answer shows the document it came from.","why":"What the business already knows is useless if only one person can find it.","test":"Search for a past quotation by what was quoted, not its number, and open the source.","priority":"Could","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Sales"],"satisfiedBy":{"name":"RAG and knowledge graphs over your business","url":"https://ahromlabs.com/services/rag-knowledge-graphs"},"implementedAs":"https://ahromlabs.com/patterns/unconfirmed-inferences-stay-read-only","url":"https://ahromlabs.com/erp/requirements#reporting-ai-search"},{"kind":"erp-requirement","id":"integrations.tally","department":"Integrations","question":"How can a cloud ERP connect to TallyPrime?","requirement":"The ERP connects to TallyPrime through an agent on the Tally PC (Tally's gateway only listens there), with vouchers pushed and outstandings synced back on a fixed schedule.","why":"TallyPrime has no cloud API; a vendor who says otherwise should show how.","test":"Show the agent running beside TallyPrime and the last sync times for vouchers and masters.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"tally":"keep"},"benchmark":"4 — local agent, hardened agent, MCP server, CSV/JSON files","ahromLabsStatus":"live","satisfiedBy":{"name":"TallyPrime integration for cloud apps","url":"https://ahromlabs.com/services/tally-integration"},"explainedBy":"https://ahromlabs.com/notes/connecting-tallyprime-four-ways","implementedAs":"https://ahromlabs.com/patterns/local-agent-cloud-db","url":"https://ahromlabs.com/erp/requirements#integrations-tally"},{"kind":"erp-requirement","id":"integrations.tally-receivables","department":"Integrations","question":"Can Tally's receivables show in the ERP?","requirement":"Receivables with ageing, payables, registers, cash, bank and stock are copied out of TallyPrime into the business system on a schedule, and show the last sync when Tally is off.","why":"Sales chasing payments without Tally access calls accounts for every balance.","test":"Show receivables ageing in the ERP and the time of its last sync from Tally.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Sales","Accounts"],"appliesWhen":{"tally":"keep"},"benchmark":"15 minutes","ahromLabsStatus":"live","satisfiedBy":{"name":"Receivables, payables and financial position from TallyPrime","url":"https://ahromlabs.com/services/receivables-from-tally"},"url":"https://ahromlabs.com/erp/requirements#integrations-tally-receivables"},{"kind":"erp-requirement","id":"integrations.irp","department":"Integrations","question":"Does the ERP connect to the e-invoice portal?","requirement":"The ERP sends B2B invoices to the invoice registration portal and stores the IRN and signed QR code returned.","why":"Copying invoices into the portal by hand is where the 30-day limit is missed.","test":"Generate an IRN from the ERP for a test invoice and show the QR code on the print.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"appliesWhen":{"turnoverAtLeast":5},"ahromLabsStatus":"not-built","defines":"https://ahromlabs.com/systems/e-invoice","url":"https://ahromlabs.com/erp/requirements#integrations-irp"},{"kind":"erp-requirement","id":"integrations.eway","department":"Integrations","question":"Does the ERP connect to the e-way bill system?","requirement":"The ERP generates e-way bills through the NIC e-way bill system from dispatch records.","why":"Retyping consignments into the portal at the gate delays the truck.","test":"Generate an e-way bill for a test dispatch and show its number on the dispatch record.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution"],"signedOffBy":["Accounts","Plant and stores"],"benchmark":"Direct NIC client built to the official v1.03 spec; live once the NIC account is set up","ahromLabsStatus":"built-not-live","defines":"https://ahromlabs.com/systems/e-way-bill","url":"https://ahromlabs.com/erp/requirements#integrations-eway"},{"kind":"erp-requirement","id":"integrations.bank-statements","department":"Integrations","question":"Can bank statements be imported?","requirement":"Bank statements are imported from the bank's PDF or file, read into lines, and offered for reconciliation.","why":"Typing a month of statement lines takes a day and adds errors.","test":"Import one month's statement from your bank and show the lines it read.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Accounts"],"benchmark":"89%","ahromLabsStatus":"live","satisfiedBy":{"name":"AI document extraction with human review","url":"https://ahromlabs.com/services/document-extraction"},"url":"https://ahromlabs.com/erp/requirements#integrations-bank-statements"},{"kind":"erp-requirement","id":"integrations.excel-import","department":"Integrations","question":"Can data still come in from Excel?","requirement":"Sheets people already keep (BOMs, price lists, opening stock) import through the interface, with each problem row shown rather than silently skipped.","why":"If Excel stays the way data enters, the ERP has to accept it cleanly.","test":"Import a sheet with one bad row and show how the bad row is reported.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Plant and stores"],"ahromLabsStatus":"live","satisfiedBy":{"name":"BOM import and multi-level bill of materials","url":"https://ahromlabs.com/services/bom-from-excel"},"url":"https://ahromlabs.com/erp/requirements#integrations-excel-import"},{"kind":"erp-requirement","id":"integrations.whatsapp","department":"Integrations","question":"Can the ERP send WhatsApp messages?","requirement":"Links that suppliers and customers act on (RFQs, quotations, reminders) can be sent on WhatsApp as well as email.","why":"Indian customers and suppliers answer WhatsApp before email.","test":"Send an RFQ link to a supplier on WhatsApp from the system.","priority":"Could","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Sales","Plant and stores"],"ahromLabsStatus":"live","satisfiedBy":{"name":"Supplier RFQ portal and purchase orders","url":"https://ahromlabs.com/services/supplier-portal"},"url":"https://ahromlabs.com/erp/requirements#integrations-whatsapp"},{"kind":"erp-requirement","id":"nonfunctional.offline","department":"Reliability, access and support","question":"What happens when the factory internet drops?","requirement":"When the connection drops, work in progress isn't lost: syncs retry by themselves, and a real error (a missing ledger, a rejected voucher) waits for a person.","why":"Factory and office connections drop every week; a system that loses data then is unusable.","test":"Pull the network cable during a sync and show what happens to the queued entries when it's back.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Accounts"],"satisfiedBy":{"name":"TallyPrime integration for cloud apps","url":"https://ahromlabs.com/services/tally-integration"},"implementedAs":"https://ahromlabs.com/patterns/failures-flagged-not-lost","url":"https://ahromlabs.com/erp/requirements#nonfunctional-offline"},{"kind":"erp-requirement","id":"nonfunctional.role-access","department":"Reliability, access and support","question":"How should access be controlled?","requirement":"What each role can see is enforced by the system itself, not just hidden on screen; staff can be refused bank data entirely.","why":"A field hidden on a screen is still one changed address away.","test":"Sign in as staff and try to open a bank page directly by its address.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"benchmark":"None — every bank route rejects staff","satisfiedBy":{"name":"Multi-company finance and role-scoped access","url":"https://ahromlabs.com/services/multi-company-finance"},"implementedAs":"https://ahromlabs.com/patterns/role-scoped-finance-views","defines":"https://ahromlabs.com/systems/role-based-access","url":"https://ahromlabs.com/erp/requirements#nonfunctional-role-access"},{"kind":"erp-requirement","id":"nonfunctional.machine-identity","department":"Reliability, access and support","question":"How should integrations sign in?","requirement":"Agents and integrations sign in with their own machine identities, separate from people, so their actions are traceable and revocable.","why":"An integration using a person's login breaks when that person leaves, and hides who did what.","test":"Show the list of machine identities and revoke one.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"implementedAs":"https://ahromlabs.com/patterns/separate-machine-from-human-identity","url":"https://ahromlabs.com/erp/requirements#nonfunctional-machine-identity"},{"kind":"erp-requirement","id":"nonfunctional.default-passwords","department":"Reliability, access and support","question":"What about the logins the vendor sets up?","requirement":"Logins created at setup must have their passwords changed on first sign-in.","why":"Default passwords are the first thing tried by anyone who shouldn't be in.","test":"Sign in with a newly created user and show the forced password change.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"implementedAs":"https://ahromlabs.com/patterns/seeded-credentials-forced-rotation","url":"https://ahromlabs.com/erp/requirements#nonfunctional-default-passwords"},{"kind":"erp-requirement","id":"nonfunctional.phone","department":"Reliability, access and support","question":"Does the ERP work on a phone?","requirement":"Stores, site and sales staff can do their daily tasks on a phone: scanning stock, marking attendance, checking an order.","why":"People on the floor won't walk to a desktop to record something.","test":"Do a stock scan and mark attendance on a phone, in front of you.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Plant and stores"],"satisfiedBy":{"name":"QR inventory, multi-store stock and order reservations","url":"https://ahromlabs.com/services/inventory-and-reservations"},"url":"https://ahromlabs.com/erp/requirements#nonfunctional-phone"},{"kind":"erp-requirement","id":"nonfunctional.data-export","department":"Reliability, access and support","question":"Can we get all our data out?","requirement":"All business data can be exported at any time in standard formats, during the contract and at its end.","why":"Data you can't take with you ties you to the vendor more than any contract.","test":"Ask for a full export of the demo data and open it in Excel.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"url":"https://ahromlabs.com/erp/requirements#nonfunctional-data-export"},{"kind":"erp-requirement","id":"nonfunctional.personal-data","department":"Reliability, access and support","question":"Does the ERP need to protect personal data?","requirement":"Personal data of staff, customers and contacts is protected with reasonable security safeguards, and a breach can be traced and reported.","why":"A business holding personal data is a data fiduciary under the DPDP Act, with duties for safeguards and breach intimation.","test":"Ask who can see employees' personal details, how access is logged, and how a breach would be detected and reported.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"governedBy":{"law":"Digital Personal Data Protection Act, 2023, section 8(5)","quote":"reasonable security safeguards to prevent personal data breach","inForce":"As the Act's provisions are brought into force; the DPDP Rules, 2025 on safeguards and breach intimation apply from May 2027 (rule 1(4))","appliesTo":"Any business processing digital personal data","source":"https://egazette.gov.in/WriteReadData/2023/248045.pdf"},"url":"https://ahromlabs.com/erp/requirements#nonfunctional-personal-data"},{"kind":"erp-requirement","id":"nonfunctional.support","department":"Reliability, access and support","question":"How fast is support after go-live?","requirement":"Support requests have a stated response time in the contract, and the vendor has written documentation that lets another developer take the system over.","why":"A system only one person understands stops when that person is unavailable.","test":"Ask for the response time in writing, and to see the system document for one of their live systems.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"url":"https://ahromlabs.com/erp/requirements#nonfunctional-support"},{"kind":"erp-requirement","id":"contract.ownership","department":"Contract and ownership","question":"Who owns the code?","requirement":"The contract states who owns the source code and the software, and what the buyer gets: the code itself, or a licence to use the system for a stated term.","why":"Both models exist and both can be fair; an unstated one becomes a dispute.","test":"Ask for the ownership clause in writing before the build starts.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"url":"https://ahromlabs.com/erp/requirements#contract-ownership"},{"kind":"erp-requirement","id":"contract.fixed-phases","department":"Contract and ownership","question":"How should a custom ERP be priced?","requirement":"Work is priced in fixed phases, each quoted before it starts, rather than an open-ended hourly bill.","why":"An open hourly bill puts the whole risk of the estimate on the buyer.","test":"Ask for the phase plan with a fixed price and a go-live date for each phase.","priority":"Should","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"url":"https://ahromlabs.com/erp/requirements#contract-fixed-phases"},{"kind":"erp-requirement","id":"contract.changes","department":"Contract and ownership","question":"What happens when requirements change mid-project?","requirement":"A change is written down, priced and agreed before it is built, never billed after the fact.","why":"Changes priced afterwards are where budgets go.","test":"Ask how the last change on one of their projects was priced and approved.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner"],"url":"https://ahromlabs.com/erp/requirements#contract-changes"},{"kind":"erp-requirement","id":"contract.amc-scope","department":"Contract and ownership","question":"What does the annual maintenance contract cover?","requirement":"The AMC states what it covers (licence, hosting, fixes, small changes), what it costs per year, and what is quoted separately.","why":"An AMC with no stated scope turns every request into a negotiation.","test":"Ask for the AMC scope and price in writing, and an example of something it doesn't cover.","priority":"Must","appliesTo":["Manufacturing","Trading and distribution","Project businesses (interiors, fit-out)"],"signedOffBy":["Owner","Accounts"],"url":"https://ahromlabs.com/erp/requirements#contract-amc-scope"}]}