Skip to Content
ReferenceTaxonomy

Taxonomy

Source: SOURCE-OF-TRUTH.md · synced 2026-06-12

Locked 2026-05-25. Three levels: sub_function → sub_vertical → tag. The first two are stable structural layers. The third (tags) is bootstrapped from data, not pre-defined — see §2 Step 3.1 note.

3a. Sub-Functions (top level — 5)

IDDisplay nameCalibre’s folderCV countJD count
cargo-opsOperations — cargo, commodities brokeragereference/Operations - cargo, commodities brokerage/2119
ship-opsOperations — ship, shipping brokeragereference/Operations - ship, shipping brokerage/238
risk-analyticsRisk — Analyticsreference/Risk - Analytics/255
finance-foFinance — RM, wealth management, FA, channel/institutional/fund salesreference/Finance - RM, wealth management.../175
ops-back-officeOperations — banks, finance brokerage, funds, asset managementreference/Operations - bank, finance brokerage.../214
Totals10741

(Reference set has ~113 files total; ~107 are CVs after stripping images, screenshots, scanned-image PDFs. Final count after parser batch run.)

3b. Sub-Verticals (mid level — derived from Calibre’s JD folder structure)

Sub-functionSub-vertical IDsDerived from
cargo-opsagri, energy, metalsCalibre’s JD/Operations- cargo, commodities brokerage/{Agri,Energy,Metals}/
ship-opstanker, drybulk, container, offshore-support, brokerJD/Operations- ship, ship brokerage/Tanker/ + the flat JDs at the parent level (Drybulk, Container, Offshore Support, Broker Drybulk+Tanker)
risk-analyticscredit, market, operational, product-controller, trading-analyticsRisk JDs are flat — each JD itself is the sub-vertical
finance-form, wealth-mgmt, institutional-sales, portfolio-mgmt, tradingFive Finance JDs are flat — each is one sub-vertical
ops-back-officeaml, compliance, assistant-rm, finance-opsFour ops-back-office JDs are flat — each is one sub-vertical

The sub-vertical layer matters because rubrics fire at sub-vertical granularity. An LNG energy operator and a fertilizer agri operator both live under cargo-ops but score against very different criteria. Rubric configs key on (sub_function, sub_vertical).

3c. Tags (leaf level — bootstrapped from CV↔JD pilot match)

Approach: emergent, not designed. See §2 Step 3.1 note. The tag vocab will be the output of a lean pilot match — not a deliverable that has to land before the pilot runs.

Tentative draft tags below seed the bootstrap pilot (Claude can refine, drop, rename, add):

{ "cargo-ops.agri": ["biofuels", "coffee-cocoa", "edible-nuts", "fertilizers", "grains-oilseeds", "oleochemicals", "rice", "sugar", "veg-oil"], "cargo-ops.energy": ["crude-oil", "fuel-oil", "lng", "lpg", "light-ends", "middle-distillates", "petrochemicals", "thermal-coal"], "cargo-ops.metals": ["base-metals", "ferrous", "precious-metals"], "ship-ops.tanker": ["chemical-tanker", "lng-carrier", "lpg-carrier", "crude-tanker"], "ship-ops.drybulk": ["panamax", "capesize", "handysize", "supramax"], "ship-ops.container": ["liner-ops", "feeder"], "ship-ops.offshore-support": ["psv", "ahts", "rig-support"], "ship-ops.broker": ["voyage-charter", "time-charter", "sale-purchase"], "risk-analytics.credit": ["counterparty", "settlement", "exposure"], "risk-analytics.market": ["var", "p&l-attribution", "pricing-models"], "risk-analytics.operational": ["controls", "incident-mgmt", "regulatory"], "risk-analytics.product-controller": ["valuation", "p&l-explain", "reserves"], "risk-analytics.trading-analytics": ["quant", "model-validation", "backtesting"], "finance-fo.rm": ["onshore-hnw", "offshore-hnw", "uhnw"], "finance-fo.wealth-mgmt": ["product-spec", "advisory", "discretionary"], "finance-fo.institutional-sales": ["funds", "asset-mgrs", "pension-funds"], "finance-fo.portfolio-mgmt": ["equity", "fixed-income", "multi-asset"], "finance-fo.trading": ["sales-trading", "execution"], "ops-back-office.aml": ["transaction-monitoring", "kyc", "sanctions"], "ops-back-office.compliance": ["mas-compliance", "advisory-compliance"], "ops-back-office.assistant-rm": ["client-servicing", "documentation"], "ops-back-office.finance-ops": ["reconciliation", "fund-accounting", "trade-support"] }

These are seed candidates, not the locked vocab. Locked vocab is whatever the pilot match returns.

Relationship to the 4 grant verticals

CLAUDE.md and grant docs reference 4 verticals: Commodities & Renewables, Shipping & Maritime, Offshore Services & Start-ups, Technology & Gaming. These were the proposal-level marketing framing. The 5 sub-functions are the operational classification driven by Calibre’s actual data.

Mapping:

Grant verticalOperational sub-function(s)Notes
Commodities & Renewablescargo-opsPlus risk slice
Shipping & Maritimeship-opsPlus risk slice
Offshore Services & Start-ups(none yet)No CVs / JDs from Calibre. Aspirational vertical.
Technology & Gaming(none yet)No CVs / JDs from Calibre. Aspirational vertical.
(cross-cutting)risk-analyticsTouches commodities + maritime + finance
(new — not in grant)finance-foCalibre added 2026-05-23. Marketing as “Banking / Finance” vertical for audit.
(new — not in grant)ops-back-officeSame. Marketing as “Banking Operations” vertical.

Action: when the Step 10 productisation surface ships, list 5 vertical “packs” on the marketing page: Commodities, Maritime, Risk & Analytics, Finance / Wealth, Banking Operations. The two original aspirational verticals (Offshore, Tech & Gaming) become “coming soon” placeholders. This keeps the grant’s “4+ verticals” claim defensible while reflecting real built coverage.

Superseded — original flat tag vocab proposal

The original taxonomy in plans/step-5-phase-2-cv-normaliser-design.md (formerly 2026-05-19-title-normaliser-design.md) was a flat 2-level vocab (cargo-ops:[energy:oil, metals:base, ...]). That doc is superseded by §3a/3b/3c here. The 3-level hierarchy + bootstrap approach is canonical. The original 2026-05-19 plan stays in the repo for audit traceability but its taxonomy section is no longer authoritative.


Last updated on