Late Delivery and Penalty (with Optional)

Author: Accord Project

latedeliveryandpenalty-optional@0.1.0 Contract ^0.21.0 2b276a52fe2aab4e6953b4db79a438b23722bf0fd2d2a32e3a1effe173c6223b

A sample Late Delivery And Penalty clause.

Download Archive Download Compiled Archive Open in Template Studio Open in VSCode Web

Late Delivery And Penalty

A sample Late Delivery And Penalty clause.

Template Text

Late Delivery and Penalty.

In case of delayed delivery except for Force Majeure cases in a 100 miles radius, "Dan" (the Seller) shall pay to "Steve" (the Buyer) for every 2 days of delay penalty amounting to 10.5% of the total value of the Equipment whose delivery has been delayed. Any fractional part of a days is to be considered a full days. The total amount of penalty shall not however, exceed 55% of the total value of the Equipment involved in late delivery. If the delay is more than 15 days, the Buyer is entitled to terminate this Contract.

## Late Delivery and Penalty.

In case of delayed delivery except for Force Majeure cases in a 100 miles radius,
"Dan" (the Seller) shall pay to "Steve" (the Buyer) for every 2 days
of delay penalty amounting to 10.5% of the total value of the Equipment
whose delivery has been delayed. Any fractional part of a days is to be
considered a full days. The total amount of penalty shall not however,
exceed 55% of the total value of the Equipment involved in late delivery.
If the delay is more than 15 days, the Buyer is entitled to terminate this Contract.
## Late Delivery and Penalty.

In case of delayed delivery{{#optional forceMajeure}} except for Force Majeure cases in a {{miles}} miles radius,{{/optional}}
{{seller}} (the Seller) shall pay to {{buyer}} (the Buyer) for every {{penaltyDuration}}
of delay penalty amounting to {{penaltyPercentage}}% of the total value of the Equipment
whose delivery has been delayed. Any fractional part of a {{fractionalPart}} is to be
considered a full {{fractionalPart}}. The total amount of penalty shall not however,
exceed {{capPercentage}}% of the total value of the Equipment involved in late delivery.
If the delay is more than {{termination}}, the Buyer is entitled to terminate this Contract.
{
    "$class": "org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyContract",
    "buyer": {
        "$class": "org.accordproject.cicero.contract.AccordParty",
        "partyId": "Steve"
    },
    "seller": {
        "$class": "org.accordproject.cicero.contract.AccordParty",
        "partyId": "Dan"
    },
    "forceMajeure": {
        "$class": "org.accordproject.latedeliveryandpenalty.Distance",
        "miles": 100
    },
    "penaltyDuration": {
        "$class": "org.accordproject.time.Duration",
        "amount": 2,
        "unit": "days"
    },
    "penaltyPercentage": 10.5,
    "capPercentage": 55,
    "termination": {
        "$class": "org.accordproject.time.Duration",
        "amount": 15,
        "unit": "days"
    },
    "fractionalPart": "days",
    "contractId": "6fc765ad-fe59-44f5-a9b9-2811d01d661b"
}

Template Model

namespace org.accordproject.latedeliveryandpenalty

import org.accordproject.cicero.contract.* from https://models.accordproject.org/cicero/contract.cto
import org.accordproject.cicero.runtime.* from https://models.accordproject.org/cicero/runtime.cto
import org.accordproject.time.* from https://models.accordproject.org/v2.0/time.cto

concept Distance{
  o Double miles
}

/**
 * Defines the data model for the LateDeliveryAndPenalty template.
 * This defines the structure of the abstract syntax tree that the parser for the template
 * must generate from input source text.
 */
asset LateDeliveryAndPenaltyContract extends AccordContract {
  /**
   * The buyer
   */
  o AccordParty buyer

  /**
   * The seller
   */
  o AccordParty seller

  /**
   * Does the clause include a force majeure provision?
   */
  o Distance forceMajeure optional

  /**
   * For every penaltyDuration that the goods are late
   */
  o Duration penaltyDuration

  /**
   * Seller pays the buyer penaltyPercentage % of the value of the goods
   */
  o Double penaltyPercentage

  /**
   * Up to capPercentage % of the value of the goods
   */
  o Double capPercentage

  /**
   * If the goods are >= termination late then the buyer may terminate the contract
   */
  o Duration termination

  /**
   * Fractional part of a ... is considered a whole ...
   */
  o TemporalUnit fractionalPart
}

/**
 * Defines the input data required by the template
 */
transaction LateDeliveryAndPenaltyRequest extends Request {

  /**
   * Are we in a force majeure situation? 
   */
  o Distance forceMajeure optional

  /**
   * What was the agreed delivery date for the goods?
   */
  o DateTime agreedDelivery

  /**
   * If the goods have been delivered, when where they delivered?
   */
  o DateTime deliveredAt optional

  /**
   * What is the value of the goods?
   */
  o Double goodsValue
}

/**
 * Defines the output data for the template
 */
transaction LateDeliveryAndPenaltyResponse extends Response {
  /**
   * The penalty to be paid by the seller
   */
  o Double penalty

  /**
   * Whether the buyer may terminate the contract 
   */
  o Boolean buyerMayTerminate
}

Model Dependencies

Template Logic

Find the full logic for this template on on GitHub.

State Types

Type Sample JSON
org.accordproject.cicero.contract.AccordContractState
{
    "$class": "org.accordproject.cicero.contract.AccordContractState",
    "stateId": "7b112bd1-cd1d-11ea-920c-ade26666d144"
}

Request Types

Type Sample JSON
org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyRequest
{
    "$class": "org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyRequest",
    "forceMajeure": {
        "$class": "org.accordproject.latedeliveryandpenalty.Distance",
        "miles": 142.693
    },
    "agreedDelivery": "2020-07-23T15:48:29.068-04:00",
    "deliveredAt": "2020-07-23T15:48:29.068-04:00",
    "goodsValue": 21.506,
    "transactionId": "7b1104c0-cd1d-11ea-920c-ade26666d144",
    "timestamp": "2020-07-23T15:48:29.068-04:00"
}

Response Types

Type Sample JSON
org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyResponse
{
    "$class": "org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyResponse",
    "penalty": 39.307,
    "buyerMayTerminate": true,
    "transactionId": "7b112bd0-cd1d-11ea-920c-ade26666d144",
    "timestamp": "2020-07-23T15:48:29.069-04:00"
}

Events Types

Type Sample JSON
org.accordproject.cicero.runtime.PaymentObligation
{
    "$class": "org.accordproject.cicero.runtime.PaymentObligation",
    "amount": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 198.099,
        "currencyCode": "ERN"
    },
    "description": "Enim.",
    "contract": "resource:org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyContract#8674",
    "promisor": "resource:org.accordproject.cicero.contract.AccordParty#6549",
    "promisee": "resource:org.accordproject.cicero.contract.AccordParty#0737",
    "deadline": "2020-07-23T15:48:29.070-04:00",
    "eventId": "7b1152e0-cd1d-11ea-920c-ade26666d144",
    "timestamp": "2020-07-23T15:48:29.070-04:00"
}

Technical Integration

Please refer to the Cicero documentation for details and examples of how to integrate a call to a Cicero template into your application.

View the Latest code for this template on GitHub.