Trimline is in private beta. Public launch: June 2027.Join the waitlist →
Docs / Resources

Savings

Confirmed savings, how they were calculated, and the fee that applies.

Beta. The Trimline API is available to private beta customers. Endpoints may change before general availability in June 2027, and every breaking change is announced in the changelog. Request access.

A savings record is created when a renewal closes on better terms than the vendor proposed. It shows how the savings were calculated and what fee applies, using the rules on our pricing page. We never invoice from an estimate: a record has to be confirmed against the vendor’s first invoice at the new price.

Endpoints

The savings object

{
  "id": "sav_2Zb6Kp",
  "object": "savings",
  "renewal": "ren_1Pq8sT2v",
  "vendor": { "id": "ven_9xKd02", "name": "Acme CRM" },
  "status": "confirmed",
  "baseline": {
    "annual_value": { "amount": 3840000, "currency": "usd" },
    "source": "renewal_notice",
    "document": "doc_77Qe"
  },
  "new_annual_value": { "amount": 2995000, "currency": "usd" },
  "first_year_savings": { "amount": 845000, "currency": "usd" },
  "components": [
    { "lever": "seats", "amount": { "amount": 768000, "currency": "usd" }, "note": "40 → 32 seats" },
    { "lever": "price", "amount": { "amount": 77000, "currency": "usd" }, "note": "Per-seat rate reduced" }
  ],
  "fee_rate": 0.25,
  "fee": { "amount": 211250, "currency": "usd" },
  "confirmed_at": "2027-02-04T09:12:00Z",
  "invoice": "inv_8Jd3",
  "livemode": false
}
statusenumestimated (terms agreed, first invoice not yet received), confirmed, invoiced, disputed or void.
baselineobjectThe price we measured against and the document that proves it, such as a renewal notice, quote or current contract.
componentsarrayThe breakdown by lever. The amounts always add up to first_year_savings.

List savings

GET/v1/savings

Filter by status, vendor or confirmed_at[gte].

Summary

GET/v1/savings/summary

Totals for a date range, handy for a board deck or an FP&A sync.

curl -G https://api.trimline.tech/v1/savings/summary \
  -H "Authorization: Bearer $TRIMLINE_API_KEY" \
  -d "from=2027-01-01" -d "to=2027-03-31"
{
  "object": "savings_summary",
  "from": "2027-01-01",
  "to": "2027-03-31",
  "renewals_closed": 7,
  "first_year_savings": { "amount": 2114000, "currency": "usd" },
  "fees": { "amount": 528500, "currency": "usd" },
  "net_savings": { "amount": 1585500, "currency": "usd" },
  "by_lever": { "seats": 1012000, "price": 640000, "uplift": 312000, "term": 150000 }
}

Dispute a calculation

POST/v1/savings/:id/dispute

If you think a baseline or saving is wrong, dispute it with a short reason. The record moves to disputed, no invoice goes out, and a person on our team replies within two business days.

Something unclear or missing? Email developers@trimline.tech.