Rule Summary
Click on any identifier to navigate to its definition.| Global Rules | ln-1 ln-2 ln-3 ln-4 ln-5 ln-10 ln-11 ln-11b ln-12 ln-13 ln-14 ln-15 ln-16 ln-17 ln-18 ln-19 ln-20 ln-21 ln-22 ln-24 ln-25 ln-26 ln-27 ln-28 ln-29 ln-30 ln-31 |
|---|---|
| Properties and Macros | "same scheme is specified in" "same currency is specified in" |
Model Elements
The following model elements and attributes are being referred to in the rules. Click on any element or attribute to show only rules that use them. Click the link below the table to show all rules.All Rules
-----------------------------------------------------------------------------
-- Natural Rule Language File
-- FpML 4.5 Syndicated Loan Rules
--
-- (c)2009 Model Two Zero. Licence terms:
-- http://creativecommons.org/licenses/by-nc-sa/3.0/
--
-- Original rules (c)ISDA. FpML(r) is a trademark of ISDA.
-----------------------------------------------------------------------------
-- Natural Rule Language File
-- FpML 4.5 Syndicated Loan Rules
--
-- (c)2009 Model Two Zero. Licence terms:
-- http://creativecommons.org/licenses/by-nc-sa/3.0/
--
-- Original rules (c)ISDA. FpML(r) is a trademark of ISDA.
-----------------------------------------------------------------------------
Model "schema/fpml-main-4-5.xsd"
Context: LoanContract
Rule "ln-1"
currentInterestRatePeriod.startDate is greater than or equal to effectiveDate
Rule "ln-1"
currentInterestRatePeriod.startDate is greater than or equal to effectiveDate
Context: DrawdownNotice
Rule "ln-2"
If loanContract is present and loanContract.currentInterestRatePeriod.floatingRateIndex =
'PRIME' then loanContract.currentInterestRatePeriod.rateFixingDate is equal to loanContract.effectiveDate
Rule "ln-2"
If loanContract is present and loanContract.currentInterestRatePeriod.floatingRateIndex =
'PRIME' then loanContract.currentInterestRatePeriod.rateFixingDate is equal to loanContract.effectiveDate
Context: InterestRatePeriod
Rule "ln-3"
endDate >= startDate and startDate >= rateFixingDate
Rule "ln-3"
endDate >= startDate and startDate >= rateFixingDate
Context: InterestRatePeriod
Rule "ln-4"
If mandatoryCostRate is not present and the following are present: margin, allInRate
then allInRate = margin + interestRate
Rule "ln-4"
If mandatoryCostRate is not present and the following are present: margin, allInRate
then allInRate = margin + interestRate
Context: InterestRatePeriod
Rule "ln-5"
If the following are present: mandatoryCostRate, margin, allInRate then
allInRate = margin + interestRate + mandatoryCostRate
Rule "ln-5"
If the following are present: mandatoryCostRate, margin, allInRate then
allInRate = margin + interestRate + mandatoryCostRate
Context: FacilityNotice
Rule "ln-10"
If facilitySummary.originalCommitmentAmount is present then in each of
the facilityCommitmentPosition.loanContractPosition elements (if
loanContractSummary.originalAmount is present and the same currency is specified in
FacilityNotice.facilitySummary.originalCommitmentAmount.currency and
loanContractSummary.originalAmount.currency then
FacilityNotice.facilitySummary.originalCommitmentAmount.amount >=
loanContractSummary.originalAmount.amount)
Rule "ln-10"
If facilitySummary.originalCommitmentAmount is present then in each of
the facilityCommitmentPosition.loanContractPosition elements (if
loanContractSummary.originalAmount is present and the same currency is specified in
FacilityNotice.facilitySummary.originalCommitmentAmount.currency and
loanContractSummary.originalAmount.currency then
FacilityNotice.facilitySummary.originalCommitmentAmount.amount >=
loanContractSummary.originalAmount.amount)
Context: FacilityNotice
Rule "ln-11"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
currentAmount.shareAmount.currency and
FacilityNotice.facilityCommitmentPosition.currentAmount.shareAmount.currency then
facilityCommitmentPosition.currentAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.currentAmount.shareAmount.amount
Rule "ln-11"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
currentAmount.shareAmount.currency and
FacilityNotice.facilityCommitmentPosition.currentAmount.shareAmount.currency then
facilityCommitmentPosition.currentAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.currentAmount.shareAmount.amount
Context: LoanContractNotice
Rule "ln-11b"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
currentAmount.shareAmount.currency and
LoanContractNotice.facilityCommitmentPosition.currentAmount.shareAmount.currency then
facilityCommitmentPosition.currentAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.currentAmount.shareAmount.amount
Rule "ln-11b"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
currentAmount.shareAmount.currency and
LoanContractNotice.facilityCommitmentPosition.currentAmount.shareAmount.currency then
facilityCommitmentPosition.currentAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.currentAmount.shareAmount.amount
Context: FacilityNotice
Rule "ln-12"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
priorAmount.shareAmount.currency and
FacilityNotice.facilityCommitmentPosition.priorAmount.shareAmount.currency then
facilityCommitmentPosition.priorAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.priorAmount.shareAmount.amount
Rule "ln-12"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
priorAmount.shareAmount.currency and
FacilityNotice.facilityCommitmentPosition.priorAmount.shareAmount.currency then
facilityCommitmentPosition.priorAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.priorAmount.shareAmount.amount
Context: LoanContractNotice
Rule "ln-13"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
priorAmount.shareAmount.currency and
LoanContractNotice.facilityCommitmentPosition.priorAmount.shareAmount.currency then
facilityCommitmentPosition.priorAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.priorAmount.shareAmount.amount
Rule "ln-13"
If facilityCommitmentPosition.loanContractPosition is present and in each
facilityCommitmentPosition.loanContractPosition the same currency is specified in
priorAmount.shareAmount.currency and
LoanContractNotice.facilityCommitmentPosition.priorAmount.shareAmount.currency then
facilityCommitmentPosition.priorAmount.shareAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.priorAmount.shareAmount.amount
Context: DrawdownNotice
Rule "ln-14"
If loanContract is present then drawdownPayment.paymentDate is greater than or equal to
loanContract.effectiveDate
Rule "ln-14"
If loanContract is present then drawdownPayment.paymentDate is greater than or equal to
loanContract.effectiveDate
Context: DrawdownNotice
Rule "ln-15"
If dealSummary.creditAgreementDate is present then loanContract.effectiveDate
is greater than or equal to dealSummary.creditAgreementDate and
drawdownPayment.paymentDate is greater than or equal to dealSummary.creditAgreementDate
Rule "ln-15"
If dealSummary.creditAgreementDate is present then loanContract.effectiveDate
is greater than or equal to dealSummary.creditAgreementDate and
drawdownPayment.paymentDate is greater than or equal to dealSummary.creditAgreementDate
Context: DrawdownNotice
Rule "ln-16"
If facilityCommitmentPosition.priorAmount.shareAmount is present and
the same currency is specified in facilityCommitmentPosition.priorAmount.shareAmount.currency and
drawdownPayment.shareLoanContractAmount.currency then
drawdownPayment.shareLoanContractAmount.amount <=
facilityCommitmentPosition.priorAmount.shareAmount.amount
Rule "ln-16"
If facilityCommitmentPosition.priorAmount.shareAmount is present and
the same currency is specified in facilityCommitmentPosition.priorAmount.shareAmount.currency and
drawdownPayment.shareLoanContractAmount.currency then
drawdownPayment.shareLoanContractAmount.amount <=
facilityCommitmentPosition.priorAmount.shareAmount.amount
Context: DrawdownNotice
Rule "ln-17"
If a loanContract is present and the same currency is specified in
loanContract.amount.currency and drawdownPayment.shareLoanContractAmount.currency then
loanContract.amount.amount >= drawdownPayment.shareLoanContractAmount.amount
Rule "ln-17"
If a loanContract is present and the same currency is specified in
loanContract.amount.currency and drawdownPayment.shareLoanContractAmount.currency then
loanContract.amount.amount >= drawdownPayment.shareLoanContractAmount.amount
Context: DrawdownNotice
Rule "ln-18"
If a loanContractSummary is present and the same currency is specified in
loanContractSummary.originalAmount.currency and drawdownPayment.shareLoanContractAmount.currency then
loanContractSummary.originalAmount.amount >= drawdownPayment.shareLoanContractAmount.amount
Rule "ln-18"
If a loanContractSummary is present and the same currency is specified in
loanContractSummary.originalAmount.currency and drawdownPayment.shareLoanContractAmount.currency then
loanContractSummary.originalAmount.amount >= drawdownPayment.shareLoanContractAmount.amount
Context: DrawdownNotice
Rule "ln-19"
If drawdownEventType = DrawdownEventTypeEnum.RateSetEvent and a loanContract is present then
the following are present: loanContract.currentInterestRatePeriod.interestRate,
loanContract.currentInterestRatePeriod.margin, loanContract.currentInterestRatePeriod.allInRate,
loanContract.currentInterestRatePeriod.interestDayBasis,
loanContract.currentInterestRatePeriod.indexTenor
Rule "ln-19"
If drawdownEventType = DrawdownEventTypeEnum.RateSetEvent and a loanContract is present then
the following are present: loanContract.currentInterestRatePeriod.interestRate,
loanContract.currentInterestRatePeriod.margin, loanContract.currentInterestRatePeriod.allInRate,
loanContract.currentInterestRatePeriod.interestDayBasis,
loanContract.currentInterestRatePeriod.indexTenor
Context: InterestPaymentNotice
Rule "ln-20"
If in each interestAccrualSchedule.interestAccrualPeriod the
same currency is specified in shareInterestAccrualAmount.currency and
InterestPaymentNotice.interestPayment.amount.shareAmount.currency then
interestPayment.amount.shareAmount.amount = the sum of
interestAccrualSchedule.interestAccrualPeriod.shareInterestAccrualAmount.amount
Rule "ln-20"
If in each interestAccrualSchedule.interestAccrualPeriod the
same currency is specified in shareInterestAccrualAmount.currency and
InterestPaymentNotice.interestPayment.amount.shareAmount.currency then
interestPayment.amount.shareAmount.amount = the sum of
interestAccrualSchedule.interestAccrualPeriod.shareInterestAccrualAmount.amount
Context: InterestPaymentNotice
Rule "ln-21"
In each interestAccrualSchedule.interestRatePeriod the
following are present: interestRate, allInRate, indexTenor and in each
interestAccrualSchedule.interestRatePeriod the following are present:
margin, interestDayBasis
Rule "ln-21"
In each interestAccrualSchedule.interestRatePeriod the
following are present: interestRate, allInRate, indexTenor and in each
interestAccrualSchedule.interestRatePeriod the following are present:
margin, interestDayBasis
Context: LoanContractRepayment
Rule "ln-22"
If loanContractSummary.originalAmount is present and the same currency is specified in
loanContractSummary.originalAmount.currency and amount.globalAmount.currency then
loanContractSummary.originalAmount.amount >= amount.globalAmount.amount
Rule "ln-22"
If loanContractSummary.originalAmount is present and the same currency is specified in
loanContractSummary.originalAmount.currency and amount.globalAmount.currency then
loanContractSummary.originalAmount.amount >= amount.globalAmount.amount
Context: RepaymentNotice
Rule "ln-24"
If facilityCommitmentPosition is present and the same currency is specified in
facilityCommitmentPosition.priorAmount.shareAmount.currency and
repayment.facilityRepayment.amount.shareAmount.currency then
facilityCommitmentPosition.priorAmount.shareAmount.amount >=
repayment.facilityRepayment.amount.shareAmount.amount
Rule "ln-24"
If facilityCommitmentPosition is present and the same currency is specified in
facilityCommitmentPosition.priorAmount.shareAmount.currency and
repayment.facilityRepayment.amount.shareAmount.currency then
facilityCommitmentPosition.priorAmount.shareAmount.amount >=
repayment.facilityRepayment.amount.shareAmount.amount
Context: Repayment
Rule "ln-25"
If in each loanContractRepayment the same currency is specified in
amount.shareAmount.currency and Repayment.facilityRepayment.amount.shareAmount.currency then
facilityRepayment.amount.shareAmount.amount >= the sum of
loanContractRepayment.amount.shareAmount.amount
Rule "ln-25"
If in each loanContractRepayment the same currency is specified in
amount.shareAmount.currency and Repayment.facilityRepayment.amount.shareAmount.currency then
facilityRepayment.amount.shareAmount.amount >= the sum of
loanContractRepayment.amount.shareAmount.amount
Context: Repayment
Rule "ln-26"
If in each loanContractRepayment the same currency is specified in
amount.globalAmount.currency and Repayment.facilityRepayment.amount.globalAmount.currency then
facilityRepayment.amount.globalAmount.amount >= the sum of
loanContractRepayment.amount.globalAmount.amount
Rule "ln-26"
If in each loanContractRepayment the same currency is specified in
amount.globalAmount.currency and Repayment.facilityRepayment.amount.globalAmount.currency then
facilityRepayment.amount.globalAmount.amount >= the sum of
loanContractRepayment.amount.globalAmount.amount
Context: OneOffFeeNotice
Rule "ln-27"
If feePayment.feeType = OneOffFeeTypeEnum.BreakageFee then loanContractSummary is present
Rule "ln-27"
If feePayment.feeType = OneOffFeeTypeEnum.BreakageFee then loanContractSummary is present
Context: OneOffFeeNotice
Rule "ln-28"
If feePayment.feeType = OneOffFeeTypeEnum.AssignmentFee then loanContractSummary is not present
Rule "ln-28"
If feePayment.feeType = OneOffFeeTypeEnum.AssignmentFee then loanContractSummary is not present
Context: OneOffFeePayment
Rule "ln-29"
paymentDate is greater than or equal to effectiveDate
Rule "ln-29"
paymentDate is greater than or equal to effectiveDate
Context: FacilityNotice
Rule "ln-30"
If facilityCommitmentPosition.currentAmount.globalAmount is present and
facilityCommitmentPosition.loanContractPosition is present and
in each facilityCommitmentPosition.loanContractPosition (a
currentAmount.globalAmount is present and the same currency is specified in
currentAmount.globalAmount.currency and
FacilityNotice.facilityCommitmentPosition.currentAmount.globalAmount.currency) then
facilityCommitmentPosition.currentAmount.globalAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.currentAmount.globalAmount.amount
Rule "ln-30"
If facilityCommitmentPosition.currentAmount.globalAmount is present and
facilityCommitmentPosition.loanContractPosition is present and
in each facilityCommitmentPosition.loanContractPosition (a
currentAmount.globalAmount is present and the same currency is specified in
currentAmount.globalAmount.currency and
FacilityNotice.facilityCommitmentPosition.currentAmount.globalAmount.currency) then
facilityCommitmentPosition.currentAmount.globalAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.currentAmount.globalAmount.amount
Context: FacilityNotice
Rule "ln-31"
If facilityCommitmentPosition.priorAmount.globalAmount is present and
facilityCommitmentPosition.loanContractPosition is present and
in each facilityCommitmentPosition.loanContractPosition (a
priorAmount.globalAmount is present and the same currency is specified in
priorAmount.globalAmount.currency and
FacilityNotice.facilityCommitmentPosition.priorAmount.globalAmount.currency) then
facilityCommitmentPosition.priorAmount.globalAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.priorAmount.globalAmount.amount
Rule "ln-31"
If facilityCommitmentPosition.priorAmount.globalAmount is present and
facilityCommitmentPosition.loanContractPosition is present and
in each facilityCommitmentPosition.loanContractPosition (a
priorAmount.globalAmount is present and the same currency is specified in
priorAmount.globalAmount.currency and
FacilityNotice.facilityCommitmentPosition.priorAmount.globalAmount.currency) then
facilityCommitmentPosition.priorAmount.globalAmount.amount >= the sum of
facilityCommitmentPosition.loanContractPosition.priorAmount.globalAmount.amount
Context: Currency ("currencyA"), Currency ("currencyB")
Property "same scheme is specified in"
(currencyA.currencyScheme is not present and
currencyB.currencyScheme is not present) or
(currencyA.currencyScheme is present and
currencyB.currencyScheme is present and
currencyA.currencyScheme = currencyB.currencyScheme)
Property "same scheme is specified in"
(currencyA.currencyScheme is not present and
currencyB.currencyScheme is not present) or
(currencyA.currencyScheme is present and
currencyB.currencyScheme is present and
currencyA.currencyScheme = currencyB.currencyScheme)
Context: Currency ("currencyA"), Currency ("currencyB")
Property "same currency is specified in"
(The same scheme is specified in currencyA and currencyB) and
currencyA = currencyB
Property "same currency is specified in"
(The same scheme is specified in currencyA and currencyB) and
currencyA = currencyB