High-performance financial and business analytics framework for Python
Project description
Pypulate
High-performance financial and business analytics framework for Python
Pypulate is a comprehensive Python framework designed for financial analysis, business metrics tracking, portfolio management, and service pricing. It provides powerful tools for quantitative analysts, business analysts, and financial professionals to analyze data, track KPIs, manage portfolios, and implement pricing strategies.
✨ Features
Parray (Pypulate Array)
- Technical indicators (30+ implementations)
- Signal detection and pattern recognition
- Time series transformations
- Built-in filtering methods
- Method chaining support
KPI (Key Performance Indicators)
- Customer metrics (churn, retention, LTV)
- Financial metrics (ROI, CAC, ARR)
- Engagement metrics (NPS, CSAT)
- Health scoring system
- Metric tracking and history
Portfolio Management
- Return calculations (simple, log, time-weighted)
- Risk metrics (Sharpe, VaR, drawdown)
- Performance attribution
- Portfolio health assessment
- Risk management tools
Service Pricing
- Tiered pricing models
- Subscription pricing with features
- Usage-based pricing
- Dynamic pricing adjustments
- Volume discounts
- Custom pricing rules
- Pricing history tracking
🚀 Installation
pip install pypulate
🔧 Quick Start
Technical Analysis
from pypulate import Parray
# Create a price array
prices = Parray([10, 11, 12, 11, 10, 9, 10, 11, 12, 13, 15, 11])
# Technical Analysis with method chaining
result = (prices
.sma(3) # Simple Moving Average
.ema(3) # Exponential Moving Average
.rsi(7) # Relative Strength Index
)
# Signal Detection
golden_cross = prices.sma(5).crossover(prices.sma(10))
Business KPIs
from pypulate import KPI
kpi = KPI()
# Calculate Customer Metrics
churn = kpi.churn_rate(
customers_start=1000,
customers_end=950,
new_customers=50
)
# Get Business Health
health = kpi.health
print(f"Business Health Score: {health['overall_score']}")
Portfolio Analysis
from pypulate import Portfolio
portfolio = Portfolio()
# Calculate Returns and Risk
returns = portfolio.simple_return([100, 102, 105], [102, 105, 108])
sharpe = portfolio.sharpe_ratio(returns, risk_free_rate=0.02)
var = portfolio.value_at_risk(returns, confidence_level=0.95)
# Get Portfolio Health
health = portfolio.health
print(f"Portfolio Health: {health['status']}")
Service Pricing
from pypulate import ServicePricing
pricing = ServicePricing()
# Calculate Tiered Price
price = pricing.calculate_tiered_price(
usage_units=1500,
tiers={
"0-1000": 0.10,
"1001-2000": 0.08,
"2001+": 0.05
}
)
# Calculate Subscription Price
sub_price = pricing.calculate_subscription_price(
base_price=99.99,
features=['premium', 'api_access'],
feature_prices={'premium': 49.99, 'api_access': 29.99},
duration_months=12,
discount_rate=0.10
)
📊 Key Capabilities
Data Analysis
- Time series analysis and transformations
- Technical indicators and signal detection
- Pattern recognition
- Performance metrics
Business Analytics
- Customer analytics
- Financial metrics
- Health scoring
- Metric tracking and history
Risk Management
- Portfolio optimization
- Risk assessment
- Performance attribution
- Health monitoring
Pricing Strategies
- Multiple pricing models
- Dynamic adjustments
- Custom rule creation
- History tracking
📚 Documentation
Comprehensive documentation is available in the docs directory:
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for financial and business analytics
Project details
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 pypulate-0.1.0.tar.gz.
File metadata
- Download URL: pypulate-0.1.0.tar.gz
- Upload date:
- Size: 315.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
965fc62a7a3532c845de120520aa0bcaf124652cbd4990ae989c8ace08ad5b42
|
|
| MD5 |
c8703365c74744eb2a9d96babc31e420
|
|
| BLAKE2b-256 |
4a2f257ff14cdac79c7214409db47356bc6996fd8d885e4383ed33585fbd8238
|
Provenance
The following attestation bundles were made for pypulate-0.1.0.tar.gz:
Publisher:
publish.yml on A111ir/pypulate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypulate-0.1.0.tar.gz -
Subject digest:
965fc62a7a3532c845de120520aa0bcaf124652cbd4990ae989c8ace08ad5b42 - Sigstore transparency entry: 176967531
- Sigstore integration time:
-
Permalink:
A111ir/pypulate@b98aebd5010fe4996322e9c057516b0c6913742a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/A111ir
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b98aebd5010fe4996322e9c057516b0c6913742a -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pypulate-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pypulate-0.1.0-py3-none-any.whl
- Upload date:
- Size: 71.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77baaa5559ec899bddd4356189cc9d21a195ecff2f3f9da36a332072840e69ca
|
|
| MD5 |
fe3e0b7024fba6fd92ba5e6de788bdf8
|
|
| BLAKE2b-256 |
87ceb8fa18781c7008effd694d9b1fe8802bede29b15481a0153074c940e1656
|
Provenance
The following attestation bundles were made for pypulate-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on A111ir/pypulate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypulate-0.1.0-py3-none-any.whl -
Subject digest:
77baaa5559ec899bddd4356189cc9d21a195ecff2f3f9da36a332072840e69ca - Sigstore transparency entry: 176967537
- Sigstore integration time:
-
Permalink:
A111ir/pypulate@b98aebd5010fe4996322e9c057516b0c6913742a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/A111ir
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b98aebd5010fe4996322e9c057516b0c6913742a -
Trigger Event:
workflow_dispatch
-
Statement type: