Contributing to ACTUNEO

We welcome contributions from the actuarial community! This guide will help you get started.

Getting Started

  1. Fork the repository on GitHub

  2. Clone your fork locally

  3. Create a new branch for your feature

  4. Make your changes

  5. Run tests

  6. Submit a pull request

Development Setup

# Clone your fork
git clone https://github.com/YOUR_USERNAME/ACTUNEO.git
cd ACTUNEO

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

Code Style

We follow PEP 8 style guidelines. Format your code using:

black actuneo/
flake8 actuneo/

Running Tests

Before submitting a pull request, ensure all tests pass:

pytest

# With coverage
pytest --cov=actuneo --cov-report=html

Writing Tests

All new features should include tests. Place tests in the tests/ directory:

# tests/test_new_feature.py
import pytest
from actuneo.module import NewFeature

def test_new_feature():
    nf = NewFeature()
    assert nf.method() == expected_result

Documentation

Update documentation for any API changes:

  1. Update docstrings in the code

  2. Update relevant .rst files in docs/

  3. Build documentation locally to verify:

cd docs
make html
# Open _build/html/index.html in your browser

Areas for Contribution

African Mortality Tables

We need contributions of:

  • Localized mortality data

  • Country-specific mortality tables

  • Mortality improvement models for African populations

Regulatory Frameworks

Help implement:

  • IPEC Zimbabwe reporting requirements

  • PASA compliance tools

  • SAM (Statutory Actuarial Memorandum) templates

  • Other African regulatory frameworks

Pension Systems

Develop models for:

  • Defined benefit schemes

  • Defined contribution schemes

  • Hybrid pension plans

  • Contribution schedules

IFRS 17

Implement:

  • GMM (General Measurement Model)

  • VFA (Variable Fee Approach)

  • PAA (Premium Allocation Approach)

  • CSM (Contractual Service Margin) calculations

Loss Reserving

Add methods for:

  • Chain-ladder technique

  • Bornhuetter-Ferguson method

  • Stochastic reserving models

  • Loss development triangles

Documentation

  • Improve API documentation

  • Add tutorials and examples

  • Create video tutorials

  • Translate documentation

Testing

  • Expand test coverage

  • Add integration tests

  • Create benchmark tests

  • Test on different platforms

Pull Request Process

  1. Update the README.md with details of changes if applicable

  2. Update documentation

  3. Ensure tests pass

  4. Update the CHANGELOG.md

  5. The PR will be merged once reviewed by maintainers

Community Guidelines

  • Be respectful and inclusive

  • Provide constructive feedback

  • Help others learn and grow

  • Follow the Code of Conduct

Contact

Thank you for contributing to ACTUNEO!