Skip to main content

Open Private Markets (OPM) — shared, open infrastructure for the private markets industry. This package provides the reference vocabulary; more components to follow.

Project description

Open Private Markets

Shared, open infrastructure for the private markets industry.

Open Private Markets (OPM) is a public initiative to build the commons that private markets firms and software vendors can build on rather than reinvent. This repository holds the first component: a shared reference vocabulary covering firm types, fund structures, strategies, asset classes, instruments, and roles. More components may follow.

The glossary is published two ways. As a documentation website at openprivatemarkets.org for humans to read and cite. As the privatemarkets Python package on PyPI for software to consume programmatically.

Why this exists

Private markets runs on language that nobody shares. Every firm defines the same concepts differently. Every software vendor hard-codes its own taxonomy. Every research report templates its data differently. The fragmentation makes benchmarking imprecise, regulatory reporting harder than it should be, and every new piece of software reinvent the same foundational work.

Other parts of finance have solved this with shared reference infrastructure. Banking has the Financial Industry Business Ontology. The web has schema.org. APIs have OpenAPI. Private markets has nothing equivalent. OPM is the project to build one.

Scope

OPM is a public umbrella for open, shared private markets infrastructure. The glossary is the first component because vocabulary is the foundation every other component depends on. Plausible future components include shared calculation libraries (IRR, MOIC, DPI, and so on), reference data schemas for common private markets data structures, validation tooling, and reference workflows. Each one is decided on when there is genuine demand, not on speculation.

What is in this repository

  • The glossary content under src/privatemarkets/glossary/, organised by category. Each term is a markdown file with YAML front matter holding the structured data and a prose body holding the definition.
  • The Python package source under src/privatemarkets/, which loads the glossary into typed Pydantic models.
  • The JSON Schema under schemas/ that validates every term's front matter.
  • The MkDocs configuration, Docker setup, and GitHub Actions workflows that render the site and publish the package.

The glossary lives inside the Python package folder (rather than at the repository root) so it ships with the package to PyPI consumers.

Install

pip install privatemarkets

Use in Python:

from privatemarkets import glossary

terms = glossary()  # dict keyed by term ID, e.g. "fund-manager"
fund_manager = terms["fund-manager"]
print(fund_manager.name)
print(fund_manager.sub_types)

Term IDs follow kebab-case throughout (fund-manager, not fund_manager). The dictionary key, the URL path, the filename, and the wikilink target are all the same string.

Contribute

Contributions are welcome. The typical flow is to suggest an edit through the button on any page of the documentation site, which opens a pre-filled pull request. For direct contributions, see CONTRIBUTING.md.

The maintainer reviews every change personally. Expect careful discussion of definitions, because a shared vocabulary is only valuable if the definitions are precise.

Develop locally

Prerequisites on your machine: Docker Desktop, UV, Just, and Git.

git clone https://github.com/openprivatemarkets/privatemarkets.git
cd privatemarkets
just up
just url

just url prints the URL where the preview site is served (typically http://localhost:8000, or a different port if 8000 is busy on your machine). Open it in a browser. Changes to glossary files trigger automatic reloads.

Other useful commands:

just test          # run the test suite
just lint          # check code style
just typecheck     # type check with mypy
just build         # build the static site into ./site
just shell         # open a bash shell inside the dev container
just rebuild       # rebuild the image after dependency changes
just down          # stop the dev container

All day-to-day Python commands run inside a Docker container. UV is the only Python-related tool installed on the host, and only because it manages dependencies and scaffolds the project. Day-to-day commands do not touch your host.

To change Python dependencies (rare):

uv add <package>           # runtime dependency
uv add --dev <package>     # development dependency
just rebuild               # rebuild the container to pick up the change

Relationship to adjacent standards

OPM aligns with FIBO where concepts overlap. Terms in this glossary record their FIBO equivalent through a URI field where one exists. FIBO's coverage of private markets is thin; OPM fills that gap.

The governance model is inspired by schema.org. Lightweight collaboration through GitHub with a small steering group, not a formal standards body.

License

OPM is dual-licensed.

Content (glossary definitions, prose bodies, documentation) is licensed under the Creative Commons Attribution 4.0 International License. Anyone can use, adapt, and redistribute, including commercially, with credit to OPM. See LICENSE-CC-BY-4.0.

Code (the Python package, build scripts, workflows, JSON Schema) is licensed under the MIT License. See LICENSE-MIT.

The package metadata expresses this as the SPDX expression MIT AND CC-BY-4.0 so tools that consume PyPI metadata can identify both licenses unambiguously.

Copyright © 2026 Sean Henney.

Maintainer

OPM is currently maintained by Sean Henney. As the project grows, governance expands to a small committee and eventually a broader council. See CONTRIBUTING.md for the contribution process.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

privatemarkets-0.0.2.tar.gz (80.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

privatemarkets-0.0.2-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file privatemarkets-0.0.2.tar.gz.

File metadata

  • Download URL: privatemarkets-0.0.2.tar.gz
  • Upload date:
  • Size: 80.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for privatemarkets-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8c78f3d155c9f3adbd7be549864011ba75c1b29af884c0f65eab53a3e95721d2
MD5 da1403a1ebc87508ccb3c1c2e053fa93
BLAKE2b-256 0ff907ce03eedef190dd186910eb05eada7766c716601657739afdacdf6fbfbe

See more details on using hashes here.

File details

Details for the file privatemarkets-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: privatemarkets-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for privatemarkets-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 63979027357f63971ba246e8783dfaf8528d8259eddd5ed6fc9d599afc93addb
MD5 cbb9148ac4c52fef00ad3af22aaed9ec
BLAKE2b-256 9f30353205b99531c63bdfc9069c88a6f44b0b958d532a03aca8cadda53c0517

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page