A KPI calculation tool
Project description
KPI Formula
A Python package for KPI (Key Performance Indicator) calculations and data processing.
Installation
You can install the package using pip:
bash pip install kpi-formula-t5
Table of Contents
- Data Management (DataManager)
- Data Processing (DataProcessor)
- Data Validation (DataValidator)
- KPI Calculations (KPICalculator)
- Time Series Analysis (TimeSeriesAnalyzer)
- Complete Example
- Notes
- Requirements
1. Data Management (DataManager)
# Import required modules
from kpi_formula.core.data_manager import DataManager
# Initialize DataManager
manager = DataManager()
# Import CSV
data_item = manager.import_csv('sales_data.csv')
print(f"Headers: {data_item.headers}")
print(f"Total rows: {len(data_item.data)}")
# Update a cell (row_index and col_index start from 0)
manager.update_cell(row_index=0, col_index=2, value="2000")
# Export to CSV
manager.export_csv(data_item, 'output.csv')
2. Data Processing (DataProcessor)
# Import required modules
from kpi_formula.advanced.data_processor import DataProcessor
# Sample data
sales_data = [1000, 1200, 1500, 1300, 1600]
# Moving Average
ma = DataProcessor.moving_average(sales_data, window=3)
print("Moving average:", ma) # [1233.33, 1333.33, 1466.67]
# Year-over-Year Growth
yoy = DataProcessor.year_over_year_growth(sales_data)
print("YoY growth (%):", yoy) # [10.0, 8.33, 6.67, 7.14]
# Percentile Calculation
p75 = DataProcessor.calculate_percentile(sales_data, 75)
print("75th percentile:", p75) # 1500.0
3. Data Validation (DataValidator)
# Import required modules
from kpi_formula.advanced.data_validator import DataValidator
# Validate Numeric Data
data = [100, 200, 'invalid', 300]
cleaned_data, errors = DataValidator.validate_numeric(data)
print("Cleaned data:", cleaned_data) # [100, 200, 300]
print("Errors:", errors) # {'2': 'invalid'}
# Validate Date Format
is_valid = DataValidator.validate_date_format('2024-03-20')
print("Is valid date:", is_valid) # True
4. KPI Calculations (KPICalculator)
# Import required modules
from kpi_formula.advanced.kpi_calculator import KPICalculator
# Return on Investment (ROI)
roi = KPICalculator.roi(revenue=1000, investment=500)
print("ROI (%):", roi) # 100.0
# Conversion Rate
conv_rate = KPICalculator.conversion_rate(conversions=30, visitors=1000)
print("Conversion Rate (%):", conv_rate) # 3.0
# Customer Lifetime Value (CLV)
clv = KPICalculator.customer_lifetime_value(
avg_purchase_value=100,
avg_purchase_frequency=4,
customer_lifespan=3
)
print("CLV:", clv) # 1200.0
# Gross Margin
margin = KPICalculator.gross_margin(revenue=1000, cost=600)
print("Gross Margin (%):", margin) # 40.0
5. Time Series Analysis (TimeSeriesAnalyzer)
# Import required modules
from kpi_formula.advanced.time_series import TimeSeriesAnalyzer
# Sample Time Series Data
data = [100, 120, 150, 140, 160, 180, 200, 220, 240, 260, 280, 300]
# Seasonality Analysis
seasonal = TimeSeriesAnalyzer.seasonality(data, period=4)
print("Seasonal components:", seasonal['seasonal'])
print("Trend components:", seasonal['trend'])
# Simple Forecast
forecast = TimeSeriesAnalyzer.forecast_simple(data, periods=3)
print("Forecast next 3 periods:", forecast)
# Trend Detection
trend = TimeSeriesAnalyzer.detect_trend(data)
print("Trend direction:", trend) # 'upward', 'downward', or 'neutral'
Complete Example
# Import all required modules
from kpi_formula.core.data_manager import DataManager
from kpi_formula.advanced.data_processor import DataProcessor
import pandas as pd
# Create sample data and save to CSV
sales_data = {
'date': ['2023-01-01', '2023-02-01', '2023-03-01'],
'product_id': ['P001', 'P002', 'P003'],
'sales_amount': [1000, 1200, 1500]
}
df = pd.DataFrame(sales_data)
df.to_csv('sales_data.csv', index=False)
# Initialize DataManager
manager = DataManager()
# Import and Process Data
data_item = manager.import_csv('sales_data.csv')
sales_amounts = [float(row[2]) for row in data_item.data]
# Calculate Moving Average
ma = DataProcessor.moving_average(sales_amounts, window=2)
print("Moving average:", ma)
# Update data and export
manager.update_cell(row_index=0, col_index=2, value="2000")
manager.export_csv(data_item, 'updated_sales.csv')
Notes
- All numeric calculations return float values.
- Date formats should be in
YYYY-MM-DD. - CSV files should have headers.
- Index values start from 0.
- Exception handling is recommended in production code.
Requirements
- Python >= 3.6
- pandas >= 1.0.0
- numpy >= 1.18.0
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
kpi_formula_t5-0.1.0.tar.gz
(13.2 kB
view details)
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 kpi_formula_t5-0.1.0.tar.gz.
File metadata
- Download URL: kpi_formula_t5-0.1.0.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77b9eaa5c7f9a5bc8d1625883fdf644a765e8e9aaffd5f7ad09ee871b5338506
|
|
| MD5 |
9df05260a320630536dd74ace32a9090
|
|
| BLAKE2b-256 |
049470870fabe5cb9844c2bd0d5a9250aa9e037169b867ba3cafbd50fef56c74
|
File details
Details for the file kpi_formula_t5-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kpi_formula_t5-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5e47c507a434e8c284fdd1f15aaaef178934a47693640262bbcc463bf79fe83
|
|
| MD5 |
9578df83a3aa84281638a401a7a65134
|
|
| BLAKE2b-256 |
a5a413be749cfae283983ced6a9f5cec3bb2723549b8baded69eadd478e35a19
|