Extract Construction Variation & Change Order Details
Deconstructs contractor variation claims, change-order notices, and delay notifications. Extracts claimed vs. approved sums, subcontractor markups, daily plant hire rates, labor hours by trade classification, and linked head-contract specification references.
Instant execution
Run this verification workflow directly. For instant zero-auth testing with deterministic fixture data, include the Stp-Sandbox: true header.
curl -X POST "https://www.stipple.sh/v1/extract?options=tables,grounding" \
-H "Authorization: Bearer stp_live_your_key_here" \
-F "file=@variation_claim_no_04.pdf" \
-F "fields=variation_number,project_id,contractor_name,claimed_amount_ex_gst,claimed_days_eot,contract_clause_reference"Expected JSON response
The engine returns deterministic findings with evidence traces, confidence bounds, and recommended actions:
{
"document_type": "change_order_variation",
"mode": "fields",
"fields": {
"variation_no": { "value": "VO-004-STRUCTURAL", "confidence": 0.98, "page": 1 },
"project_name": { "value": "Tower B Commercial Fitout", "confidence": 0.97, "page": 1 },
"claimed_ex_gst": { "value": 34820.00, "confidence": 0.98, "page": 1 },
"claimed_eot_days": { "value": 5.0, "confidence": 0.94, "page": 1 },
"reason_for_variation": { "value": "Latent rock encountered during piling at gridline D4", "confidence": 0.95, "page": 1 }
},
"tables": [
{
"page": 1,
"source": "native_pdf",
"rows": 3,
"header": ["Trade / Resource", "Hours / Qty", "Contract SOR Rate", "Claimed Rate", "Total Claimed"],
"json": [
{ "Trade / Resource": "Piling Rig Operator (Day)", "Hours / Qty": "24 hrs", "Contract SOR Rate": "$180.00", "Claimed Rate": "$180.00", "Total Claimed": "$4,320.00" },
{ "Trade / Resource": "Excavator 30T Wet Hire", "Hours / Qty": "3 days", "Contract SOR Rate": "$2,200.00", "Claimed Rate": "$2,200.00", "Total Claimed": "$6,600.00" },
{ "Trade / Resource": "Rock Breaker Attachment", "Hours / Qty": "3 days", "Contract SOR Rate": "$1,100.00", "Claimed Rate": "$1,100.00", "Total Claimed": "$3,300.00" }
]
}
]
}AI agent prompt & MCP tool usage
When configuring autonomous agents (Claude Desktop, Cursor, Hermes), use this verified prompt pattern:
You are a Commercial Project Reviewer.
When a contractor submits a Variation Claim PDF:
1. Call extract_fields(options="tables,grounding", fields=["variation_no", "claimed_ex_gst", "claimed_eot_days", "clause_ref"])
2. Extract the itemised trade hours and material invoices from the schedule table.
3. Compare the labor rates against contractual Schedule of Rates (SOR).
4. Flag any non-standard overhead markups exceeding 10%.Input parameters & headers
| Field | Type | Required | Description |
|---|---|---|---|
| file | file (multipart) | Required | Variation claim notice, change order PDF, or superintendent determination. |
| options | string | Optional | Set to "tables,grounding" to extract the resource breakdown schedule. |
| fields | array / json string | Optional | Specific fields to target (e.g. EOT days, clause references, contractor details). |
Diagnostic signals & failed checks
Each check reports exactly what it tested and what evidence it found. High severity signals trigger an escalated risk band:
Subcontractor markup percentage exceeds the head contract maximum allowable ceiling.
Claim fails to cite the specific contractual variation clause relied upon.
Production considerations & edge cases
- Provisional Sum Adjustments: Distinct from variations; provisional sum adjustments are mapped to original contract line items.
Related workflows
Take it to production
The snippets above run against the sandbox with Stp-Sandbox: true — no key, no credits, fixture data. Drop that header and the call is real, which needs a key.
Every key gets a free weekly allowance. Past that, prepaid credit packs cover it, and Errors & limits says what happens when you run out.