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 first functional alpha slice calculates one prepared reporting period, including input validation, universe equalization, Brinson-Fachler allocation and selection, and financial reconciliation. Multi-period linking remains the next calculation milestone. 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.0a1.tar.gz (20.9 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.0a1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: perfattr-0.1.0a1.tar.gz
  • Upload date:
  • Size: 20.9 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.0a1.tar.gz
Algorithm Hash digest
SHA256 fc31c022ffbd3674c1aa29b1cb034e4de96dac7497dad9149d0ddd48ad84fb73
MD5 fef4ff8841408d75ec28d1b0f59a3b45
BLAKE2b-256 f21f1d6d8b3e6171e036774316772e9c893593e4d7e1fb96d35e3729a2e86988

See more details on using hashes here.

Provenance

The following attestation bundles were made for perfattr-0.1.0a1.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.0a1-py3-none-any.whl.

File metadata

  • Download URL: perfattr-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 9.4 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.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 56b690613214a4fc4faad608a3d057113b22d5e3019c58aa13364454198ebb8b
MD5 c823e6dd9c53ba70fb2c2369fea8ecd5
BLAKE2b-256 5acd7b2be976cff1a21e89667ca675d022c4160035a330069613f1b79837d496

See more details on using hashes here.

Provenance

The following attestation bundles were made for perfattr-0.1.0a1-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.0a1 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