Green Contracts
Know what the coffee actually cost
Contracts, positions and milestones, with landed cost derived from what you bought rather than typed in twice.
The problem
Between signing a contract and the coffee arriving, a roastery's money sits in a position nobody can see. And the price on the contract is not the cost of the coffee — freight, duty, financing and shrinkage are.
Positions, before the coffee lands
What is committed and not yet received, by contract and by month. The green buyer's daily question, answered without a spreadsheet.
Landed cost that cascades
Receiving a shipment creates lots whose cost derives from the contract's own components. Change a freight figure and every affected lot, batch and open-order margin follows.
- Unit prices carry six decimals, because differentials quote to four
- Historical FX is recorded at write time, so a report never re-derives it
- Cost is divided by the INITIAL weight, not what is left
Milestones that email once
An overdue fixation or vessel is expensive and only recoverable if noticed. The alert dedupes on rule, subject and day — an alerting system fails by being muted, not by missing one alert.
Everything here is in the API
This area is sourcing.contract.* — the same operations the console calls.