Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

perfattr

perfattr is a small, auditable portfolio performance-attribution calculation library built with pandas and NumPy.

The initial release will provide a reusable Brinson-Fachler calculation core for prepared reporting-period data. Source loading, portfolio accounting, vendor schemas, calendar logic, and presentation are intentionally outside the package boundary.

The calculation core accepts one or more prepared reporting periods and provides input validation, universe equalization, Brinson-Fachler allocation and selection, logarithmic contribution linking, Carino active-effect linking, cumulative and full-horizon results, and financial reconciliation. The governing roadmap is available in _extras/perfattr_roadmap.md, and the complete portable calculation contract is defined in docs/specification.md.

from perfattr import calculate_attribution

result = calculate_attribution(portfolio, benchmark)
print(result.period_detail)

Development

Create and activate a virtual environment:

python3 -m venv .venv
source .venv/bin/activate

Install the package and development dependencies:

python -m pip install --editable ".[dev]"

Run the initial checks:

python -m pytest
python -m pylint src/perfattr tests
python -m pyright

License

perfattr is distributed under the MIT License.

Download files

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

Source Distribution

perfattr-0.1.0a3.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

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

perfattr-0.1.0a3-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file perfattr-0.1.0a3.tar.gz.

File metadata

  • Download URL: perfattr-0.1.0a3.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for perfattr-0.1.0a3.tar.gz
Algorithm Hash digest
SHA256 e168d0f13f9d17aeb00a9e2e7226289d6f119bb81edd79198ab82a95088e60cc
MD5 40dbcd603182c3ba4b26e366a627f1db
BLAKE2b-256 3fb6efbdc4de893e8865cb97ae2383c44ecb4b08f718f1d6fc34255c7bbcd329

See more details on using hashes here.

Provenance

The following attestation bundles were made for perfattr-0.1.0a3.tar.gz:

Publisher: publish.yml on JohnDReynolds/perfattr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file perfattr-0.1.0a3-py3-none-any.whl.

File metadata

  • Download URL: perfattr-0.1.0a3-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for perfattr-0.1.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 74189e6bdd53880590f7757d90654395d012c8c669eb61155a309920fa0fb6e3
MD5 0e7c0de0c724afca41a9bba4d30321e8
BLAKE2b-256 d5d19b89301688dc68f5211e3dfaf7b62709fd8d64982193df9d1da97a7b549c

See more details on using hashes here.

Provenance

The following attestation bundles were made for perfattr-0.1.0a3-py3-none-any.whl:

Publisher: publish.yml on JohnDReynolds/perfattr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

This release

0.1.0a3 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page