Universal Sales Intelligence Engine — drop in any dataset, get standardized reports
Project description
salesengine
Universal Sales Intelligence Engine — Drop in any sales dataset, answer a short questionnaire, get standardized executive-ready reports. Works across industries.
Install
pip install salesengine
For statistical tests (chi-squared, Cramér's V):
pip install salesengine[stats]
Quick Start
Two-step workflow
import salesengine as se
# Step 1: Scan your data → generates a JSON questionnaire
se.scan("sales_data.csv")
# Step 2: Fill in the JSON, then run
se.run("sales_data.csv", "sales_data_intake.json")
Command line
salesengine scan sales_data.csv
salesengine run sales_data.csv sales_data_intake.json
Use individual functions
from salesengine import clean_numeric, classify_customer_movement, weighted_average
# Clean messy financial data
df['Revenue'] = clean_numeric(df['Revenue']) # handles $, commas, (negatives), N/A
# Analyze customer churn with 4-level classification
movement = classify_customer_movement(
current_customers=set(df_current['ID']),
prior_customers=set(df_prior['ID']),
)
# Returns: left_entirely, left_segment, migrated_out, new_acquisition, retained
How It Works
1. Scan → Auto-detect columns
The scanner reads your CSV/Excel and matches columns to 33 logical field names using pattern matching against 100+ common naming conventions.
2. Questionnaire → Define your business
A JSON questionnaire with 5 sections:
- Business Context — industry, units, currency
- Field Mapping — confirm auto-detected columns
- Business Rules — what is "lost customer"? what is "good lead"?
- Thresholds — numeric cutoffs for your industry
- Report Preferences — toggle analyses on/off
3. Config → Power the functions
Your answers become a ProjectConfig that maps logical names to your column names. Functions that need missing fields auto-skip.
4. Report → Formatted Excel
12+ tab workbook with executive summary, volume/revenue/margin breakdowns, customer churn, segment comparisons, and customer rankings.
Cross-Industry
Same code, different config:
| Industry | "Customer" | "Volume" | "Affinity" |
|---|---|---|---|
| Food Distribution | Restaurant | Pounds | Cuisine type |
| SaaS | Account | MRR | Industry vertical |
| Healthcare | Provider | Procedures | Specialty |
| Retail | Store | Units sold | Department |
| Manufacturing | Distributor | Cases | End-use |
22 Functions in 9 Categories
| Category | Functions |
|---|---|
| Data Cleaning | clean_numeric, clean_currency, clean_dataframe |
| Statistical Analysis | cramers_v, gini_coefficient, run_statistical_summary |
| Weighted Aggregation | weighted_average, aggregate_to_grain |
| Customer & Churn | classify_customer_movement, identify_non_buyers |
| Index / Benchmark | calculate_price_index, classify_index, detect_index_conflicts |
| Confidence | score_confidence, classify_confidence_band |
| Banding / Tiering | assign_band, calculate_priority_score |
| Excel Formatting | get_excel_styles, style_header_row, auto_width, df_to_sheet |
| File Inspection | inspect_csv |
Configuration
from salesengine import ProjectConfig, set_global_config
cfg = ProjectConfig(
project_name="Q1 Review",
industry="SaaS"
)
cfg.fields['customer_id'] = 'Account_ID'
cfg.fields['volume_cy'] = 'MRR_Current'
cfg.fields['segment'] = 'Plan_Tier'
# Disable functions you don't need
cfg.disabled_functions.add('calculate_price_index')
# Adjust thresholds
cfg.index_thresholds = {'extreme_high': 2.0, 'high': 1.20, 'low': 0.80}
set_global_config(cfg)
License
MIT
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
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 salesengine-0.3.1.tar.gz.
File metadata
- Download URL: salesengine-0.3.1.tar.gz
- Upload date:
- Size: 48.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6c8f58f58b8f7f9e9a90861bed9d3e9e4b0d5b53d8587a334e6fd7bc5ec4e00
|
|
| MD5 |
0d32742cc4e72442eeb119bb1daba37d
|
|
| BLAKE2b-256 |
c4c678e8e91fcc75456de38f56b74cc8fe6e07bac44d9f4086bfc76d7e837341
|
File details
Details for the file salesengine-0.3.1-py3-none-any.whl.
File metadata
- Download URL: salesengine-0.3.1-py3-none-any.whl
- Upload date:
- Size: 53.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32198a3e074c6d5469c2fe08c3369195a848e57f83c15d6c48af73ae307dc591
|
|
| MD5 |
9a534957d9f32f8b20b63349e5492241
|
|
| BLAKE2b-256 |
3b354c2aa9e29a7a7135d52a8c0e68d8f41689478051eabcd7eece9f293bec9d
|