semt.003 — Accounting Statement of Holdings
The accounting-side positions statement. Priority on valued amounts: acquisition price (book value), current value (accounting value), unrealised gains, accrued interest — raw material for the fund NAV calculated by the asset servicer.
Purpose and place in the flow
semt.003 is the accounting-optimised statement of holdings. Where semt.002 describes the physical position (sub-accounts), semt.003 describes the valued position:
- BookValAmt — acquisition value (weighted average historical price).
- HldgsAcctgVal — current accounting value (typically mark-to-market).
- UnrealsdGnLossAmt — latent gain / loss (book vs market difference).
- AcrdIntrstAmt — accrued interest for bonds.
It's the pivot of NAV calculations for UCITS, investment funds, mandates. The asset servicer (BNP Paribas Securities Services, State Street, BNY Mellon, J.P. Morgan) issues semt.003 daily to fund managers.
XML structure
- StmtGnlDtls / AcctOwnr / SfkpgAcct — same as semt.001/002.
- BalForAcct (repeating) — per ISIN, but with enriched valuation fields (BookValAmt, HldgsAcctgVal, UnrealsdGnLossAmt).
Key fields
BalForAcct/BookValAmt— cumulative acquisition value.BalForAcct/HldgsAcctgVal— current accounting value (NAV input).BalForAcct/UnrealsdGnLossAmt— HldgsAcctgVal minus BookValAmt diff.BalForAcct/AcrdIntrstAmt— accrued interest (bonds, dividend-paying depositary receipts).
XML example
BNP Paribas accounting statement on 31 May 2026 for OAT 2032. Average purchase price 95 (BookVal 4.75M€), current market value 96 (HldgsAcctgVal 4.8M€), thus +50k€ latent gain, plus 10k€ accrued interest:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:semt.003.001.11">
<AcctgStmtOfHldgs>
<Id>ACC-20260531-BNPP-001</Id>
<StmtGnlDtls>
<StmtDtTm><Dt>2026-05-31</Dt></StmtDtTm>
<RptNb>5</RptNb>
<StmtUpdTp><Cd>COMP</Cd></StmtUpdTp>
<ActvtyInd>true</ActvtyInd>
</StmtGnlDtls>
<AcctOwnr>
<Id><AnyBIC><AnyBIC>BNPAFRPP</AnyBIC></AnyBIC></Id>
</AcctOwnr>
<SfkpgAcct><Id>BNPPSAFEKEEP-EUR-001</Id></SfkpgAcct>
<BalForAcct>
<FinInstrmId>
<ISIN>FR0014007T87</ISIN>
<Desc>OAT 0,50% 05/2032</Desc>
</FinInstrmId>
<AggtBal>
<FaceAmt Ccy="EUR">5000000.00</FaceAmt>
</AggtBal>
<PricDtls>
<Pric>
<Tp><Yldd>false</Yldd></Tp>
<Val><Amt Ccy="EUR">96.00</Amt></Val>
</Pric>
</PricDtls>
<BookValAmt Ccy="EUR">4750000.00</BookValAmt>
<HldgsAcctgVal Ccy="EUR">4800000.00</HldgsAcctgVal>
<UnrealsdGnLossAmt Ccy="EUR">50000.00</UnrealsdGnLossAmt>
<AcrdIntrstAmt Ccy="EUR">10000.00</AcrdIntrstAmt>
</BalForAcct>
</AcctgStmtOfHldgs>
</Document> BookValAmt = 4750000EUR — weighted average purchase price ((95 × 5M)/100).HldgsAcctgVal = 4800000EUR — market value at T0 ((96 × 5M)/100).UnrealsdGnLossAmt = 50000EUR — latent gain (+1% of nominal).AcrdIntrstAmt = 10000EUR — accrued interest.
Common pitfalls
- Late valuation — for D+1 NAV, semt.003 must be delivered by 6pm on D. Beyond, NAV is late and triggers contractual penalties.
- Inconsistent BookVal — for multi-purchase positions, BookVal must be Weighted Average Cost, not FIFO or LIFO. Check the fund-accounting convention.
- Missing AcrdIntrstAmt — for coupon-bearing bonds, AcrdIntrstAmt mandatory or NAV is wrong. For zero-coupon, set 0 explicitly.
- HldgsAcctgVal vs PricDtls/Pric — both must be consistent (HldgsAcctgVal = Qty × Pric). A discrepancy indicates a pricing engine bug.
- Mixed currency — all valuation values in a single currency (fund base currency). For multi-currency ISINs, convert before issuing.