Cayman, Swiss,
one view.
Live read across the seven Segregated Portfolios and the Swiss operating entities. Cayman side from the Atlas snapshot cache; Swiss side from the working-group Q1 actuals workbook. Numbers update each time the underlying snapshots refresh.
The two sides at a glance.
Fund AUM
Trailing APR per SP
| Segregated Portfolio | 7d | 30d | YTD |
|---|---|---|---|
| Loading APR… | |||
Positions by asset class
Share of each SP's book by exposure type. Rolled up from Atlas; per-position detail still lives in each fund's operating sheet.
P&L per entity
Working-group Q1 2026 actuals — CHF, unaudited. Source: —
| Loading Q1 income statement… |
BS per entity
Position as of 31-Mar-2026 — CHF, unaudited. Consolidated includes intercompany adjustments.
| Loading Q1 balance sheet… |
Invoices & expenses.
Sourced from the BookKeep "Übersicht" payment-schedule workbook. Each ingest is a snapshot as-of the workbook's date — replace caliber/ap_cache/sources/Uebersicht_*.xlsx with a newer copy and re-run ingest_invoices.py to refresh.
Snapshot date: —
Open AP by aging bucket
Days since due date for everything still open. "Current" = not yet due as of snapshot date.
Outstanding AP per entity
| Entity | Open (CHF) | Open count | Overdue (CHF) | Paid (CHF) | Paid count |
|---|---|---|---|---|---|
| Loading… | |||||
Vendor concentration
Top 15 vendors by total volume across the window. Use this to spot single-vendor concentration risk.
| Vendor | Total volume (CHF) | Invoices | Still open (CHF) | Open count |
|---|---|---|---|---|
| Loading… | ||||
Every invoice in the window
Click any row with a ↗ to open the source invoice PDF from the BookKeep Drive folder.
| Status | Entity | Vendor | Invoice / description | Due | Paid | CHF | |
|---|---|---|---|---|---|---|---|
| Loading invoices… | |||||||
Cash, banks,
flows.
Where Meridian's money actually moves. Swiss side from Sygnum CSV exports, Cayman side from the Bank of California account inventory. The Bank Details master sheet on Drive feeds the registry; caliber/treasury_cache/sources/ holds staged copies.
Snapshot date: —
Where Meridian keeps cash
Four banks holding Meridian funds. Sygnum handles the Swiss operating entities; BoC (Bank of California) holds USD checking accounts for each Cayman SP + matched Feeder Fund. Wise and EtherFi are visible on Drive and queued for ingest.
Per-entity treasury
Each Swiss operating entity, its bank accounts, currencies, and Q1 cash flow (from Sygnum data). Ordered by outflow magnitude.
Monthly in / out (CHF)
Mirrored bars per month: green = inflows, red = outflows. Net is the right column.
Where the money moves
Aggregated across all currencies (converted to CHF at indicative rates — see treasury_cache/ingest_treasury.py).
| Entity | Inflow (CHF) | Outflow (CHF) | Net (CHF) | Currencies |
|---|---|---|---|---|
| Loading… | ||||
All known accounts
Cayman side (BoC · Bank of California, USD only) holds fund cash per SP. Swiss side (Sygnum) is the operating entities' transactional banking. Wise + EtherFi statements present on Drive but not yet parsed.
| Side | Bank | Account name | Currency | Masked # | Type |
|---|---|---|---|---|---|
| Loading… | |||||
Where the cash leaves
External vendors only — intercompany transfers are excluded. Top 20 by outflow over the window.
| Counterparty | Outflow (CHF) | Transactions |
|---|---|---|
| Loading… | ||
Money between Meridian entities
Outflows from one Meridian entity to another, aggregated as directional pairs. These should eliminate on consolidation.
Last 100 across all entities
| Date | Entity | Direction | Counterparty | Description | Amount | CCY |
|---|---|---|---|---|---|---|
| Loading transactions… | ||||||
Funds, itemised.
Every Meridian Segregated Portfolio with its itemised positions, current allocation, APY per position, risk tag, and a 12-month AUM trajectory. Data is from the Atlas snapshot cache (currently mock — switches to live atlas.meridian.com once the API contract lands).
Snapshot: —
Income Statement &
Statement of Financial Position.
Three views of the Group's financials: by Company (Swiss operating entities, real Q1 2026 actuals), by Fund (Cayman SPs, fund-style IS + BS computed from AUM × APR), and Consolidated (Group total combining both sides).
Income Statement
—
| Loading… |
Statement of Financial Position
—
| Loading… |
Cash forecast,
in-flight queue, recon.
Forward cash projection across upcoming payment dates, the Sygnum authorisation queue (with stuck-payment flags), and a reconciliation between Sygnum-paid invoices and the BookKeep AP register. Sourced from the weekly Sygnum payment-run xlsx.
Snapshot: —
Cash now, cash next.
Where cash lands after upcoming payments.
Group total trajectory across all 14 Sygnum accounts (CHF basis). Click any row in the table below to drill into a single account.
| Loading… |
Payments awaiting authorisation.
Rows highlighted in amber have been sitting in 1 authorisation open for more than 7 days — usually means the second signatory hasn't acted.
| Status | Entity | Beneficiary | Amount | Execution date | Days in auth |
|---|---|---|---|---|---|
| Loading… | |||||
What's paid but not booked.
Sygnum payment refs (zv…) matched against the AP register. Payroll payments are surfaced separately — they bypass BookKeep by design.
Vendor invoices paid but not in AP register
| Sygnum ref | Entity | Vendor | Invoice # | Amount | Currency |
|---|---|---|---|---|---|
| Loading… | |||||
AP status drift — flagged "open" but Sygnum paid
| Sygnum ref | Entity | Vendor | AP status | Amount | AP due |
|---|---|---|---|---|---|
| Loading… | |||||
Monthly cashflow,
categorised.
Every Sygnum transaction tagged into operating categories — payroll, taxes, vendors, intercompany, sub-IM revenue — then aggregated monthly with trend, cumulative, and rolling-burn metrics. CHF basis (USD/EUR converted at indicative spot).
Window: —
In / out per month, net & cumulative
Green bars = inflows, red bars = outflows (above the zero line). The blue line is monthly net, the dashed amber line is cumulative net across the whole window.
Last 12 months by category
Operating cashflow style. Months across the top, line items down. Right-most column is the 12-month total.
| Loading… |
Outflow by category
Each entity's cashflow shape
Mini sparkline per entity. Green bars = months with net inflow, red bars = months with net outflow. Number on the right is the cumulative net over the window.
Fund administration
reports.
Monthly NAV report packages from NAV Consulting — Meridian's fund administrator. Each package contains the NAV Crypto Notebook, Portfolio Report, Account Statement, Shareholder Register, and per-LP Investor Statements. Source: Drive folder.
navc_cache/sources/drive_index.json to refresh.
Key metrics.
Meridian vault metrics — TVL, APY benchmarks, capacity, fees & revenue. Mirrors the Vault Engine operator view, computed from cached Atlas snapshots and the per-asset peer set.
| Metric | |
|---|---|
| Loading… | |
mock_atlas.py — the production version will read real fund APR from atlas.meridian.com.
Who refreshed
what, when.
Every ingester run is logged. Previous snapshots are archived to <cache>/snapshots/.history/ before each refresh — nothing is destructive. The last 50 archives per cache are kept; older ones are pruned automatically. See caliber/audit/README.md for the event schema.
| When | Cache | Operator | Status | Changes | Duration |
|---|---|---|---|---|---|
| Loading audit log… | |||||
The movement above
every complication.
Caliber is Meridian's live ERP intelligence layer — running continuously across the seven Cayman funds and seven Swiss entities. Atlas runs Cayman fund operations (positions, risk, performance). NAVC runs Cayman fund administration (NAV, AUM, AML, investor compliance, wire pending). Banana runs the Swiss entity books. Caliber sits above all three — federating the data in real time, running the intercompany engine that bridges Cayman and Switzerland, consolidating through Group Holdings AG, and rendering operator-tailored surfaces for the C-suite and PMs. Autonomous agents synthesise the narrative on top. Always on. Always reconciling. Built to compound time, not consume it.
A canonical store of the group.
Every general ledger, every fund administrator record, every payroll cycle, every banking rail — ingested on a schedule, normalised to a single chart of accounts, and stored in a versioned, audit-grade repository. The foundation the rest of the system stands on.
Agents that close the books, not just report on them.
Specialised agents perform intercompany elimination, FX revaluation, KPI computation, anomaly detection, and narrative synthesis. Where a traditional BI tool would show you a number, this layer interprets it — flagging the variance, drafting the commentary, and routing the exception to the operator who owns it.
From insight to action, on its own clock.
Scheduled refreshes, automated investor packs, Monday-morning digests, deadline tickers, and exception routing — composed and dispatched without human keystroke. Operators receive what they need, when they need it; everything else stays one click away.
Key design decisions to lock
These need a sign-off before build starts. Each is a fork in the road.
Group Structure
Click any entity to see what data exists for it today and what would feed the dashboard.
● Cayman Islands
● Switzerland
** Inactive, pending FINMA license approval.
Key flows between sides
Architecture & Data Flow
Five layers. Each is a clear boundary — we can change the tooling inside a layer without rewriting the others. The first two layers read from the existing fund-level infrastructure rather than replacing it.
1 · Sources
Per-fund operating sheets & Grafana (Cayman), Banana GL (Swiss × 7), NAVC tracker, Cayman P&L, payroll, treasury, daily digests.
2 · Ingestion
Scheduled pulls from Capobello Grafana API, per-fund Google Sheets, Banana xlsx exports, NAVC tracker. Loaders are field-name-tolerant so upstream column shifts don't break.
3 · Store
SQLite at ~/Caliber/db/. Tables: entities, tb, fund_positions, fund_nav, fund_risk_caps, ic_pairs, custody, kpi_snapshots.
4 · Intelligence
Agentic Python pipeline: cross-SP aggregation → IC elimination → FX revaluation → ownership %-aware roll-up → concentration computation → anomaly detection → narrative synthesis. Date-versioned, fully replayable.
5 · Views
Operator-tailored HTML pages for the C-suite and PMs, refreshed nightly. Monthly Excel pack export. Weekly Slack/email digests dispatched automatically.
Why this shape
(entity, kpi_id, as_of_date, value). Restating a number is just adding a new row; nothing is overwritten. Makes audit + investor responses trivial.Proposed file layout
We're not building from scratch.
Atlas is already live.
The technical team has shipped Atlas (atlas.meridian.com) — a production fund dashboard covering Moonphase + Chronograph with cross-fund AUM, risk, positions, performance, exception management and reports. Underneath Atlas sits Capobello/Grafana, Vault Engine, Debank, NAVC and the per-fund operating sheets. Caliber sits above Atlas — extending it to the remaining 5 SPs, plugging in the Swiss entity layer, and adding the consolidation and operator-tailored views that don't exist anywhere else.
$99.6M Net AUM, 2 of 7 SPs, today.
Atlas snapshot from 26 May 2026: Moonphase ($69.9M) + Chronograph ($29.75M) consolidated. 6.58% gross APR / 4.58% LP net APR / 2.00% Meridian fee drag. Liquidity split 71% liquid / 23% soft lock / 5% hard lock. Aave is the dominant protocol exposure at 59.5%.
Capobello, Vault Engine, Debank, NAVC, per-fund sheets.
Atlas reads from these. Caliber reads either from Atlas directly (cheapest) or from the same upstream sources (most decoupled). Knowing the plumbing matters for what Caliber can guarantee.
What sits above Atlas, beside it, and beneath the books.
Atlas is excellent at the Cayman-fund job. None of it touches the Swiss entities or the consolidation needed for a group view. These are the six gaps Caliber fills.
Atlas + NAVC + Banana + an aggregation layer on top.
Caliber reads from Atlas (operations) and NAVC (administration) on the Cayman side, and from Banana on the Swiss side. None of the three are replaced. Caliber adds the federation, IC engine, consolidation, intelligence and presentation layers above them.
Data Sources
Nine primary inputs feed the dashboard, split into Cayman fund-side and Swiss entity-side. Click any card for owner, cadence, format, current state, and gaps.
Fund-level inputs.
Two distinct feeds per SP: the admin/NAV side (NAVC) and the operating/risk side (per-fund sheet + Grafana + Vault Engine + Debank). Caliber reads both.
grafana.capobello.com — Pools Explorer + per-position viewer. Reads from on-chain + Vault Engine registry. Real-time APR, supplied/borrowed, time-series.app.vault-engine.example/strategy/<name>.Entity-level inputs.
Statutory books, payroll, treasury and daily ops feeds for the 7 Swiss entities.
KPI Catalog
Every metric the dashboard will compute, with formula, source, owner and refresh frequency. Filter by layer.
| Layer | KPI | Formula / Definition | Source | Cadence |
|---|---|---|---|---|
| Fund | AUM (per SP) | Sum of investor capital + accrued NAV per SP | NAVC tracker → Fund status tab | Monthly NAV / Daily est. |
| Fund | NAV per share | Net assets ÷ shares outstanding (per SP class) | NAVC tracker | Monthly |
| Fund | MTD / YTD performance | NAV-per-share change, net of fees, vs prior NAV | NAVC tracker | Monthly |
| Fund | Net flows | Subscriptions − redemptions, per SP | NAVC → Wire Pending + Accounting | Weekly |
| Fund | Investor count | Distinct investors with capital balance > 0 | NAVC → Investor Compliance | Monthly |
| Fund | AML / Compliance exceptions | Count of open items in AML / Investor Compliance Missings | NAVC tracker | Weekly |
| Fund | APR by risk category | Net APR split across Low / Medium / High / Degen buckets per SP | Per-fund sheet Overview tab | Hourly |
| Fund | Portfolio risk score | Weighted avg of per-position risk scores (smart contract + economic + bridge + oracle + governance + audit) | Per-fund sheet Risk Control | Hourly |
| Fund | Portfolio efficiency | Risk-adjusted yield multiplier (Moonphase: 1.17) | Per-fund sheet Overview | Hourly |
| Fund | Number of active strategies | Count of positions with non-zero deployed capital, per fund | Per-fund sheet | Hourly |
| Fund | Sanity Check delta | Reconciliation variance between operating sheet and Debank, per fund | Per-fund sheet Sanity Check | Daily |
| Fund | Private deal accrual | Yield accrued on token grants (CORK / KELP / KATANA / INK etc.), per fund | Per-fund sheet Private deal Tracking | Daily |
| X-Fund | Aggregate protocol exposure | Σ exposure to each protocol across all 7 SPs (e.g. total AaveV3) | Derived from per-fund sheets | Daily |
| X-Fund | Aggregate custody concentration | Σ AUM per custodian across all 7 SPs (Utila, Fireblocks, Safe MSIG, Wormhole) | Derived | Daily |
| X-Fund | Aggregate chain exposure | Σ AUM per chain across all 7 SPs | Derived | Daily |
| X-Fund | Aggregate n-order asset exposure | Σ underlying asset exposure (looking through wrapped tokens) across all 7 SPs | Derived | Daily |
| X-Fund | Group risk score | AUM-weighted blend of per-fund portfolio risk scores | Derived | Daily |
| X-Fund | Cross-fund correlation | Correlation matrix of fund returns — flags when funds are too similar | Derived from NAVC + per-fund APR | Weekly |
| X-Fund | Counterparty concentration (group) | Total exposure to a single counterparty across Cayman funds + Swiss treasury (e.g. Sygnum) | Derived | Daily |
| X-Fund | Group risk caps breach watch | Auto-flag when any per-fund cap (Low/Med/High/Degen) trends past 80% of limit | Per-fund sheet Risk Control | Hourly |
| IM | Management fee accrual | AUM × mgmt fee rate × day-count, per SP | NAVC AUM × fund terms | Monthly |
| IM | Performance fee accrual | (NAV gain above HWM) × perf rate, per SP / class | NAVC NAV + HWM table | Monthly (crystallized quarterly/annual) |
| IM | IM revenue (Cayman P&L) | Mgmt + perf fees recognised | Cayman P&L workbook | Monthly |
| IM | Sub-advisory fee (paid to Atelier) | Per Sub-IM Agreement, recognised in IM cost & Atelier revenue | Cayman P&L → Atelier Fee tab | Monthly |
| ManCo | Revenue (per AG) | Sub-advisory fee + service recharges, recognised | Banana TB | Monthly |
| ManCo | Opex by category | Personnel, T&E, software, professional, occupancy | Banana TB by account code | Monthly |
| ManCo | EBITDA | Revenue − Opex (excl. FX, IC, depr.) | Banana TB | Monthly |
| ManCo | Cash runway | Cash balance ÷ trailing-3-month avg burn | Banana + Treasury | Weekly |
| ManCo | IC balances (open) | Open IC AR / AP per pair (e.g. Atelier ↔ Holdings) | Banana 2010/1100 IC accounts | Weekly |
| ManCo | Budget vs actual | Actual − budget, with variance % | Banana + budget file | Monthly |
| Group | Consolidated revenue | Σ entity revenue − IC eliminations | Pipeline output | Monthly |
| Group | Consolidated EBITDA / NI | Σ EBITDA / NI − IC, with ownership adj. | Pipeline output | Monthly |
| Group | Cash position (group) | Σ cash across all bank/wallet rails | Treasury + Banana | Daily |
| Group | Group runway | Group cash ÷ group burn | Derived | Weekly |
| Group | Effective fee rate | IM revenue ÷ avg AUM | Derived | Monthly |
| People | Headcount (FTE) | Count by entity, by function | Payroll variance file | Monthly |
| People | Payroll cost | Gross + employer contribs by entity | Payroll variance file | Monthly |
| People | Cost per FTE | Payroll ÷ FTE, by entity & function | Derived | Monthly |
| People | Payroll variance | Actual − budget per entity per month | Payroll variance file | Monthly |
| Ops | Close status by entity | Open close-checklist items per entity | FY2025-close-checklist.md + cockpit | Weekly |
| Ops | Tax deadlines on the runway | Open items in tasks.json + cockpit, < 30 days | Per-entity tasks.json | Daily |
| Ops | Unidentified inflows | Bank-side credits not yet matched to a journal | Atelier 2026 - Unidentified Inflows xlsx | Weekly |
| Ops | Open VAT exposure | VAT payable per entity by period | Banana 2200 accounts | Quarterly |
| Ops | Bank reconciliation status | Per-account: last reconciled date & open variance | Bank Recon xlsx files | Weekly |
By Audience
Four operator surfaces for the C-suite and PMs. Each is a deliberate selection from the KPI catalog — not "everything for everyone". Where Atlas already shows a number well, we embed or deep-link rather than rebuild.
- Group AUM (7 SPs + Swiss ops) & flows trend
- Atlas overview tiles embedded
- Consolidated group EBITDA & runway
- Effective fee rate (cross-jurisdiction)
- Top 3 risks auto-surfaced
- "Spotlight": one line item for today
- Per-entity TB & close status (Swiss × 7)
- Sub-IM fee tie-out (Cayman ↔ Atelier)
- IC matrix + eliminations log
- Atlas Exception Center count + top items
- FX reval · budget vs actual
- Tax calendar (Zug + Zürich) · open recs
- NAVC ticket aging (AML, wire-pending)
- Custody concentration (cross-fund + Swiss)
- Headcount & hiring plan vs actual
- Vendor / payroll cycle status
- FINMA / Compound licensing tracker
- Treasury rail status (Sygnum closure)
- Direct embed of Atlas Overview
- Per-SP drill-down (deep-link to Atlas)
- Cross-SP protocol & chain concentration
- Risk caps utilisation per fund
- Private deal accrual roll-up
- Exception Center surfaced from Atlas
Entity Drill-down
For each entity, what we know today and what the dashboard will surface. Click any row.
| Entity | Type | FY2025 | FY2026 YTD | Source | Notes |
|---|---|---|---|---|---|
| Meridian Holdings AG | Swiss · Holding | In progress | YTD Feb | Banana | Owns Compound, part of Atelier |
| Meridian AG | Swiss · Family office | In progress | YTD Feb | Banana + per-entity workspace | FY2024 tax overdue (default-assessment risk) |
| Meridian Studio AG | Swiss · OpCo | In progress | Q1 FS done | Banana + Atelier folder + Sygnum recon | Sub-IM revenue recipient |
| Meridian Alpha AG | Swiss · OpCo | In progress | Q1 FS done | Banana | Service-fee recipient from Atelier |
| Meridian Compound AG | Swiss · Inactive | N/A | N/A | Banana (minimal) | Pending FINMA license |
| 1of1 AG | Swiss · Side entity | In progress | YTD Feb | Banana | Sygnum termination in flight |
| Meridian Bespoke AG | Swiss · Zürich | In progress | YTD Feb | Banana | Only ZH-based entity; tax via zh.ch/steuern |
| Meridian Cayman (IM) | Cayman · IM | Closed | Q1 closed | Cayman P&L workbook | Revenue conduit (Sub-IM) |
| Chronograph SP | Fund · $29.75M | Closed | NAV current | NAVC + Atlas | In Atlas today |
| Moonphase SP | Fund · $69.89M | Closed | NAV current | NAVC + Atlas + ops sheet | In Atlas today |
| Calatrava SP | Fund | Closed | NAV current | NAVC + ops sheet | Not in Atlas yet |
| Resonance SP | Fund | Closed | NAV current | NAVC + ops sheet | Not in Atlas yet |
| Resonance II SP | Fund | Closed | NAV current | NAVC + ops sheet | Not in Atlas yet |
| Perpetual SP | Fund | Closed | NAV current | NAVC + ops sheet | Not in Atlas yet |
| Ellipse SP | Fund | Closed | NAV current | NAVC + ops sheet | Not in Atlas yet |
Release Track
Caliber is live in v1.0. The track below shows what's shipped, what's running now, and what's on deck. Reframed around Atlas — Phase 1 federates rather than rebuilds. Speed comes from not recreating what's already shipping.
Atlas integration path locked with the technical team
Before building anything, confirm how we read Atlas. Three options, ordered cheapest-to-most-decoupled:
- (a) Direct Atlas API — if one exists. Fastest. Tightest coupling.
- (b) Shared upstream — same Capobello / NAVC / per-fund sheet feeds Atlas reads. Zero Atlas dependency, but we replicate some Atlas logic.
- (c) Hybrid — Atlas API for aggregated metrics, direct upstream for cross-SP risk that Atlas doesn't compute.
Also locks: Atlas roadmap for the remaining 5 SPs, schema we can rely on, Exception Center event format.
Atlas + NAVC + Banana under one roof + CEO view
Ship the CEO view first because it requires the minimum of both sides.
- SQLite schema + ingestion for Banana TB (all 7 Swiss entities)
- Atlas data feed wired in via the path chosen in Phase 0
- Sub-IM fee tie-out (Cayman IM ↔ Atelier) — the single biggest cross-jurisdiction line
- Group AUM + group revenue + group EBITDA computed correctly
- CEO view rendered, refreshed nightly via Cowork scheduled task
IC engine, consolidation, close controls
Add the controls layer. Once the CFO trusts IC + FX, the rest is just rendering.
- FX revaluation engine with daily rate ingestion
- Full IC pair matrix (all 7 × 7 Swiss + Cayman IM ↔ Atelier)
- Ownership-aware consolidation through Group Holdings (full + managerial views)
- Atlas Exception Center surfaced inside CFO view
- CFO view: close status, IC, fee tie-out, budget vs actual, tax calendar
- Monthly Excel pack export
Ops, custody, admin SLAs + cross-SP risk
The two remaining surfaces. Brings in the people / ops streams and the cross-fund risk that Atlas doesn't yet aggregate.
- Payroll variance ingestion → headcount & cost-per-FTE per Swiss entity
- NAVC compliance / AML aging
- Treasury rail status (Sygnum, Wise, ether.fi unified)
- Cross-SP concentration KPIs (protocol, chain, asset, custody)
- COO view + PM view (Atlas embed + cross-SP layer)
- Onboarding path for the 5 SPs not yet in Atlas
Agents draft the narrative
The last surface. Once the data is right and the views are right, the agents turn numbers into language.
- Anomaly detection (variance + concentration breaches + missed close items)
- Weekly digest agent — C-suite and PMs get tailored Slack/email summaries
- Investor letter draft agent — per-SP performance pack auto-generated
- Q&A interface — natural language over the group store ("Why did Atelier EBITDA move?")
Gaps, Risks & Open Questions
The dashboard is only as good as the books and the IC tie-outs underneath. These are the live blockers that affect the build today.
Data gaps
FY2024 corporate income + capital tax — overdue 9 days as of today
6 of 7 entities (5 Zug + 1 Zürich, Compound excluded). Default-assessment risk. Will distort any group historicals until cleared.
FY2025 books not finalized
Cockpit lists FY2025 as "in progress". Blocks Q4 2025 VAT (due 31 May) and any annual KPIs that rely on FY2025 close.
Missing Wise & ether.fi receipts
Open IC recs depend on these. Until matched, treasury KPIs will show variance.
Cayman Q4 fees pending
Atelier revenue recognition for Q4 2025 is gated on Cayman's fee finalization, per the daily digest.
Alpha project folder empty
All Alpha-related working files currently live inside Swiss Accounting Banana/ rather than the dedicated folder. Either consolidate or accept Banana as the single home.
No structured budget file yet
Phase 2 (budget vs actual) needs a single, consistent budget format. Today there's only the Somnia (portfolio) budget-vs-actual file, not a Meridian group budget.
Atlas covers only 2 of 7 SPs
Atlas currently shows Moonphase + Chronograph. Calatrava, Resonance, Resonance II, Perpetual and Ellipse are not onboarded. Until they are, the group view has to read from per-fund operating sheets directly, with different fidelity than Atlas provides.
Cross-SP concentration is invisible today
Atlas aggregates protocol exposure across Moonphase + Chronograph ($59M in Aave alone). Adding the other 5 SPs almost certainly multiplies that number. A single Aave incident could hit the entire firm before anyone sees it coming. This is the highest-value risk gap the group system closes.
Sub-IM tie-out lives in one xlsx
The single line item connecting Cayman revenue to Atelier revenue is in a standalone monthly file (Meridian Cayman Q1 2026 - Monthly P&L + Atelier Fee.xlsx). Manual today. The group consolidation will be wrong if this drifts.
Atlas integration path not yet chosen
Three options (Atlas API, shared upstream, hybrid) need a Phase 0 decision with the technical team. Picking the wrong one wastes weeks. This is the single most important conversation before Phase 1 starts.
Open questions
Source File Index
Every file Caliber reads from or writes to, with its path. Upstream sources at top; Caliber's own snapshot cache layout below. Project root: ~/Documents/Claude/Projects/Caliber/.
Upstream sources
The systems and files Caliber ingests from. Caliber never modifies these — it pulls or parses them and writes its own snapshots.
| Source | Location | Used for |
|---|---|---|
| Atlas dashboard | atlas.meridian.com | Fund-side aggregated data (Moonphase + Chronograph): AUM, APR, positions, risk, exception center |
| Capobello / Grafana | grafana.capobello.com (Pools Explorer, Position Viewer) | Live per-position dashboards underneath Atlas |
| Vault Engine | app.vault-engine.example/strategy/<name> | On-chain execution registry; canonical strategy metadata |
| Debank | debank.com | Cross-chain position aggregator; reconciliation source |
| Moonphase operating sheet | docs.google.com/spreadsheets/d/1HFrtXr-8ZztUu9SkgLpYREq292M8xcXGCr6pARprAkw | Reference per-fund sheet — same template across all 7 SPs |
| 2026Q1_Financial Statements (Actuals) - Reporting_v2026-05-26.xlsxLive in Caliber | Working-group consolidated FS workbook · staged into caliber/swiss_cache/sources/ | Q1 2026 P&L / BS / CF per entity (Alpha, Atelier, Meridian AG, SPC-IM, Consolidated). Source for Swiss snapshot cache. |
| Meridian AG - Q1 2026 Financial Statements.xlsx | Swiss Accounting Banana | Per-entity TB ingestion (underlying — rolls up into working-group workbook) |
| Meridian Studio AG - Q1 2026 Financial Statements.xlsx | Swiss Accounting Banana | Per-entity TB ingestion (underlying) |
| Meridian Alpha AG - Q1 2026 Financial Statements.xlsx | Swiss Accounting Banana | Per-entity TB ingestion (underlying) |
| Meridian Cayman Q1 2026 - Monthly P&L + Atelier Fee.xlsx | Swiss Accounting Banana | Cayman→Atelier fee & revenue |
| IC Reconciliation - Atelier vs Group Holdings FY2025.xlsx | Swiss Accounting Banana | IC eliminations |
| NAVC_Meridian_Tracker_Drive_2026-05-22.xlsx | NAVC | Fund NAV, AUM, compliance |
| Meridian_Payroll_VarianceAnalysis_JanMay2026.xlsx | Swiss Payroll | People KPIs + variance |
| Atelier 2026 - Bank Recon.xlsx | Meridian Atelier | Bank rec status |
| Atelier 2026 - Sygnum Recon.xlsx | Meridian Atelier | Sygnum rail closure tracking |
| Atelier 2026 - Close Working Paper.xlsx | Meridian Atelier | Close status per checklist |
| FY2025-close-checklist.md | Meridian AG/financials | Close ops feed |
| tasks.json | Meridian AG/ | Tax / deadline feed |
| .digests/*.json | Swiss Accounting Banana | Daily/weekly briefings → "open items" widget |
| BookKeep "Übersicht" payment scheduleLive in Caliber | Google Drive · /Übersicht 23.03.2026.xlsx · owner dk@bookkeep.ch | Master AP register. Per-payment-batch invoice schedule across 1of1, Meridian AG, Atelier, Alpha. Source for AP snapshot cache. |
| Per-entity invoice PDF folders | Drive sub-folders: 1of1 · Meridian AG · Atelier · Alpha · Bespoke · Group Holdings | Backing documents for each invoice in the Übersicht. Filename convention: <Vendor> - Inv <number>.pdf |
| Übersicht Archiv | Drive sub-folder · prior Übersicht workbooks | Historical AP snapshots — feed for time-series AP analysis (future) |
| Sygnum bank statement exportsLive in Caliber | Google Drive · /2026/Sygnum/*.csv · owner dk@bookkeep.ch | Per-entity Sygnum statements (1of1, ag, atelier, alpha, group) + consolidated 260315_all.csv. 2,255 transactions Jan-25 to Mar-26. Source for Treasury snapshot cache. |
| BoC_meridian_accounts.csvLive in Caliber | Google Drive · /Banking-Treasury/BoC_meridian_accounts.csv | Cayman-side Bank of California account inventory · 14 USD accounts (one per SP + matched Feeder Fund + Meridian Cayman + HUMAN ONE LTD). |
| Wise · EtherFi statements | Drive · /Banking-Treasury/2026/Wise · /Banking-Treasury/2026/EtherFi | Not yet parsed by Caliber. Future ingest target. |
| Payment runs | Drive · /Banking-Treasury/payments/*.xlsx (e.g. 2026-03-25_payments_sygnum_team.xlsx) | Scheduled payment-run worksheets · future Caliber surface. |
| Meridian Bank Details | Drive · master Google Sheet | Account master · currently returns empty on export; pending team review. |
| NAVC report packagesLive in Caliber | Google Drive · /NAVC Reports | Monthly NAV report packages from NAV Consulting (fund administrator). One folder per fund × period containing NAV Notebook, Portfolio Report, Account Statement, Shareholder Register, per-LP Investor Statements. |
Caliber internal — what lives where
Everything Caliber owns. Two parallel snapshot caches (one per side of the group) feed the dashboard. Paths are relative to ~/Documents/Claude/Projects/Caliber/app/data/.
| Component | Path | Role |
|---|---|---|
| Atlas (Cayman) cache | ||
| config.yaml | atlas_cache/config.yaml | Atlas endpoints to mirror + refresh cadence per endpoint |
| fetch.py | atlas_cache/fetch.py | Snapshot fetcher — calls Atlas, writes JSON, tracks freshness. Run on cron. |
| reader.py | atlas_cache/reader.py | SnapshotReader class for Python consumers |
| mock_atlas.py | atlas_cache/mock_atlas.py | Local stub Atlas API for development without real credentials |
| snapshots/_meta.json | atlas_cache/snapshots/_meta.json | Per-endpoint last-fetched timestamps + status (dashboard reads for freshness chips) |
| snapshots/aum_summary.json | atlas_cache/snapshots/aum_summary.json | Group AUM headline + by-SP breakdown (USD) |
| snapshots/nav_by_sp.json | atlas_cache/snapshots/nav_by_sp.json | NAV per SP, per-unit values |
| snapshots/apr_trailing.json | atlas_cache/snapshots/apr_trailing.json | 7d / 30d / YTD APR per SP |
| snapshots/positions_summary.json | atlas_cache/snapshots/positions_summary.json | Cross-SP exposure (spot / perp / LP / stables) |
| snapshots/fund_metadata.json | atlas_cache/snapshots/fund_metadata.json | SP inception, strategy, Sub-IM linkage |
| snapshots/positions_detail.json | atlas_cache/snapshots/positions_detail.json | Itemised positions per SP — name, asset class, venue, USD value, share, APY, risk. Powers the Funds page positions table. |
| snapshots/aum_history.json | atlas_cache/snapshots/aum_history.json | 12-month AUM trajectory per SP — drives the per-fund movement chart. |
| compute_fund_financials.py | atlas_cache/compute_fund_financials.py | Synthesizes per-SP IS + BS from AUM × APR using 2/20 + 5 bps admin. Output: fund_financials.json. Will be replaced by a live /v1/funds/financials endpoint once Atlas exposes audited fund financials. |
| snapshots/fund_financials.json | atlas_cache/snapshots/fund_financials.json | Fund-style P&L and Balance Sheet per SP plus aggregate. Powers the "By Fund" + "Consolidated" views on Financials page. |
| Swiss cache | ||
| ingest_fs.py | swiss_cache/ingest_fs.py | Parses the Q1 working-group FS xlsx → normalised JSON snapshots |
| sources/*.xlsx | swiss_cache/sources/2026Q1_Financial_Statements_v2026-05-26.xlsx | Staged copy of the working-group workbook. Ingester picks the newest by filename. |
| snapshots/_meta.json | swiss_cache/snapshots/_meta.json | Parsed-at timestamps + source filename |
| snapshots/group_summary.json | swiss_cache/snapshots/group_summary.json | Top-line consolidated KPIs Caliber surfaces on the Group snapshot panel |
| snapshots/pl_q1_2026.json | swiss_cache/snapshots/pl_q1_2026.json | Q1 2026 P&L per entity (Alpha, Atelier, Meridian AG, SPC-IM, Consolidated) |
| snapshots/bs_q1_2026.json | swiss_cache/snapshots/bs_q1_2026.json | Q1 2026 BS per entity |
| snapshots/pl_history.json | swiss_cache/snapshots/pl_history.json | Consolidated P&L across all detected periods (FY 2021 → Q1 2026) |
| AP cache | ||
| ingest_invoices.py | ap_cache/ingest_invoices.py | Parses the BookKeep Übersicht xlsx → normalised AP snapshots. Handles batch/section structure + BookKeep's "x" convention for paid items. |
| sources/*.xlsx | ap_cache/sources/Uebersicht_2026-03-23.xlsx | Staged copy of latest Übersicht. Drop a newer file here and re-run the ingester. |
| snapshots/_meta.json | ap_cache/snapshots/_meta.json | Parsed-at + snapshot-as-of timestamps |
| snapshots/ap_summary.json | ap_cache/snapshots/ap_summary.json | Top-line numbers Caliber surfaces on the Group snapshot AP tile |
| snapshots/invoices.json | ap_cache/snapshots/invoices.json | Flat ledger — every invoice with status, aging, entity, vendor, due/payment dates |
| snapshots/aging.json | ap_cache/snapshots/aging.json | Open AP histogram across aging buckets (current, 0-30, 31-60, 61-90, 90+) |
| snapshots/by_entity.json | ap_cache/snapshots/by_entity.json | Open / paid / overdue totals per entity |
| snapshots/by_vendor.json | ap_cache/snapshots/by_vendor.json | Vendor concentration view — total volume + still-open balance per vendor |
| FX cache | ||
| fetch_fx.py | fx_cache/fetch_fx.py | Pulls daily USD/CHF and EUR/CHF from frankfurter.app (ECB rates, free, no auth). Run anytime to refresh the cache. |
| daily_rates.json | fx_cache/daily_rates.json | ~360 ECB publication-day FX observations. Treasury ingester reads this for day-of conversion; carries forward to weekends/holidays. |
| Treasury cache | ||
| ingest_treasury.py | treasury_cache/ingest_treasury.py | Parses Sygnum CSV exports + BoC account inventory → normalised treasury snapshots. Handles UTF-8/Latin-1 encoding fallback for Swiss-German characters. |
| sources/sygnum_2026/*.csv | treasury_cache/sources/sygnum_2026/260315_all.csv (+ per-entity) | Consolidated Sygnum transaction export. Drop newer dated CSVs here. |
| sources/BoC_meridian_accounts.csv | treasury_cache/sources/BoC_meridian_accounts.csv | Bank of California account master · 14 Cayman USD accounts |
| snapshots/treasury_summary.json | treasury_cache/snapshots/treasury_summary.json | Top-line numbers Caliber surfaces on the Group snapshot Treasury tile |
| snapshots/bank_accounts.json | treasury_cache/snapshots/bank_accounts.json | Every known bank account (BoC + Sygnum-inferred) |
| snapshots/flows_by_entity.json | treasury_cache/snapshots/flows_by_entity.json | Per-entity inflows / outflows / net, by currency + CHF total |
| snapshots/flows_by_currency.json | treasury_cache/snapshots/flows_by_currency.json | Total flow per currency (CHF / USD / EUR) |
| snapshots/cashflow_monthly.json | treasury_cache/snapshots/cashflow_monthly.json | Month-by-month CHF inflow / outflow / net series |
| snapshots/cashflow_detailed.json | treasury_cache/snapshots/cashflow_detailed.json | Categorised monthly cashflow (Payroll / Taxes / Vendors / IC / etc.) + cumulative + rolling burn + YTD/TTM. Carries both CHF and USD via day-of ECB FX. Powers the Cashflow page. |
| snapshots/top_counterparties.json | treasury_cache/snapshots/top_counterparties.json | External counterparties ranked by outflow (CHF) |
| snapshots/intercompany.json | treasury_cache/snapshots/intercompany.json | Meridian ↔ Meridian transfer pairs · should eliminate on consolidation |
| snapshots/recent_transactions.json | treasury_cache/snapshots/recent_transactions.json | Last 100 transactions across all entities |
| NAVC cache | ||
| ingest_navc.py | navc_cache/ingest_navc.py | Reads the Drive index of NAVC report packages and writes per-fund/per-period report lists with file URLs. |
| sources/drive_index.json | navc_cache/sources/drive_index.json | Snapshot of the NAVC Drive folder. Re-crawl Drive and replace this file to refresh the report library. |
| snapshots/reports.json | navc_cache/snapshots/reports.json | Flat list of all report packages with file roles (NAV Notebook / Portfolio / Account Statement / Shareholder Register / Investor Roll History / Onshore Workbook) and Drive URLs. |
| snapshots/navc_summary.json | navc_cache/snapshots/navc_summary.json | Top-line counts the page header uses (funds reporting, package count, latest period). |
| Audit + history | ||
| audit/audit.jsonl | audit/audit.jsonl | Append-only event log — one JSON line per ingester run. Captures who, when, what cache, status, duration, files changed, archive path. |
| common/audit_wrapper.py | common/audit_wrapper.py | Wrapper that runs each ingester. Archives snapshots/ to .history/<UTC>/ before write, computes file diff, appends event to audit.jsonl. Keeps 50 most recent archives per cache. |
| snapshots/.history/* | <cache>/snapshots/.history/<UTC-timestamp>/ | Per-cache snapshot archives. Restore by copying back into snapshots/. |
| Metrics cache | ||
| compute_metrics.py | metrics_cache/compute_metrics.py | Reads from treasury raw CSVs + AP + Atlas snapshots → computes percentile (P50/P85/P91/P99) distributions over a 7-day rolling window. Output mirrors Vault Engine's key-metrics structure. |
| snapshots/key_metrics.json | metrics_cache/snapshots/key_metrics.json | All metrics + their percentiles + underlying 7-day series for sparklines |
| Dashboard | ||
| index.html | dashboard/index.html | This file. Reads from ../atlas_cache/snapshots/ and ../swiss_cache/snapshots/ via fetch(). |
| fonts/ | dashboard/fonts/*.otf | Britti Sans + Meridian Type |
| Docs | ||
| Caliber README | caliber/README.md | How to run the whole stack locally + going-live checklist |
| Atlas cache README | caliber/atlas_cache/README.md | How to point at real Atlas vs the mock |
Glossary
atlas.meridian.com, built by the technical team. Covers Moonphase + Chronograph today. Caliber sits above it.grafana.capobello.com. Pools Explorer + Position Viewer sit underneath Atlas.Ask anything.
Audited end-to-end.
A dedicated AI agent for your finance ops — answers questions, summarises invoices, reconciles cashflows, drafts emails. Every prompt is classified for sensitivity, redacted if needed, routed to the right model tier, and recorded in a hash-chained audit log. The privacy gateway is non-optional and non-bypassable.
Try a prompt
What's happening
Connect your data.
Caliber does the rest.
Caliber pulls from the tools your finance team already uses — bookkeeping software, banks, fund admin reports, Drive folders. Connect once; the dashboard, AI Agent, and audit log all light up automatically. All connections are scoped read-only by default and revocable from this page at any time.
Connect your data sources to populate Caliber
Pick the integrations that match how your team works today. Each one takes 30 seconds to ~2 minutes. Connect at least one accounting source and one banking source to fill the dashboard with your numbers.
API keys for outbound integrations.
Caliber holds these securely in its KMS — they're never returned to the customer app and never logged in plain text. Rotate them anytime; in-flight requests using an old key will continue to work for 60 seconds after rotation.