API Docs / Schemas / ProposalCostRow

ProposalCostRow

A single line of the proposal costs table: a package, a standalone service, or a setup fee.

Properties

Name Type Description
namestring

Display name including any " (setup fee)" suffix. The pricing tier suffix and the
per-unit breakdown (quantity × rate) are not part of the name — the content block
composes them from PricingTierName and UnitQuantityDisplay/UnitRate/UnitLabel, so
practices can drop either by editing the block.

Display name including any " (setup fee)" suffix. The pricing tier suffix and the
per-unit breakdown (quantity × rate) are not part of the name — the content block
composes them from PricingTierName and UnitQuantityDisplay/UnitRate/UnitLabel, so
practices can drop either by editing the block.

pricingTierNamestring

The name of the client's pricing tier for tiered services, rendered as a
" (TierName)" suffix by the content block. Null when the service has no tier.

The name of the client's pricing tier for tiered services, rendered as a
" (TierName)" suffix by the content block. Null when the service has no tier.

amountnumber

The amount charged per billing period, excluding VAT (rate × quantity for per-unit
services). Zero for open-ended per-unit rows.

The amount charged per billing period, excluding VAT (rate × quantity for per-unit
services). Zero for open-ended per-unit rows.

showPriceAsNaboolean

True when the price cell should render "N/A" — a fixed-basis standalone service with
no price.

True when the price cell should render "N/A" — a fixed-basis standalone service with
no price.

isOpenEndedboolean

True for per-unit services with an unknown quantity: the price cell shows the rate and
unit label, the VAT and Total cells stay empty, and the row contributes nothing to totals.

True for per-unit services with an unknown quantity: the price cell shows the rate and
unit label, the VAT and Total cells stay empty, and the row contributes nothing to totals.

unitQuantityDisplaystring

The per-period quantity as displayed (trailing zeros trimmed, e.g. "12" or "2.5").
Null for fixed-basis rows and open-ended rows — when set, the name gains a
"— {qty} × {rate} {label}" breakdown.

The per-period quantity as displayed (trailing zeros trimmed, e.g. "12" or "2.5").
Null for fixed-basis rows and open-ended rows — when set, the name gains a
"— {qty} × {rate} {label}" breakdown.

unitRatenumber

The effective rate per unit for non-fixed pricing bases.

The effective rate per unit for non-fixed pricing bases.

unitLabelstring

Unit label for non-fixed pricing bases: "per hour", "per day" or "per {unit name}".
Empty for fixed-basis rows.

Unit label for non-fixed pricing bases: "per hour", "per day" or "per {unit name}".
Empty for fixed-basis rows.

isEstimatedboolean

True when the billed quantity is expected to vary per period — the unit breakdown is
suffixed with "(estimated)". Only set when a quantity is known.

True when the billed quantity is expected to vary per period — the unit breakdown is
suffixed with "(estimated)". Only set when a quantity is known.

vatAmountnumber

VAT on the row amount. Packages use the highest rate among their member services.

VAT on the row amount. Packages use the highest rate among their member services.

lineTotalnumber

Amount + VatAmount.

Amount + VatAmount.

JSON Example

{
  "name": "string",
  "pricingTierName": "string",
  "amount": 0,
  "showPriceAsNa": false,
  "isOpenEnded": false
}

Contained in Schemas