Metadata-Version: 2.4
Name: perfaud
Version: 0.1.0
Summary: Local-first audit software for changes in reported portfolio performance.
Author-email: John Reynolds <jjjkreynolds@gmail.com>
License-Expression: LicenseRef-Proprietary
Project-URL: Repository, https://github.com/JohnDReynolds/perfaud
Keywords: portfolio,performance,audit,reconciliation,restatement,data quality,portfolio accounting,Axys,APX
Requires-Python: >=3.11.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: polars>=1.24.0
Requires-Dist: openpyxl>=3.1
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: lxml>=5.1.0; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: pandas>=2.2; extra == "dev"
Requires-Dist: pandas-stubs; extra == "dev"
Requires-Dist: pillow>=10.0; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pylint>=4.0; extra == "dev"
Requires-Dist: pyright>=1.1.409; extra == "dev"
Requires-Dist: setuptools>=77.0.0; extra == "dev"
Requires-Dist: twine>=6.0; extra == "dev"
Requires-Dist: types-PyYAML; extra == "dev"
Dynamic: license-file

# perfaud

`perfaud` explains why reported Axys/APX portfolio performance changed between
two snapshots. It produces reviewer-oriented portfolio and security workbooks,
HTML reports, source detail, and compact supporting evidence.

<img
  src="https://raw.githubusercontent.com/JohnDReynolds/perfaud/main/docs/images/PerformanceAuditPortfolio.jpg"
  alt="perfaud portfolio review report"
  width="100%"
>

## Start

Python 3.11.9 or newer is required.

```bash
python -m pip install perfaud
perfaud setup ./my_review
perfaud run ./my_review
```

Setup creates one complete, runnable Axys/APX demonstration workspace:

```text
my_review/
  README.md
  perfaud.yaml
  input/
    snapshot_a/
    snapshot_b/
  output/
```

Replace the CSV files in the two input directories, then describe local filenames,
columns, policies, and tolerances in `perfaud.yaml`. Output is always published
atomically to `WORKSPACE/output`; a failed run leaves the last successful output
unchanged.

## What it produces

For each selected report level, `perfaud` writes:

- an Excel review workbook;
- an HTML review report;
- `source_detail.csv` for source-level investigation; and
- `audit_support.zip` with the complete supporting tables and manifest.

The product is local-first: source files and reports remain in the workspace. Its
financial policies are explicit and fail closed when evidence is insufficient.

## Documentation

- [Configuration](docs/configuration.md)
- [Methodology and controls](docs/methodology.md)
- [Python API](docs/python_api.md)
- [Maintenance](docs/maintenance.md)

Detailed Axys/APX evidence and engineering contracts are retained under
[`docs/reference`](docs/reference/).

## License

Copyright John Reynolds. See [LICENSE](LICENSE). Downloading, installing, accessing,
copying, or using `perfaud` constitutes acceptance of that license.
