Skip to content

Premium and receipts: data model

The entities, fields, enumerated values and relationships. The endpoints over them are in Premium and receipts: API, and the terms used throughout are defined in Insurance concepts.

Receipt records one financial event, in either direction. A premium coming in and a settlement going out are the same entity with a different receiptType. PremiumBordereau is the periodic premium report an insurer sends its reinsurer.

erDiagram
    RECEIPT {
        enum receiptType
        date receiptDate
        int paymentAmount
        enum receiptCalculation "pro rata or flat"
        enum premiumPaymentMethod
    }
    PREMIUM_BORDEREAU {
        string treatyReference
        string policyholder
        string policyNumber "cedant"
        datetime inceptionDate
        datetime expiryDate
        int indemnityLimitPolicy
        int grossWrittenPremium
        int netPremium "net of brokerage"
        enum transactionType "receiptType ref"
    }
    RECEIPT_TYPE {
        int code "0-6"
        string description
    }
    RECEIPT_CALCULATION {
        int code "0-1"
        string description "pro rata or flat"
    }

    RECEIPT ||--|| RECEIPT_TYPE : "of type"
    RECEIPT ||--|| RECEIPT_CALCULATION : "calculated as"
    PREMIUM_BORDEREAU ||--|| RECEIPT_TYPE : "transaction"
EntityFieldTypeWhat it means
ReceiptreceiptTypeenum (receiptType)What this money is for. New policy, renewal, mid-term adjustment, claim payment, brokerage, profit share, or other. This is the only thing distinguishing money in from money out
ReceiptreceiptDateDateWhen the money moved
ReceiptpaymentAmountNumber/integerHow much
ReceiptreceiptCalculationenum (receiptCalculation)How the amount was worked out. Pro rata means proportioned to the time actually covered, which is what a mid-term cancellation produces. Flat means the whole amount regardless
ReceiptpremiumPaymentMethodenum (paymentMethod)Cash, card, cheque, transfer or crypto
PremiumBordereautreatyReferenceTextWhich reinsurance treaty the premium is ceded under
PremiumBordereaupolicyNumberTextThe ceding insurer’s policy number
PremiumBordereaugrossWrittenPremiumNumber/integerPremium before brokerage and tax
PremiumBordereaunetPremiumNumber/integerPremium after brokerage. The reinsurer sees both, because it pays commission against one and carries risk against the other
PremiumBordereautransactionTypeenum (receiptType)What produced the entry: new business, renewal or mid-term adjustment

A receipt has no foreign key to what it settles. No policy reference and no claim reference sit on the entity. Reconciliation runs through the collection filters instead: /receipt accepts policyNumber and claimNumber, and policyNumber is globally unique across every coverage type, which is what makes the lookup deterministic. A receipt is found by the obligation it settles rather than by a field it carries. See Scope and design.

A receipt is immutable. It is not edited after it is recorded. A refund is a second receipt that reverses the first, under a reversing receiptType.

There is no direct-insurance premium ledger. PremiumBordereau and Claims both report to reinsurers. Nothing reconciles premium accrued, collected and remitted at the direct level, so that ledger is yours to build.

Commission ledgers, partner payout schedules and channel revenue splits are out of scope by design. They sit above the standard in whatever platform you build.