A signed contract looks like a form when you've only seen the summary page. Read the whole document and it is closer to a legal essay with a handful of numbers load-bearing enough to bill from — and those numbers are rarely where you'd guess. A price change is a subordinate clause in section 14(b). A volume discount kicks in "upon written notice," which in practice means a side email nobody attached to the file. A one-time setup fee is "payable in three instalments following go-live," which sounds simple until go-live slips by six weeks and someone has to figure out which invoice each instalment actually lands on.
Reading a contract for billing purposes means extracting a typed deal — customer, products, prices, phase boundaries, and dates — grounded back to the page and clause it came from, so a reviewer can check the extraction against the source instead of trusting it blind. It also means being honest about which parts are extraction and which parts are computation. A deferred instalment's due date is something the document states; which phase or invoice it actually lands on, once go-live has slipped, is arithmetic against the phase boundaries the contract already defines — not something a language model should be asked to eyeball, because a one-time row bills on its block's anchor as a matter of contract math, not judgement.
The same discipline applies to renewals. If a contract's current term has ended, or is close enough that the next cycle is basically already here, the honest reading appends the renewal phase with whatever price change the clause actually states — rather than silently truncating the schedule and leaving finance to notice three weeks later that the contract "ran out."
None of this replaces a human review step. It replaces the alternative, which is a template-driven intake form that only works for contracts simple enough to not need one.