Skip to main content

A custom library for calculating expense splits and settlements

Project description

SettleUp Calculator Library

A custom Python library for calculating expense splits and settlements.

Features

  • Calculate expense splits using multiple methods:
    • Equal split
    • Percentage-based split
    • Exact amount split
  • Calculate net balances for users
  • Generate minimum settlement transactions

Installation

pip install settleup-calculator

Or install from source:

python setup.py install

Usage

Basic Expense Split

from settleup_calculator import ExpenseCalculator, SplitMethod
from decimal import Decimal

# Equal split
splits = ExpenseCalculator.calculate_split(
    total_amount=Decimal("100.00"),
    participants=["user1", "user2", "user3"],
    split_method=SplitMethod.EQUAL
)
# Result: {"user1": Decimal("33.33"), "user2": Decimal("33.33"), "user3": Decimal("33.34")}

# Percentage split
splits = ExpenseCalculator.calculate_split(
    total_amount=Decimal("100.00"),
    participants=["user1", "user2"],
    split_method=SplitMethod.PERCENTAGE,
    participant_data={
        "user1": {"percentage": 60},
        "user2": {"percentage": 40}
    }
)
# Result: {"user1": Decimal("60.00"), "user2": Decimal("40.00")}

# Exact split
splits = ExpenseCalculator.calculate_split(
    total_amount=Decimal("100.00"),
    participants=["user1", "user2", "user3"],
    split_method=SplitMethod.EXACT,
    participant_data={
        "user1": {"amount": 50},
        "user2": {"amount": 30},
        "user3": {"amount": 20}
    }
)
# Result: {"user1": Decimal("50.00"), "user2": Decimal("30.00"), "user3": Decimal("20.00")}

Calculate Settlements

from settleup_calculator import SplitCalculator

expenses = [
    {
        "paid_by": "user1",
        "amount": Decimal("100.00"),
        "participants": ["user1", "user2"],
        "split_method": "equal"
    },
    {
        "paid_by": "user2",
        "amount": Decimal("50.00"),
        "participants": ["user1", "user2"],
        "split_method": "equal"
    }
]

balances = SplitCalculator.calculate_balances(expenses)
settlements = SplitCalculator.calculate_settlements(balances)

License

MIT License

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

settleup_calculator-1.0.1.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

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

settleup_calculator-1.0.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file settleup_calculator-1.0.1.tar.gz.

File metadata

  • Download URL: settleup_calculator-1.0.1.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for settleup_calculator-1.0.1.tar.gz
Algorithm Hash digest
SHA256 88d5ed38cd041868414a7340e9e867383dfbf82e5cf3eeeff71cc291dbe05294
MD5 4323a67be54b87d74c0a983828a85a58
BLAKE2b-256 2789920e193340c49c9210814fe094b1ed2cdb469973a0508ee12704ea7a3727

See more details on using hashes here.

File details

Details for the file settleup_calculator-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for settleup_calculator-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 36e04fad9b2a9f2b19b698c3c82da4ac7ee44bea0a71ffe95f6bfee59df6a62c
MD5 719bd8046d8d87cb250d937e981922f0
BLAKE2b-256 cc434e71fee459895380355dd50a13cecaa273cbe1a80cab478ae3b0b79275f7

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