Decision-first IRR analysis anchored at the Required Rate of Return.
Project description
Evbayiro-IRR
Evbayiro-IRR is an open-source Python library for decision-first capital budgeting analysis. It implements the Evbayiro RRR-First Method, an anchored IRR workflow that begins with the Required Rate of Return (RRR), evaluates NPV at that decision point, and then interprets IRR boundaries in context.
Unlike a bare irr() function, Evbayiro-IRR returns a structured analysis:
the NPV decision at the RRR, the cash-flow pattern, the anchored trial path,
any detected IRR boundaries, and warnings for non-conventional cash flows.
Quick Start
from evbayiro_irr import evbayiro_analysis
result = evbayiro_analysis(
cashflows=[-350000, 125000, 150000, 170000],
rrr=0.11,
)
print(result.decision) # accept
print(result.anchor_npv) # NPV at 11%
print(result.estimated_irr) # Evbayiro interpolated IRR
print(result.trial_path) # transparent 1% search path
The main result fields include:
decision: accept, reject, breakeven, or not evaluated.anchor_npv: NPV at the supplied RRR or provisional anchor.cashflow_type: conventional, non-conventional, or no-IRR pattern.trial_path: the 1% anchored search path.estimated_irr: interpolated Evbayiro estimate from the anchored bracket.detected_irrs: detected IRR boundaries for non-conventional cash flows.decision_relevant_irr: the IRR boundary relevant to the RRR region.
Command Line
After installation, run a conventional example:
evbayiro-irr --cashflows -350000 125000 150000 170000 --rrr 11%
Run a non-conventional cash-flow example:
evbayiro-irr --cashflows -1000000 800000 1000000 1350000 -2250000 --rrr 15%
Rates may be supplied as 0.15, 15%, or 15. Use --json for
machine-readable output, --show-path to print every trial rate, and
--version to print the installed package version.
Non-Conventional Cash Flows
The library detects non-conventional cash flows automatically by counting sign changes in the cash-flow sequence.
from evbayiro_irr import evbayiro_analysis
result = evbayiro_analysis(
cashflows=[-1000000, 800000, 1000000, 1350000, -2250000],
rrr=0.15,
)
print(result.cashflow_type) # non_conventional
print(result.detected_irrs) # all detected IRR boundaries
print(result.decision_relevant_irr) # boundary around the RRR region
print(result.decision) # accept, based on NPV at RRR
print(result.warnings)
For non-conventional patterns, Evbayiro-IRR does not treat a single IRR as the final decision rule. It keeps NPV at the RRR as the controlling accept/reject test, reports detected IRR boundaries, and identifies the boundary relevant to the RRR region.
Design Goals
- Anchor the first calculation at the RRR.
- Use the Evbayiro Constant of 10% only when no RRR is supplied.
- Preserve the NPV decision rule.
- Use a deterministic 1% step protocol by default.
- Detect conventional and non-conventional cash-flow patterns automatically.
- Produce transparent trial paths for teaching, review, and professional interpretation.
Development
Run the tests with:
python -m unittest discover -s tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evbayiro_irr-0.1.1.tar.gz.
File metadata
- Download URL: evbayiro_irr-0.1.1.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
244b6983178d62816c66ce48a4d304bc79821b45e72e8fc80aa35f8bb60b6cc3
|
|
| MD5 |
8f5b6e9b6f0bf5e0e12c5a27bd3fb198
|
|
| BLAKE2b-256 |
4b2a0d3dbfeae292e974cda94d1042248b5058a0059f55aa447a7172e2b00340
|
Provenance
The following attestation bundles were made for evbayiro_irr-0.1.1.tar.gz:
Publisher:
publish.yml on iammsenaga/evbayiro-irr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evbayiro_irr-0.1.1.tar.gz -
Subject digest:
244b6983178d62816c66ce48a4d304bc79821b45e72e8fc80aa35f8bb60b6cc3 - Sigstore transparency entry: 1655349428
- Sigstore integration time:
-
Permalink:
iammsenaga/evbayiro-irr@fddbf3eec4d3f584340f5b3accfbdd50af047954 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/iammsenaga
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fddbf3eec4d3f584340f5b3accfbdd50af047954 -
Trigger Event:
release
-
Statement type:
File details
Details for the file evbayiro_irr-0.1.1-py3-none-any.whl.
File metadata
- Download URL: evbayiro_irr-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85781119246e5e65f0b047a19434066b90d95389039642e9af0b6c4f5cd6aa64
|
|
| MD5 |
76a29572aef92f7506f8d351e3205b97
|
|
| BLAKE2b-256 |
4c944fe2234974cee33f9494ec09e8d55c0516911196e8239ff52bf17c481890
|
Provenance
The following attestation bundles were made for evbayiro_irr-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on iammsenaga/evbayiro-irr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evbayiro_irr-0.1.1-py3-none-any.whl -
Subject digest:
85781119246e5e65f0b047a19434066b90d95389039642e9af0b6c4f5cd6aa64 - Sigstore transparency entry: 1655349510
- Sigstore integration time:
-
Permalink:
iammsenaga/evbayiro-irr@fddbf3eec4d3f584340f5b3accfbdd50af047954 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/iammsenaga
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fddbf3eec4d3f584340f5b3accfbdd50af047954 -
Trigger Event:
release
-
Statement type: