Evaluate a contract
cashflow_evaluate_contractEvaluate a contract's viability by generating a monthly cash flow schedule and computing IRR, NPV, payback, MOIC, ROI, working capital, break-even, and financing costs.
Instructions
Expand a contract into a month-by-month cash flow schedule and compute the metrics that follow from it: IRR, NPV, simple and discounted payback, MOIC, ROI, working capital, break-even volume, and the financing cost of any asset paid in installments.
Use this as the main entry point whenever someone asks whether a deal, contract, lease, managed-service agreement or equipment purchase is worth doing.
Args:
model (object): The contract. Call cashflow_model_template first if you are unsure how to shape it.
schedule_detail ('none' | 'annual' | 'monthly'): How much of the schedule to return. Default 'annual'. Ask for 'monthly' only when a specific month matters; a 60-month contract returns 61 rows.
response_format ('markdown' | 'json'): Default 'markdown'.
Returns: metrics (IRR, NPV, payback, MOIC, ROI, EBITDA), financing, workingCapital, breakeven, annual rollup, optional schedule, and warnings.
irrAnnual is null when the flows have no reportable IRR, with the reason in irrUnavailableReason. Treat null as "no IRR exists", never as zero. paybackMonth is null when the investment is never recovered within the term.
Examples:
Use when: "Is this 5-year service contract worth signing?"
Use when: "What is the IRR and payback on this equipment deal?"
Don't use when: comparing two or more variants (use cashflow_compare_contracts)
Don't use when: stress-testing assumptions (use cashflow_run_sensitivity)
Error handling: Returns a validation error naming the offending field if the model is malformed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| response_format | No | 'markdown' for a readable report, 'json' for the full structured result. Structured data is returned either way in structuredContent. | markdown |
| schedule_detail | No | How much of the cash flow schedule to include. 'annual' rolls it up by contract year and is almost always enough. 'monthly' can be hundreds of rows, so ask for it only when a specific month is in question. | annual |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| annual | Yes | ||
| metrics | Yes | ||
| schedule | No | ||
| warnings | Yes | ||
| breakeven | Yes | ||
| financing | Yes | ||
| scheduleDetail | Yes | ||
| workingCapital | Yes |