Skip to main content

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

  1. Data Management (DataManager)
  2. Data Processing (DataProcessor)
  3. Data Validation (DataValidator)
  4. KPI Calculations (KPICalculator)
  5. Time Series Analysis (TimeSeriesAnalyzer)
  6. Complete Example
  7. Notes
  8. 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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kpi_formula_t5-0.1.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

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

Hashes for kpi_formula_t5-0.1.0.tar.gz
Algorithm Hash digest
SHA256 77b9eaa5c7f9a5bc8d1625883fdf644a765e8e9aaffd5f7ad09ee871b5338506
MD5 9df05260a320630536dd74ace32a9090
BLAKE2b-256 049470870fabe5cb9844c2bd0d5a9250aa9e037169b867ba3cafbd50fef56c74

See more details on using hashes here.

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

Hashes for kpi_formula_t5-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5e47c507a434e8c284fdd1f15aaaef178934a47693640262bbcc463bf79fe83
MD5 9578df83a3aa84281638a401a7a65134
BLAKE2b-256 a5a413be749cfae283983ced6a9f5cec3bb2723549b8baded69eadd478e35a19

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page