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.
Model Elements C Currency D DayCountFraction DrawdownEventTypeEnum DrawdownNotice F FacilityCommitmentPosition FacilityNotice FloatingRateIndex I InterestAccrualPeriod InterestPaymentNotice InterestRatePeriod Interval L LoanContract LoanContractNotice LoanContractPosition LoanContractRepayment LoanContractSummary M Money O OneOffFeeNotice OneOffFeePayment OneOffFeeTypeEnum P PositiveDecimal R Repayment RepaymentNotice a anyURI d date decimal
Attributes A AssignmentFee B BreakageFee R RateSetEvent a allInRate amount c creditAgreementDate currency currencyScheme currentAmount currentInterestRatePeriod d dealSummary drawdownEventType drawdownPayment e effectiveDate endDate f facilityCommitmentPosition facilityRepayment facilitySummary feePayment feeType floatingRateIndex g globalAmount i indexTenor interestAccrualPeriod interestAccrualSchedule interestDayBasis interestPayment interestRate interestRatePeriod l loanContract loanContractPosition loanContractRepayment loanContractSummary m mandatoryCostRate margin o originalAmount originalCommitmentAmount p paymentDate priorAmount r rateFixingDate repayment s shareAmount shareInterestAccrualAmount shareLoanContractAmount startDate

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.
-----------------------------------------------------------------------------

Model "schema/fpml-main-4-5.xsd"
Context: LoanContract
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
Context: InterestRatePeriod
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
Context: InterestRatePeriod
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)
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
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
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
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
Context: DrawdownNotice
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
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
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
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
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
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
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
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
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
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
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
Context: OneOffFeeNotice
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
Context: OneOffFeePayment
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
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
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)

Context: Currency ("currencyA"), Currency ("currencyB")
Property "same currency is specified in"
(The same scheme is specified in currencyA and currencyB) and
currencyA = currencyB