> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getveles.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contract Amendment Line

> Field reference for the Veles Contract Amendment Line object in the Salesforce managed package.

A Veles Contract Amendment Line is **what one amendment did to one contract
line**: the line's terms before and after, and what the change is worth. It is
the contract's revenue-movement record: expansion, contraction and churn,
reported line by line.

Amendment lines are master-detail children of the
[Contract Amendment](https://docs.getveles.com/sfdc-managed-package/objects/contract-amendment.md), with a
lookup to the [Contract Line](https://docs.getveles.com/sfdc-managed-package/objects/contract-line.md) they
changed. That lookup gives every contract line an **Amendment Lines** related
list: its change history.

## Which lines an amendment has

An amendment an order made has one line for every contract line the order
added, changed, removed or kept, so an amendment that changes one line of ten
has ten rows. Imports, activations and cancellations have none, and an
import's amendment stays in Veles (see
[Contract Amendment](https://docs.getveles.com/sfdc-managed-package/objects/contract-amendment.md)).

| Impact Type | Meaning |
| - | - |
| Original | The line came with the order that created the contract (the Initial Contract) |
| Added | A later order added the line |
| Modified | The line's price, quantity, dates or product changed |
| Removed | The order dropped the line. One that had not started reads zero in the New fields; one under way keeps its terms there and ends the day before the amendment, which its New End Date says. Either way the contract line stays, flagged Removed. A later amendment that still leaves the line out reads Removed again, with no payable impact |
| Unchanged | The order amended the contract and left this line as it was. Its Payable Impact is zero |

A removed line keeps its contract line record, flagged Removed, so every row's
Contract Line lookup resolves and a contract line's related list is its whole
history.

## Before, after, and what the change is worth

Each row carries the line's terms twice: the **Prior** fields as they stood
before the amendment, the **New** fields after. Prior fields are zero (dates
empty) on an Original or Added line. New fields are zero on a line removed
before it started; a line removed under way keeps its terms in the New fields,
with New End Date the day before the amendment.
Quantity, Net Unit Price and Net Amount read like the
[Contract Line](https://docs.getveles.com/sfdc-managed-package/objects/contract-line.md)'s: Net Unit Price x
Quantity = Net Amount, annualized.

* **Remaining Value** is what each side's terms are worth from the amendment's
  Effective On date to the end of the line's window: Net Amount x Proration
  Factor, where the factor counts only the days left. On an Original line it
  covers the whole window.
* **Payable Impact** = New Remaining Value - Prior Remaining Value: how much the
  amendment changes what the customer pays for this line. Sum it across an
  amendment's lines for the amendment's own Payable Impact, or across lines by
  Impact Type, product or the amendment's Effective On for expansion and
  contraction reports.
* **Contribution** = Prior Contribution + Payable Impact: what the line is worth
  over its whole window, at its old terms up to each amendment and its new terms
  after. A contract line's Net Amount Prorated is its latest amendment line's
  Contribution. On a contract that came in by import or was entered by hand, the
  first order amendment starts each line's Contribution at what its terms were
  worth over its whole window, so the contract's TCV carries straight across.

Everything payable is computed on **net money**, the way Veles computes what
is payable. A bundle row whose money is Allocated (see
[Contract Line](https://docs.getveles.com/sfdc-managed-package/objects/contract-line.md#the-money-on-a-contract-line))
reads zero net on both sides, so `SUM(Payable Impact)` needs no bundle filter.
Its share before and after is in the **Allocated** fields, so a shadow row that
is Modified because its share moved still shows what moved. Never sum the
Allocated fields: like the contract line's Allocated Amount, they restate value
the net rows carry.

**Usage lines** are billed on actuals, which the contract does not hold, so
nothing about one is payable: its Remaining Values, Payable Impact and
Contribution are zero, and its Net Amount and Allocated Amount fields are empty,
as the contract line's are. Its rates and quantities still record the change,
so a rate change reads Modified with a Payable Impact of zero.

## Fields at a glance

| Field | API Name | Type |
| - | - | - |
| Line Name | `Name` | Text (standard name field) |
| Veles External ID | `Veles__External_Id__c` | Text(255), unique, external ID |
| Amendment | `Veles__Amendment__c` | Master-Detail(Veles Contract Amendment) |
| Contract Line | `Veles__Contract_Line__c` | Lookup(Veles Contract Line) |
| Phase Sequence | `Veles__Phase_Sequence__c` | Number(3, 0) |
| Product | `Veles__Product__c` | Lookup(Product2) |
| Product Name | `Veles__Product_Name__c` | Text(255) |
| Product SKU | `Veles__Product_SKU__c` | Text(255) |
| Impact Type | `Veles__Impact_Type__c` | Picklist |
| Billing Type | `Veles__Billing_Type__c` | Picklist |
| Prior Quantity | `Veles__Prior_Quantity__c` | Number(16, 2) |
| Prior Net Unit Price | `Veles__Prior_Net_Unit_Price__c` | Currency(16, 2) |
| Prior Net Amount | `Veles__Prior_Net_Amount__c` | Currency(16, 2) |
| Prior Allocated Unit Price | `Veles__Prior_Allocated_Unit_Price__c` | Currency(16, 2) |
| Prior Allocated Amount | `Veles__Prior_Allocated_Amount__c` | Currency(16, 2) |
| Prior Start Date | `Veles__Prior_Start_Date__c` | Date |
| Prior End Date | `Veles__Prior_End_Date__c` | Date |
| Prior Proration Factor | `Veles__Prior_Proration_Factor__c` | Percent(7, 4) |
| Prior Remaining Value | `Veles__Prior_Remaining_Value__c` | Currency(16, 2) |
| New Quantity | `Veles__New_Quantity__c` | Number(16, 2) |
| New Net Unit Price | `Veles__New_Net_Unit_Price__c` | Currency(16, 2) |
| New Net Amount | `Veles__New_Net_Amount__c` | Currency(16, 2) |
| New Allocated Unit Price | `Veles__New_Allocated_Unit_Price__c` | Currency(16, 2) |
| New Allocated Amount | `Veles__New_Allocated_Amount__c` | Currency(16, 2) |
| New Start Date | `Veles__New_Start_Date__c` | Date |
| New End Date | `Veles__New_End_Date__c` | Date |
| New Proration Factor | `Veles__New_Proration_Factor__c` | Percent(7, 4) |
| New Remaining Value | `Veles__New_Remaining_Value__c` | Currency(16, 2) |
| Payable Impact | `Veles__Payable_Impact__c` | Currency(16, 2) |
| Prior Contribution | `Veles__Prior_Contribution__c` | Currency(16, 2) |
| Contribution | `Veles__Contribution__c` | Currency(16, 2) |
| Synced At | `Veles__Synced_At__c` | DateTime |

## Field details

**Name** `Text (standard name field)`

**Line Name** — The same text as Product Name, cut at 80 characters.

**Veles\_\_External\_Id\_\_c** `Text(255), unique, external ID`

**Veles External ID** — The Veles contract amendment line ID. All sync writes
upsert on this field; never edit.

**Veles\_\_Amendment\_\_c** `Master-Detail(Veles Contract Amendment)`

**Amendment** — The Veles contract amendment this line belongs to.
Master-detail: an amendment's lines are everything it did, one row per
contract line.

**Veles\_\_Contract\_Line\_\_c** `Lookup(Veles Contract Line)`

**Contract Line** — The contract line the amendment changed; its **Amendment
Lines** related list is that line's change history. A removed line keeps its
record, flagged Removed, so the lookup always resolves.

**Veles\_\_Phase\_Sequence\_\_c** `Number(3, 0)`

**Phase Sequence** — The 1-based sequence of the phase the contract line
sits in, denormalized from the line so amendment reports filter and group by
phase without joins.

**Veles\_\_Product\_\_c** `Lookup(Product2)`

**Product** — The Salesforce Product2 record matching the contract line's
Veles product, when the mapping is known. Enables native "change by product
family" joins. May be empty — Product Name and Product SKU are always
populated as text so reports never break on a missing lookup.

**Veles\_\_Product\_Name\_\_c** `Text(255)`

**Product Name** — The contract line's name, the same text as its Product
Name. Stored as text so reports never depend on the Product lookup resolving.

**Veles\_\_Product\_SKU\_\_c** `Text(255)`

**Product SKU** — The contract line's product SKU. Stored as text for the same
reason as Product Name.

**Veles\_\_Impact\_Type\_\_c** `Picklist`

**Impact Type** — What the amendment did to the line. Unrestricted so new
Veles impact types never break the sync.

Values: `Original` (the line came with the order that created the contract),
`Added` (a later order added it), `Modified` (its price, quantity, dates or
product changed), `Removed` (the order dropped it: one under way ends the day
before the amendment and keeps its terms in the New fields, one that had not
started reads zero there, and a later amendment that still leaves it out reads
Removed again), `Unchanged` (an order amended the contract and left the line
as it was).

**Veles\_\_Billing\_Type\_\_c** `Picklist`

**Billing Type** — How the line's charge behaves. Unrestricted so new Veles
billing types never break the sync.

Values: `Recurring` (repeats every billing period), `One-Time` (billed once),
`Usage` (transactional/consumption-based, billed on actuals). Usage is billed
on actuals, which the contract does not hold, so a usage line's Remaining
Values, Payable Impact and Contribution are zero; its rates and quantities
still record the change.

**Veles\_\_Prior\_Quantity\_\_c** `Number(16, 2)`

**Prior Quantity** — The units the line's rate was priced over before the
amendment: its own quantity times the bundles it rode in, so Prior Net Unit
Price x Prior Quantity is Prior Net Amount. Zero on an Original or Added line.

**Veles\_\_Prior\_Net\_Unit\_Price\_\_c** `Currency(16, 2)`

**Prior Net Unit Price** — The line's per-unit price before the amendment,
after all discounts. Zero on an Original or Added line, and on a row whose
money is Allocated.

**Veles\_\_Prior\_Net\_Amount\_\_c** `Currency(16, 2)`

**Prior Net Amount** — The line's extended net amount before the amendment,
annualized/full-term: Prior Net Unit Price x Prior Quantity. Zero on an
Original or Added line. Empty on a usage line.

**Veles\_\_Prior\_Allocated\_Unit\_Price\_\_c** `Currency(16, 2)`

**Prior Allocated Unit Price** — The amount the bundle's pricing mode
allocated to one unit of this line before the amendment: a bundle shadow
row's share, zero on every other row. Prior Net Unit Price + Prior Allocated
Unit Price is the line's display unit price before the amendment. Zero on an
Original or Added line.

**Veles\_\_Prior\_Allocated\_Amount\_\_c** `Currency(16, 2)`

**Prior Allocated Amount** — The value allocated onto this row before the
amendment, annualized/full-term: Prior Allocated Unit Price x Prior Quantity.
At most one of Prior Net Amount and Prior Allocated Amount is non-zero on any
row. Zero on an Original or Added line. Empty on a usage line. A derived
value, like the contract line's Allocated Amount: never sum it. Payable Impact
carries the row's payable change on net.

**Veles\_\_Prior\_Start\_Date\_\_c** `Date`

**Prior Start Date** — The first day of the line's effective window before
the amendment. Empty on an Original or Added line.

**Veles\_\_Prior\_End\_Date\_\_c** `Date`

**Prior End Date** — The last day of the line's effective window before the
amendment. Empty on an Original or Added line.

**Veles\_\_Prior\_Proration\_Factor\_\_c** `Percent(7, 4)`

**Prior Proration Factor** — How much of Prior Net Amount falls between the
amendment's Effective On date and the end of the line's window before the
amendment (day-based), computed by Veles and synced. A one-time line's is 100%
until its window has passed.

**Veles\_\_Prior\_Remaining\_Value\_\_c** `Currency(16, 2)`

**Prior Remaining Value** — What the line's old terms were worth from the
amendment's Effective On date to the end of their window: Prior Net Amount x
Prior Proration Factor. Zero on a usage line.

**Veles\_\_New\_Quantity\_\_c** `Number(16, 2)`

**New Quantity** — The units the line's rate is priced over after the
amendment: its own quantity times the bundles it rides in, so New Net Unit
Price x New Quantity is New Net Amount. Zero on a Removed line that had not
started; one removed under way keeps its terms here until its New End Date.

**Veles\_\_New\_Net\_Unit\_Price\_\_c** `Currency(16, 2)`

**New Net Unit Price** — The line's per-unit price after the amendment, after
all discounts. Zero on a Removed line that had not started, and on a row whose
money is Allocated.

**Veles\_\_New\_Net\_Amount\_\_c** `Currency(16, 2)`

**New Net Amount** — The line's extended net amount after the amendment,
annualized/full-term: New Net Unit Price x New Quantity. Zero on a Removed
line that had not started. Empty on a usage line.

**Veles\_\_New\_Allocated\_Unit\_Price\_\_c** `Currency(16, 2)`

**New Allocated Unit Price** — The amount the bundle's pricing mode
allocates to one unit of this line after the amendment: a bundle shadow row's
share, zero on every other row. New Net Unit Price + New Allocated Unit Price
is the line's display unit price after the amendment. Zero on a Removed line
that had not started.

**Veles\_\_New\_Allocated\_Amount\_\_c** `Currency(16, 2)`

**New Allocated Amount** — The value allocated onto this row after the
amendment, annualized/full-term: New Allocated Unit Price x New Quantity. At
most one of New Net Amount and New Allocated Amount is non-zero on any row.
Zero on a Removed line that had not started. Empty on a usage line. A derived
value, like the contract line's Allocated Amount: never sum it. Payable Impact
carries the row's payable change on net.

**Veles\_\_New\_Start\_Date\_\_c** `Date`

**New Start Date** — The first day of the line's effective window after the
amendment. Empty on a Removed line that had not started.

**Veles\_\_New\_End\_Date\_\_c** `Date`

**New End Date** — The last day of the line's effective window after the
amendment. Empty on a Removed line that had not started; the day before the
amendment on one removed under way.

**Veles\_\_New\_Proration\_Factor\_\_c** `Percent(7, 4)`

**New Proration Factor** — How much of New Net Amount falls between the
amendment's Effective On date and the end of the line's window (day-based),
computed by Veles and synced. On an Original line, its whole window. A
one-time line's is 100% until its window has passed.

**Veles\_\_New\_Remaining\_Value\_\_c** `Currency(16, 2)`

**New Remaining Value** — What the line's new terms are worth from the
amendment's Effective On date to the end of their window: New Net Amount x New
Proration Factor. On an Original line, its whole window. Zero on a usage line.

**Veles\_\_Payable\_Impact\_\_c** `Currency(16, 2)`

**Payable Impact** — New Remaining Value - Prior Remaining Value: how much the
amendment changes what the customer pays for this line from the amendment's
Effective On date on. Positive when the customer pays more; zero on an
Unchanged line and on a usage line. Sums to the amendment's Payable Impact.

**Veles\_\_Prior\_Contribution\_\_c** `Currency(16, 2)`

**Prior Contribution** — The line's Contribution as of the contract's
previous amendment. Zero on an Original or Added line. A line an import or a
hand-entered contract brought in has no amendment line before its first order
amendment, which starts it at what its terms were worth over its whole window.

**Veles\_\_Contribution\_\_c** `Currency(16, 2)`

**Contribution** — Prior Contribution + Payable Impact: what the line is
worth over its whole window, at its old terms up to each amendment and its new
terms after. The contract line's Net Amount Prorated is its latest amendment
line's Contribution.

**Veles\_\_Synced\_At\_\_c** `DateTime`

**Synced At** — When the Veles sync last wrote this record. The contract
mirror updates whenever the contract changes in Veles: created by an executed
order, activated, amended or cancelled.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.