Skip to content

Work zone ​

Overview, deals, data room, Q&A, graph, diligence, issuers, instruments, portfolio.

WORK ​

WORK is the desk: the deal you are on, the documents in it, and the issuers and bonds around it.

Overview ​

Route/workspace/overview
SidebarOverview
Default forAdministrator. Securities edition also treats this as a morning desk.

Purpose. A morning snapshot of the edition you selected: a few market or portfolio numbers, a short list of decisions, a news-style feed, and the deals or facilities you should open next.

What it does. The heading is always Vue d’ensemble. The detail line is Lecture du mandat en cours : marchés, points d’attention, pipeline et échéances. The eyebrow includes the edition name and a fixed session stamp, Lundi 05 octobre 2026 · 08:30 GMT+1.

Two buttons:

  • Synthèse du matin opens the copilot with that edition’s morning prompt (for securities: the three critical points that need attention this morning).
  • A primary action that depends on the edition (Nouveau dossier, Analyse financière, Instruments, Courbes souveraines, Revue réglementaire, Exposition agrégée, …).

The body is four blocks. Metric tiles and decision rows navigate to another section. The work list, for the securities and treasury editions, is the live project list (borrower, deal_code, country, status, and an amount in billions of FCFA). Clicking a live row selects that project and opens the data room. Other editions use hardcoded work items. The side list (auctions, watchlist, coverage) is not clickable.

The edition copy is selected by overviewForEdition. Unknown editions fall through to the securities desk (Bourse & DCM).

Edition labelQuestion on the pagePrimary button
Bourse & DCMShould we structure, price, or join this transaction?New dossier
Banque & RisquesWho is becoming risky, and how early, before a covenant breaks?Financials
Gestion d’actifsWhat should we hold, at what risk and price?Portfolio
Développement & PPPShould we finance this project, sponsor, or country?New dossier
Dette souveraineHow do we fund the debt, and how far out is refinancing risk visible?Sovereign curves
Juridique & règlesIs this deal legally and regulatorily ready?Regulatory
Groupe financierWhat is group exposure, within what each wall allows?Risk register
TrésorerieWhich maturities and which covenant headroom are still manageable?Financials

Data. Edition metrics, decisions, feed, and side lists are sample strings. They are not computed from financial_periods. When useProjects is true, only the work-list rows come from the deal array. Example securities tiles: CEMAC sovereign rates 6,45 %, Gabon spread +145 bp, BVMAC volume 14,2 Mds, treasury auctions 142,5 Mds. Example credit tile: SEEG DSCR headroom −12 bp with 1,08x observed against a 1,20x floor, linking to the credit lab.

Terms on this page.

  • Spread. The extra yield you demand above a reference rate. +145 bp on “Gabon versus the BEAC reference” means Gabon’s bonds yield 1.45 percentage points more than the reference, because lenders see more risk.
  • BTA / OTA. Treasury bills and treasury bonds issued through BEAC auctions. BTA are short (weeks). OTA are longer (years). Companies and funds buy them; the state uses them to fund itself.
  • Encours. Amount still outstanding (not yet repaid).
  • Créances douteuses. Loans the bank already doubts will be repaid in full. A rising share is an early warning.
  • Watchlist. Borrowers under closer monitoring, short of a formal default.
  • AUM / actifs sous gestion. Market value of the portfolios the firm manages.
  • YTD. Year to date.
  • Duration (modified). How many years of interest-rate sensitivity a bond portfolio has. A modified duration of 4.6 means a 1% rise in yields cuts the price by about 4.6%. The instruments page and the curve terminal compute this properly; the overview only prints a sample.
  • Yield. The annual return implied by the price, if you hold to maturity. Higher yield means the bond is cheaper, or the market thinks it is riskier.
  • Pipeline. The list of deals being worked, from first conversation to committee.
  • CI. Investment committee (comité d’investissement), the meeting that approves a development-bank financing.
  • Visa. The COSUMAF authorization to offer a bond to the public. Without it, a public offering does not proceed.
  • Quitus. A tax-clearance certificate. The product treats a missing Gabon DGI quitus as a hard stop.
  • DSRA. Debt service reserve account: cash locked aside to pay the next few months of debt if operating cash falls short.
  • Nantissement. A pledge. A compte séquestre is an escrow account. Pledging that account can collide with a promise not to pledge anything (negative pledge).
  • Livre d’ordres. The order book: the list of investors who have said they will buy the bond, and in what size.
  • Prêt-relais. A bridge loan: short-term money that is supposed to be replaced (taken out) by a later bond.
  • Mur d’information. The Chinese wall described above. The enterprise overview says aggregated figures stay visible and a confidential markets mandate does not appear in the asset-management view.

Business value. This is the only page that changes its question with the edition. A DCM banker sees “do we take this mandate?”. A credit officer sees “who is about to break a covenant?”. It is a router into the rest of the workspace, not the place where a number is proven.

Use case. You open the app on Monday as an arranger. The securities overview shows a DSCR problem on SEEG and a 45 bp rate gap. You click the live SEEG row, land in the data room, and start the file. Or you press Synthèse du matin and let the copilot list the three points before you pick a page.

Next. Deals, the data room, sovereign curves, or whatever tile you clicked.

Deals and pipeline ​

Route/workspace/deals
SidebarDeals & Pipeline
Default forInvestment banker

Purpose. The list of financing mandates the desk is responsible for. You filter it, sort it, and open one dossier.

What it does. Eyebrow L'Archer Securities · Direction des Engagements & Syndication. Title Portefeuille des Mandats de Financement. The detail line says you select a dossier to open the analysis workshop, audit SYSCOHADA documents, and check covenants.

Actions:

  • Nouveau dossier opens the new-dossier wizard.
  • Four shortcut chips jump to the curve terminal, the morning brief, the COSUMAF auditor, and institutional memory. Their labels still say POC and Layer 5; those are product nicknames, not separate apps.
  • Search matches deal name, borrower, deal code, country, and sector.
  • Status pills: Tous, Actifs (ACTIVE), Structuration (STRUCTURING), Comité (COMMITTEE_REVIEW). There is no pill for CLOSED, even though the status enum includes it.
  • Filters for country and sector, built from the deals you have.
  • Sort by amount (euros, descending), number of contradiction alerts, or updated_at.

Each card shows country, sector, status label, deal code, deal type, borrower, name, envelope in millions of euros, CEMAC equivalent in billions of FCFA, a summary, document count, a hardcoded SYSCOHADA 100 %, the contradiction count (Écarts / Risques or Conforme), and the review date. Continuer le travail / Travailler sur ce dossier selects that project. The parent then keeps you on the current route with the new ?project=.

Data. The four KPI tiles are computed from the projects array:

  • Mandates under management = projects.length, with a split of active versus structuring.
  • Target book = sum of total_amount_eur, shown in millions of euros, plus the FCFA sum in billions.
  • Documents audited = sum of data-room document counts.
  • Attention points = sum of contradiction alerts.

The SYSCOHADA 100 % badge on every card is not computed.

Terms.

  • Mandat de financement. The engagement to raise or refinance a stated amount.
  • Enveloppe. The target size of that financing.
  • Syndication. Sharing a loan across several banks so no single balance sheet holds all of it.
  • Comité de crédit. The internal meeting that approves or refuses the bank’s participation.
  • Écart / contradiction. Two documents in the same file disagree (rate, date, definition of profit, collateral).
  • SYSCOHADA. The OHADA accounting framework used by companies in this zone. “100%” on the card means the demo marks the accounts as present, not that a validator scored them.

Business value. This is the pipeline a head of origination manages: how many live mandates, how much money they represent, and which files already contain contradictions. It is the index. The judgment happens on the later pages.

Use case. Filter to Gabon, sort by number of risk alerts, and open SEEG because it has the contradiction count. Or press Nouveau dossier for a borrower that is not in the seed.

Next. New dossier, or the data room of the deal you selected.

New dossier ​

Route/workspace/new-dossier
SidebarNouveau dossier (under Deals)

Purpose. A four-step form that creates a financing mandate and, by default, drops you into its data room.

What it does. Steps, clickable only backwards: Mandat, Juridiction, Transaction, Montant.

  1. Mandate. Operation name, borrower, sector. Sectors are a fixed list (energy and water, ports, oil and gas, telecoms, industry, mining, transport, sovereign and local authorities).
  2. Jurisdiction. Primary country, default Congo (CG). Optional extra countries. Checking an extra country marks the file as cross-border. Checkbox Entité liée à l’État (state-linked entity), which later turns on concession and public-sector checks.
  3. Transaction. One nature, default Financement corporate. Currency of the profile: XAF, EUR, or USD. Checkbox Appel public à l’épargne (a public offering, which later requires a COSUMAF visa).
  4. Amount. Target in euros, default 45,000,000, minimum 500,000. The helper shows the FCFA equivalent at 655.957. Optional preliminary note. Checkbox Ouvrir le dossier dans l’atelier dès la création (default on).

Créer le dossier builds a project with status En structuration, risk MEDIUM, arranger L'Archer Securities (COSUMAF-SDB-01/2021), deal code DEAL-{4 letters}-2026-XAF, a single term-sheet document titled as a teaser, one synthetic 2023 SYSCOHADA period scaled from the amount (revenue = amount × 3.5, EBITDA = amount × 0.9, and similar), and a two-section memo. The chosen XAF/EUR/USD is stored on the jurisdiction profile. The project’s display currency field is always FCFA / EUR.

Terms.

  • Financement corporate. A loan or bond of an operating company, repaid from the whole company’s cash, not from one project.
  • Financement de projet. Debt repaid from one project’s or concession’s cash flows. Lenders care more about that project’s contracts than about the sponsor’s other businesses.
  • Souverain / sous-souverain. The borrower is the state, or a city, region, or public agency.
  • Émission obligataire. A bond issue. If it is a public offering on BVMAC, COSUMAF rules apply.
  • Refinancement. New debt whose job is to repay old debt.
  • Restructuration. Changing the terms of debt that is already in trouble (longer dates, a standstill, a waiver). A waiver is a formal agreement to forgive a breach for a period.
  • Financement d’acquisition / LBO. Debt used to buy a company. LBO means leveraged buyout: the purchased company’s cash is supposed to repay the debt.
  • Appel public à l’épargne. Offering securities to the public, as opposed to a private placement with a few professional investors. Public offerings need a prospectus and a visa.
  • Teaser / mémorandum d’information. The first short document sent to potential lenders. It is not the binding contract.

Business value. Origination starts here. The wizard forces the questions that later pages branch on: country, public offering or not, state-linked or not, project finance or corporate. Those flags change which regulatory findings appear.

Use case. A banker has a new Gabon telecom borrower. They enter the name, pick Gabon plus Congo (cross-border), choose Émission obligataire, tick the public-offering box, set 45 million euros, and create. The data room contains only the teaser. Completeness will then show almost everything as missing, which is the honest state of a new file.

Next. Data room if the checkbox stayed on, otherwise Deals.

Data room and VDR ​

Route/workspace/deal-room
SidebarData Room & VDR

Purpose. The index of evidence for the open deal: which files exist, how many pages they have, and a short fingerprint so you can see that a file was registered.

What it does. Title Pièces de la transaction. Detail: central index of evidential documents, extractions, and control fingerprints.

  • Importer une pièce posts multipart/form-data to POST /api/locus/documents/upload with the open dossierId.
  • Server path: SHA-256 → Cloudflare R2 PutObject (private key tenants/{org}/dossiers/{dossier}/…) → C# POST /api/documents → OCR / text extract (ocr-ingest.ts) → POST /api/documents/{id}/ocr-result which writes ExtractedPages, Citations, and SearchDocuments rows and sets OcrStatus = COMPLETED.
  • Without R2_* env vars the API returns 503 R2_NOT_CONFIGURED. Health: GET /api/locus/storage/health.
  • After upload, a short-lived presigned GET (≤ 15 min) is returned for download. Duplicate SHA-256 on the same dossier → 409.
  • Metrics: document count and pages (from seed + uploaded meta). Seed rows still show class, page count, SHA-256 prefix, and key pages for the PDF viewer.

Document classes include FINANCIAL_STATEMENT, LOAN_AGREEMENT, TERM_SHEET, CONCESSION_AGREEMENT, REGULATORY_FILING, OTHER. OCR status: PENDING | PROCESSING | COMPLETED | FAILED.

Data. Seed documents on currentProject.deal_room.documents, plus live Postgres document rows after upload. Copilot retrieval can cite OCR pages via search.

Terms.

  • Data room / VDR. Controlled folder where lenders read confidential documents. This page is the index; Q&A holds the permissions / watermark story.
  • SHA-256. Cryptographic content identity; used for dedup and vault keys.
  • R2. Cloudflare’s S3-compatible object store — the private binary vault. Postgres holds metadata and searchable text, not the PDF bytes.
  • Pièce probante. A document the committee may rely on, as opposed to an unsupported sentence in a slide.

Business value. Credit and legal work is only as good as the file. Upload now lands in a real vault and becomes searchable evidence for the copilot, not a UI-only filename.

Use case. On SEEG, open the seeded financial report, loan, term sheet, and concession. Upload a new PDF (with R2 configured), confirm OCR completed, then ask the copilot a free-form question that should pull a dataroom excerpt.

Next. Completeness, to see what is still missing. Q&A, when a lender asks a question about one of these files.

Data-room completeness ​

Route/workspace/dataroom-completeness
SidebarExhaustivité

Purpose. A closing checklist: which documents a CEMAC bond or loan file is expected to contain, which of them are in this data room, and which gaps are fatal.

What it does. Title Audit d’Exhaustivité de la Data-Room & Pièces Manquantes. The detail text names the transaction as a bridge refinancing and a BVMAC bond, and talks about fatal blockers. That sentence is fixed copy, even if the open deal is PAPN.

A verdict badge is computed:

  • COMMITTEE_READY → Dossier Prêt pour Comité when every fatal item is satisfied, no condition precedent is still open, and the score is at least 75.
  • CONDITIONAL_GAPS → Comité Sous Réserve (CPs) when fatals are clear but a CP is open or the score is under 75.
  • otherwise Bloqué : Pièces Dirimantes Manquantes.

The score is satisfied / total, rounded. Four tiles: global score, fatal blockers, conditions precedent, and indexed pieces. Category chips filter the list (Gouvernance & Statuts, Comptabilité & Commissariat, Fiscalité & Sécurité Sociale, Concession & Régulation, Sûretés & Garanties, Contrats Clés & BEAC). Status tabs: Tous, Bloquants, Manquants, Déficients, Conformes.

Each requirement shows an id, title, description, severity, category, a legal citation, an optional source file, an audit finding, and a recommended action. Voir Pièce opens the PDF. Générer Requête opens a letter modal addressed to the borrower’s management and counsel, with a subject line that includes the deal code. Copier le texte copies it. Enregistrer & Notifier only fires a browser alert; it does not send email.

Severity labels: Bloquant Dirimant (fatal), Condition Préalable (CP), Post-Closing. Statuses used by the engine: SATISFIED, DEFICIENT, MISSING, EXPIRED. There is no tab for expired.

Data. The checklist template lives in dataroom_completeness/engine.ts and scores against the open deal’s data-room documents. Server-side, analysis also upserts SoR Blockers for core classes (SYSCOHADA FS, loan agreement, term sheet, legal opinion, concession) and clears them when a matching document is attached. A brand-new dossier with no uploads scores empty / all open; there is no permanent SEEG-shaped forced finding set in the product path.

The 20 items, in the order a closing lawyer would recognize:

IdWhat it asks forWhy it exists
REQ-CORP-01OHADA-harmonized bylawsA company that issues or borrows must be validly incorporated.
REQ-CORP-02Shareholder minutes approving last year’s accountsLenders rely on accounts the shareholders have adopted.
REQ-CORP-03Board resolution authorizing the borrowingWithout it, the loan can be challenged as unauthorized.
REQ-CORP-04Recent commercial-register extract and a no-bankruptcy certificateProves the company exists and is not in insolvency.
REQ-CORP-05Legal opinion from independent local counselThe syndicate’s standard comfort that the contracts are binding.
REQ-FIN-01Certified SYSCOHADA statements, 2021–2023The numbers behind every ratio.
REQ-FIN-02Statutory auditor reports without qualificationA reserve (qualification) means the auditor refused to sign the accounts cleanly.
REQ-FIN-03Operating model and 24-month cash planBank-supervision practice (COBAC) wants a forward view, not only history.
REQ-TAX-01Tax clearance from the DGI, under 3 monthsCOSUMAF practice in this product: no clearance, no file. Always missing in the template.
REQ-TAX-02Social-security clearance (CNSS), under 90 daysUnpaid payroll taxes become a senior claim.
REQ-TAX-03List of ongoing tax disputesPost-closing item. Hidden tax claims change the credit.
REQ-CONC-01Concession aligned with the debt maturityForced deficient when a concession file exists.
REQ-CONC-02Ministry approval to grant securityYou often cannot pledge public-service assets without the state.
REQ-CONC-03Current tariff decreeRevenue depends on a regulated price.
REQ-SEC-01Escrow / DSRA agreement under the OHADA collateral actForced deficient via the Note 14 pledge.
REQ-SEC-02Proof the pledges were registered at the RCCMAn unregistered pledge can lose to another creditor.
REQ-SEC-03Valuation of the pledged assetsCOBAC wants collateral you can measure.
REQ-COMM-01The 53.4 million euro bridge agreementThe contract being refinanced.
REQ-COMM-02Syndication term sheet / issue termsThe commercial deal, and a COSUMAF document.
REQ-COMM-04BEAC foreign-loan declarationAlways missing in the template.

Terms.

  • Fatal blocker / dirimant. A gap that stops the credit committee or the closing. Not a “nice to have.”
  • Condition préalable (CP, condition precedent). Something that must happen before the first drawdown (money actually paid out), even if the committee has said yes. Example: a notary registration.
  • Post-closing undertaking. A promise to deliver something after signing. Weaker than a CP, because the money may already be gone.
  • Closing. The day the contracts are signed and, usually, the money moves.
  • RCCM. The OHADA trade and personal-property register. Security interests are filed there.
  • CAC (commissaire aux comptes). The statutory auditor.
  • DGI. The national tax directorate.
  • Legal opinion. A lawyer’s letter saying the company validly approved the deal and the contracts are enforceable.
  • Greffe. The court clerk’s office where filings are stamped.

Business value. Committees slip dates because one certificate is missing. This page turns that into a score, a blocker count, and a draft chase letter. The business decision is “can we convene the committee, or do we wait?”

Use case. On SEEG, open Bloquants. You should see the tax quitus and the BEAC declaration. Generate the request letter, copy it, and send it outside the app. Then open the concession item and read why a document that exists is still DEFICIENT: the dates do not cover the bond.

Next. Q&A (to ask the borrower), the deal graph (to see how the concession date connects to the bond), or the risk register (the same facts as committee risks).

Syndicated Q&A ​

Route/workspace/deal-qa
SidebarQ&A Syndiqué

Purpose. The question channel between lenders, the arranger, lawyers, and the borrower. Answers are drafted, revised, approved, and then published to the whole syndicate, with an audit log.

What it does. Title Gestion des Questions-Réponses (Q&A) & Matrice des Droits VDR.

Permissions follow the signed-in role (qa:read / qa:submit / dealroom:upload). The UI loads and creates tickets from SoR via /api/locus/deals/{id}/qa (QaThreads). A fresh dossier shows an empty list until someone submits a question.

KPIs (counts, average response time) are computed from the loaded threads — or show — when empty.

Tabs: the question list and a form to ask a question.

Data. Postgres QaThreads only. No in-memory demo ticket pack in the product path.

Terms.

  • Chef de file / lead arranger. The bank in charge of the syndicate. They decide when an answer is official.
  • Pool. The lenders as a group. “Published to the pool” means every lender sees the same answer, so nobody has a private side letter.
  • Filigrane. A watermark with the reader’s name, so a leaked PDF can be traced.
  • EBE / EBITDA. Earnings before interest, tax, and depreciation. SYSCOHADA’s name is excédent brut d’exploitation (EBE). Lenders use it as a proxy for cash generation. A file that shows one EBE in the accounts and a higher “normalized EBITDA” in a slideshow is a classic fight; the Q&A exists so the official number is the audited one.
  • Euribor. A euro interbank rate. EURIBOR 3M + 7.20% means the borrower pays the 3-month Euribor plus 7.20 percentage points. The 7.20 is the margin. If the term sheet says 6.75 and the contract says 7.20, the annual interest bill is higher. The product prices that gap at about 240,000 euros a year on this facility.
  • Confidence percentage. A label on the draft (“how sure the extractor is”). It is stored on the seed ticket. It is not a probability the engine recomputes when you type a new question.

Business value. In a real syndication, unlogged answers create liability: one bank was told the margin is 6.75, another was told 7.20. A published Q&A with an audit trail is the single official record. The rights matrix is the product’s sketch of who may see accounts, who may ask, and who may approve.

Use case. Switch to the BGFI lender. You can read published answers and you cannot approve. Switch back to the lead arranger, open the margin question, and publish it so the pool sees one number. Then ask a new question about the concession and watch the similarity warning if your wording overlaps ticket 3.

Next. The deal graph, which draws the same four conflicts as a map. Or the memo, which is where the official answer should end up.

Deal knowledge graph ​

Route/workspace/deal-graph
SidebarGraphe Transaction

Purpose. A map of how the borrower, the contracts, the covenants, the collateral, the regulations, and the risks connect. You use it to see a failure path, not to read a table.

What it does. Title Graphe de Connaissances de la Transaction. A badge shows node and edge counts, which are computed. The center node’s sector and country come from the open project. The node glyph prefers a parenthetical code in the borrower name (for example PAPN); otherwise it builds initials from the label.

The canvas uses the design-system palette: sovereign navy background, brass borrower node, warning/critical/compliant fills for status, and ink-faint edges with critical dashed risk paths. Selection uses a brass ring, not a neon glow.

Risk-path buttons:

  • Vue d’Ensemble 360°
  • Piège de Déchéance Concessive (2028 vs 2031) — critical
  • Violation Negative Pledge (Séquestre Turbine Note 14) — critical
  • Distorsion Tarifaire (7.20% Contrat vs 6.75% Term Sheet) — major
  • Sanction Réglementaire BEAC (Emprunt Extérieur Art. 42) — critical

Choosing a path highlights its nodes. Réinitialiser la vue returns to the full map. A segmented filter shows type codes: FACILITY, DOCUMENT, COVENANT, COLLATERAL, REGULATION, RISK. A red status disc means BREACH. The inspector shows the node label, properties, and direct links. Consulter Pièce Source opens the PDF when the node has a document id.

Data. The graph generator reads the open project’s SoR-hydrated fields (financial_periods, contradiction_alerts, data-room documents). A fresh dossier with no OCR/analysis yields a minimal or empty graph — not a hardcoded SEEG facility map.

Terms.

  • Facility. One contract of debt (the bridge, or the bond), as opposed to the whole relationship.
  • Take-out. The later instrument that repays the bridge. Here, the 2031 bond is supposed to take out the 2025 bridge.
  • Déchéance. Losing the concession. If the state takes the assets back in 2028, the 2031 bondholders are left with a claim and without the network.
  • Negative pledge. A promise not to give collateral to anyone else. It protects unsecured lenders. Note 14 of the accounts says turbines are already pledged, which contradicts that promise.
  • Note 14. A numbered note in the financial statements. Notes are where the real collateral and commitments hide. The face of the balance sheet often does not say “this cash is locked.”
  • Assiette de sûreté. The pool of assets the pledge actually covers.
  • Gearing and headroom. Shown on the leverage node: 2.52x versus a 3.50x ceiling leaves 0.98x of room. Headroom is that spare room before a breach.

Business value. Tables list problems one by one. The graph is how a structuring team explains a chain: concession expiry causes a collateral problem, which causes a refinancing problem, which causes a BEAC filing problem. DFI and sovereign editions even default their landing lens toward this page because project and country risk is about links.

Use case. Select the concession path. Read the edge Expire 3 ans avant. Open the concession PDF from the node. Then select the negative-pledge path and open Note 14. You now have the two structural issues the committee memo will lead with.

Next. Diligence runner, to execute the checklist that mentions these same paths. Risk register, to assign an owner.

Diligence agent ​

Route/workspace/diligence-runner
SidebarAgent Diligence

Purpose. One button that runs a playbook: a fixed sequence of checks (documents, covenants, contradictions, regulation, completeness, risks, stress) and prints a log.

What it does. Title Agent Diligence Runner (Playbooks Institutionnels). Lancer la Diligence waits 600 ms and reruns runDiligencePipeline. Choosing another playbook reruns immediately.

Playbooks:

NameBadgeStated durationSteps
Audit exhaustif de transaction360° Diligence4.2 s7
Revue covenants et capacité de remboursementCovenant Focus2.1 s3
Scrutin réglementaire et risque concessifRéglementaire2.5 s3
Détection des divergences inter-documentsContradictions1.8 s3

The banner counts are partly computed: risk-register length, contradiction-alert length, review-grid covenants in BREACH, fatal completeness items, and checklist items with status MISSING. The timeline shows each step name, an engine id (DeterministicRatioEngine, CrossDocumentContradictionRAG, and others), a one-line output, and a random duration between 120 and 369 ms. Expanding a step shows log lines. A separate terminal titled Journal d’Émission Déterministe is hardcoded, including DSCR: 1.02x and the three fatal blockers. It does not echo the step logs.

Links at the bottom go to the risk register, completeness, the credit lab, and the graph.

Data. Steps report real SoR counts: documents, financial_periods, contradiction alerts, review-grid covenants (from ratio formulas on extracted periods), and completeness fatals. When the dossier has no indexed data, steps log that nothing was available — they do not invent SEEG terminal text.

Terms.

  • Playbook. A named procedure, like a runbook. The product’s point is that diligence is a sequence, not a chat.
  • Déterministe. Same inputs, same outputs. The UI uses this word to contrast with a model that might invent a number. The ratio engine is deterministic. Several log lines are still fixed strings.
  • Capacité de remboursement. Ability to repay from cash, which is what DSCR measures.
  • RAG. Retrieval-augmented generation: answer from retrieved documents. The engine id CrossDocumentContradictionRAG is a label on the step. The contradictions themselves are seeded alerts, not a live retrieval over PDFs.

Business value. A head of diligence uses this as a single “run the file” action before a committee date, then jumps to the page that owns each failure. The value is orchestration and a reproducible log, not a new analysis.

Use case. Run the 360° playbook on SEEG. Read the banner: blockers, a DSCR breach, contradictions. Open the covenant step, then follow Stress-Test Lab to see how much room is left.

Next. Issuers, if you want the company rather than the deal. Or the credit lab.

Issuers ​

Route/workspace/issuers
SidebarIssuers

Purpose. A 360° card on the company or the treasury that issues the debt: what it earns, what it owes, which instruments it has, and the risks attached to it.

What it does. The H1 is the issuer’s legal name. Mémo 360° opens the copilot with a credit-memo prompt. Ouvrir le dossier goes to the data room.

The issuer switcher has three cards: SEEG Gabon, Eneo Cameroun, Trésor Gabon. The open project only picks the initial card: a borrower name containing “eneo” selects Eneo, “seeg” selects SEEG, anything else (including PAPN and SNPC) also selects SEEG.

Tabs: Vue d’ensemble, États financiers, Dette et covenants, Instruments, Dossiers, Risques. Metric tiles switch the local tab. Links jump to financial tables, the credit lab, the risk register, deals, the data room, and the instruments blotter.

Data. The entire ISSUERS array is hardcoded. No formula reads financial_periods here. Figures a developer should recognize, because every other SEEG screen repeats them:

SEEGEneoTrésor Gabon
TypeState concessionaire, utilitiesPower operatorCEMAC sovereign
Revenue198.45 billion FCFA342.10 billion2,150 billion (tax receipts)
EBE34.85 billion, margin 17.6%68.40 billion, 20.0%Shown as not applicable
Net debt87.90 billion145.20 billion5,420 billion
Leverage2.52x (cap 3.50x)2.12x58.2% of GDP
DSCR1.08x1.34x2.40x
RatingB / Stable (Bloomfield)B+ / Stable (GCR)B- / Negative (S&P)
Concession30 June 202831 December 2031Permanent

SEEG risks on the card: refinancing wall, concession 2028 versus bond 2031, negative DSCR headroom, and 15.2 billion FCFA sitting in escrow. Eneo’s distinctive risk is government payment arrears of 64 billion FCFA. The treasury card talks about short BTA auctions and a Nelson-Siegel curve.

Terms.

  • Issuer / émetteur. The legal entity that owes the money. For a corporate bond, the company. For an OTA, the state treasury.
  • Chiffre d’affaires. Revenue. Turnover from selling water and power, or port services, or (for a treasury) the tax take. A treasury is not a company, so EBE is the wrong concept; the page says so.
  • Dette nette. Gross financial debt minus cash. Lenders use net debt because cash could be used to repay. Formula on the ratio page: long-term debt + short-term debt − cash.
  • Levier (net debt / EBE). How many years of current EBE it would take to repay net debt, ignoring interest. 2.52x with a 3.50x cap means the company is inside the contract. A sovereign “58% of GDP” is a different ratio: debt compared with the economy, not with EBE.
  • Notation. A credit rating from an agency (S&P, Fitch, Moody’s, or regional agencies Bloomfield and GCR). B is speculative grade: the issuer can pay today, but a shock can change that. BBB- (on the BDEAC bond in the blotter) is the bottom of investment grade. Outlook Stable or Négative is the agency’s direction, not a second rating.
  • Taux moyen pondéré. The average interest rate, weighted by how much debt sits at each rate.
  • Maturité moyenne. The average time until principal is due.
  • PIB. GDP. Used only on the sovereign card.

Business value. Bankers and portfolio managers think in issuers, not only in deals. One issuer can have a bridge, a bond, and a concession. This page is the identity record those other pages should share. Today the record is a curated card, so treat it as the reference sheet for the demo, and treat Financials as the place where SEEG’s accounts are actually tabulated.

Use case. Start from the SEEG deal, open Issuers, confirm leverage 2.52x and DSCR 1.08x, then open Dette et covenants and jump to the stress lab to see what breaks first. Switch to Trésor Gabon when you want the sovereign, then jump to curves.

Next. Instruments, for the bonds themselves. Financials, for the statements behind the EBE.

Instruments ​

Route/workspace/instruments
SidebarInstruments
Default forPortfolio manager

Purpose. A blotter of tradable rate products: sovereign bonds, treasury bills, and listed corporate bonds. You filter it and jump to the curve of the same market.

What it does. Title Instruments de taux. Detail: sovereign bonds, treasury bills, and corporate debt listed on BVMAC. Courbes opens sovereign curves. Stress DV01 asks the copilot to simulate a +50 bp rate shock on the whole CEMAC blotter.

Filters: tabs Tous, OTA, BTA, Corporate; a country select (Gabon, Cameroon, Congo, Régional); a search on name, ticker, and ISIN.

Columns: instrument and ISIN, issuer, type, coupon, maturity, price, yield to maturity, spread versus BEAC, modified duration, rating, and a Courbe action.

KPIs: filtered count (Titres affichés), arithmetic mean of yields on screen (Rendement moyen), average modified duration (Duration moyenne), and an explicit provenance tag (Source du livre : SoR Book or Démonstration or Vide).

Data. Bound dynamically to the tenant's System of Record book via /api/locus/portfolio (using mapSorInstruments and mapSorIssuers). When connected to the live PostgreSQL database, the blotter displays the verified CEMAC book instruments and marks for the active institution. In isolated demo mode or fallback, representative benchmark rows include:

TickerWhat it isCouponYieldSpread vs BEACMod. duration
OTA-CMR-24/29Cameroon 5-year OTA6.25%6.91%0 bp3.95 years
OTA-GAB-23/28Gabon 5-year6.50%7.25%+34 bp3.65 years
OTA-COG-24/31Congo 7-year6.75%7.85%+94 bp4.80 years
BTA-CMR-52SCameroon 52-week billzero coupon5.82%−109 bp0.98 years
SEEG-6.50%-28SEEG 2023–2028 bond6.50%7.15%+24 bp3.52 years
BDEAC-5.60%-27BDEAC 2022–20275.60%5.95%−96 bp2.30 years

Terms.

  • Blotter. A trader’s list of positions or of the market’s lines. Here it is the market universe, not the firm’s holdings. The asset-management overview talks about a portfolio; this page does not weight the rows by a holding size.
  • ISIN. The international id of a security (or, in this demo, a BVMAC code such as BVMAC-SEEG-28).
  • Coupon. The stated annual interest, as a percent of face value. A zero-coupon bill pays no coupon; you buy it below 100 and the gain to 100 is your return.
  • Price. Quoted as a percent of par. Par is 100. A price of 97.20 means you pay 97.20 for a claim of 100 at maturity, so your yield is higher than the coupon.
  • Yield to maturity (taux actuariel). The single rate that equates the price you pay with the coupons and principal you will receive. This is the number you compare across bonds.
  • Spread BEAC. Yield minus a BEAC reference, in basis points. Positive means the bond yields more than the reference (more risk, or a longer maturity). The bills can show a negative spread because they are short and the reference used on the row is higher than bill yields.
  • Modified duration. Price sensitivity. SEEG at 3.52 years loses about 3.52% of price if yields rise 1%, approximately. The copilot prompt (+50 bp) would be about half of that, roughly 1.76% of price, if you applied the approximation yourself. This page does not compute that portfolio loss.
  • DV01. The money lost if the yield rises by 1 basis point. “Per million” means per 1,000,000 of face. The column is in the data model and hidden. The curve terminal computes a deal-level DV01 in the structuring tab.
  • Ticker. The short market code.

Business value. A portfolio manager asks two questions: what is the bond yielding versus the sovereign curve, and how much does the price move if BEAC hikes. This blotter is the inventory for the first question. The curve terminal is where the second question is actually calculated.

Use case. Filter to Corporate, find SEEG-6.50%-28 at a 7.15% yield and +24 bp, and open Courbe to see whether that yield is cheap or rich versus Gabon’s sovereign curve. Then run Stress DV01 only as a prompt into the copilot; the numerical stress of a new issue lives on the structuring tab of the curve page.

Next. Portfolio, for the firm’s holdings book. Sovereign curves, for the reference rates those instruments are priced against.

Portfolio ​

Route/workspace/portfolio
SidebarPortfolio
Default forPortfolio manager; asset-management edition
ComponentPortfolioWorkspaceView
Domainlocus-web/src/domains/portfolio/

Purpose. Treat the firm’s CEMAC fixed-income book as one object: holdings, exposures, rate stress, policy exceptions, performance versus a benchmark, and experimental construction candidates. This is the Aladdin-style book view; Instruments remains the market blotter of listed lines.

What it does. Workspace title around the CEMAC demo book. Tabs:

  1. Overview. Aggregate market value, modified duration, DV01, and an estimated loss for a parallel +50 bp move (estimateParallelLossFromDv01). Quick links into holdings, exceptions, and stress.
  2. Holdings. Position blotter: issuer, instrument type (BTA / OTA / corporate / loan), notional, clean price, yield, duration, DV01, and price source (OBSERVED, MODEL, or UNPRICED). Selecting an issuer can open the linked deal and jump to Issuers or Research.
  3. Exposures. Weight by issuer, country, and sector, plus a maturity ladder.
  4. Scenarios. Saved stress presets (parallel yield, steepener/flattener, issuer spread, liquidity haircut, delayed repayment). Runs produce P&L and risk deltas against the live snapshot.
  5. Exceptions. Unified inbox of open limit and market exceptions with severity and status (OPEN, UNDER_REVIEW, MITIGATED, CLOSED). Status can be updated in session.
  6. Attribution. FI performance attribution versus a benchmark (carry, rates, spread, residual) built from the seed book.
  7. Construction. Constraint-based candidate books (issuer ≤ 15%, country ≤ 35%, duration ≤ 4.5 years). Marked experimental — not investment advice.

Copilot tools under /portfolio call the same deterministic domain functions (exposure, stress, exceptions).

Data. Tenant book from GET /api/locus/portfolio (C# /api/portfolio/book). Fresh tenants start empty; positions are added via portfolio CRUD (POST holdings/instruments/issuers) or the add-position form. Valuation uses valuation.ts on SoR rows.

Terms.

  • Holding. One line the firm owns (or seeds as owned): instrument + quantity + mark.
  • Price source. OBSERVED is a market quote. MODEL is a curve- or engine-derived mark. UNPRICED means no usable mark yet.
  • DV01. Money value of a one-basis-point move; the overview’s +50 bp loss is a linear approximation from aggregate DV01.
  • Exception. A limit breach or market alert that needs an owner and a status, separate from deal-room Q&A.
  • Attribution. Decomposition of book return versus a benchmark into rate, spread, and residual pieces.
  • Construction. Soft-constraint reweighting that proposes candidate books after data trust is established; it does not execute trades.

Business value. A portfolio manager’s morning question is “what do we own, what breaks if rates jump 50 bp, and which exceptions are still open?” This page answers that without forcing them through deal-centric screens. Deal links remain one click away when an issuer ties to an open mandate.

Use case. Open Portfolio as a PM. Read the +50 bp loss on Overview. Open Exceptions and take anything CRITICAL under review. Run the parallel yield scenario, then check Attribution versus the seed benchmark. Only after the book looks trustworthy open Construction to compare candidate weights.

Next. Sovereign curves, to see the rate surface behind the stress. Instruments, to inspect a listed line that is not yet in the book. Market radar, for the auction that moved the marks.


Source of trust for Locus. If this conflicts with code, code + IMPLEMENTATION_TRACKER.md win.