Skip to main content

perfattr

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

The 0.1.0 release provides 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 scripts
python -m pyright

Run the four roadmap performance workloads:

python scripts/benchmark_core.py --samples 5
python scripts/benchmark_core.py --samples 5 --input-form authoritative

Add --workload monthly_121260 --profile to inspect one workload's cumulative call profile. The benchmark methodology and initial observations are recorded in docs/performance.md.

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.0.tar.gz (28.4 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.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: perfattr-0.1.0.tar.gz
  • Upload date:
  • Size: 28.4 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.0.tar.gz
Algorithm Hash digest
SHA256 1c3229ef0d21014061c124baec5ae19969327f264a8fa75d44619bab63e23c9d
MD5 054c1c8d1d78508e5ff34f6837687c0f
BLAKE2b-256 e46888ed6dcfac69f3d9a854978ec68d191269e05d7ce501be684fdebeca6367

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: perfattr-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee3ca7e7ff25faf29971e78fd579633314e33604c72157dcb3ea15f1dc403165
MD5 7164b2f90fad07369f096671ac023deb
BLAKE2b-256 56ecb251df6f3b1acbcc29f7a29b52fd988993020e682b94e1c9b4827fdd20e3

See more details on using hashes here.

Provenance

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

This release

0.1.0 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