Skip to main content

A package for doing great things!

Project description

salesanalyzer

Documentation Status

A python package that helps with the analysis on a sales data. The packagage will contain functions to be used as tools for identifying market segment, predicting future sales and analyzing seasonal revenue trends.

The sales_analyzer package will be an addition to the Python ecosystem as a specialized tool for analyzing retail sales data, targeting small to medium-sized businesses that may not have the resources for an in-house data analytics team and who could benefit from ready-to-use functions for common sales-related tasks. While existing packages such as Pandas and Scikit-learn provide general tools for data manipulation and machine learning predictions, salesanalyzer aims to streamline the process by offering a suite of pre-built, retail-specific analytical functions.

Installation

$ pip install salesanalyzer

Functions

  • segment_revenue_share: Segments products into three categories: cheap, medium, expensive, based on price, and calculates their respective share in total revenue.
  • predictSales: Predicts future sales based on the provided historical data and the target.
  • sales_summary_statistics: Calculates a variety of summary statistics that provide insights into overall sales performance, customer behavior, and product performance.

Usage

salesanalyzer can be used to extract sales data insights from available data.

  1. Set up imports
from salesanalyzer.sales_summary_statistics import sales_summary_statistics
from salesanalyzer.segment_revenue_share import segment_revenue_share
from salesanalyzer.predict_sales import predict_sales
import pandas as pd     # additional import to handle your sales data
  1. Load your sales data as pandas DataFrame

  2. Retrieve the insights:

Summary statistics

sales_summary_statistics(your_sales_data)

The sales_summary_statistics returns a pandas DataFrame with:

  • 'total_revenue': The total revenue generated by all sales.
  • 'unique_customers': The number of unique customers.
  • 'average_order_value': The average value of an order (sum of revenue per invoice).
  • 'top_selling_product_quantity': The product with the highest quantity sold.
  • 'top_selling_product_revenue': The product with the highest total revenue.
  • 'average_revenue_per_customer': The average revenue generated by each customer.

Segment revenue share

segment_revenue_share(your_sales_data, 
                      price_col='UnitPrice', 
                      quantity_col='Quantity')      # replace column names with your data column names

The segment_revenue_share returns a pandas DataFrame showing the total revenue share for each price segment: 'cheap', 'medium', 'expensive'.

Predict sales

predict_sales(your_sales_data, 
              new_data,     # new sales data to base the predictions on
              numeric_features = ['UnitPrice'],
              categorical_features = ['Description', 'Country'], 
              target = 'Quantity', 
              date_feature = 'InvoiceDate')

The predict_sales returns a DataFrame with prediction values, and a printed out MSE score.

Developer notes:

Running The Tests

Run the following command in the terminal from the project's root directory to execute the tests:

pytest tests/

To assess the branch coverage for this package:

pytest --cov=salesanalyzer --cov-branch

Dependencies

This package relies on the following dependencies as outlined in pyproject.toml:

  • python = ">=3.10"
  • scikit-learn = ">=1.6.1"
  • pandas = ">=2.2.3"
  • pytest = ">=8.3.4"
  • jupyter = ">=1.1.1"
  • myst-nb = ">=1.1.2"
  • sphinx-autoapi = ">=3.4.0"
  • sphinx-rtd-theme = ">=3.0.2"

Contributors

  • Yeji Sohn
  • Daria Khon
  • Franklin Aryee

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

salesanalyzer was created by Yeji Sohn, Daria Khon, Franklin Aryee. It is licensed under the terms of the MIT license.

Credits

salesanalyzer was created with cookiecutter and the py-pkgs-cookiecutter template.

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

salesanalyzer_mds-2.0.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

salesanalyzer_mds-2.0.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file salesanalyzer_mds-2.0.1.tar.gz.

File metadata

  • Download URL: salesanalyzer_mds-2.0.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for salesanalyzer_mds-2.0.1.tar.gz
Algorithm Hash digest
SHA256 f3b056430fdeb9ac4dd152f5f5c9ffdcdf6ddd23350c6bdea4e75975c2fe92cc
MD5 2f2f9f5647197a53d6e967e2b84c3271
BLAKE2b-256 ee388c86120ec6e7584bfe9b704838844337c1672fb4f18be8cfc5e2d16b8e58

See more details on using hashes here.

File details

Details for the file salesanalyzer_mds-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for salesanalyzer_mds-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb0514bdb2fa6e6591f65f21b252372870e62e2e8ac2c860e06752f62f6e3dcf
MD5 c9e181446faeeb42835844158a84337e
BLAKE2b-256 7e037eccc4762d7429aec1836479e8bfd37472a3dd3620f53ed54d0dbd02e939

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