# MA-SET1: six independent analytical modules

Private portfolio edition, run `ma-set1-portfolio-20261004-v1`, 4 October 2026. This new Python pipeline recomputes the supplied workbook. It does not certify the historical report, presentation or earlier cross-module interpretations.

## Inspect and reproduce

The package includes aggregate JSON/CSV outputs, source identity, calculation code, pinned dependencies, a file inventory and synthetic edge tests. No customer identifiers, transaction rows or original workbook are included. The original workbook's redistribution rights and acquisition date are unknown. There is no verified public download URL. Obtain your authorized copy of `DATA_MA_SET1.xlsx`; do not substitute a similarly named workbook.

Use Python 3.12 in a virtual environment:

    python -m pip install -r requirements.txt
    python verify.py
    python -m unittest test_calculations.py
    python verify.py --input "/path/to/DATA_MA_SET1.xlsx"

The first verification checks all packaged files. Full replay verifies the source's 1,012,447 bytes and SHA256 `eb654fca88a165ec6ac3ea5c65f65925d79cd4b287ecb5df46c4c7f3a592abb9`, recomputes every aggregate into a temporary directory and compares it byte for byte with the retained baseline. Python floats may vary slightly on different runtimes; a mismatch fails and must be inspected, never silently accepted. To retain a new output directory:

    python analyze.py --input "/path/to/DATA_MA_SET1.xlsx" --output recomputed

## Definitions and boundaries

| Module | Grain and calculation | Material limits |
|---|---|---|
| Website | 12 monthly rows; visitors sum monthly counts, not deduplicated annual people. Spend divided by visitors is weighted cost per visitor; Pearson correlation uses the 12 spend/visitor pairs. | Month labels have no year. Spend is explicitly USD. No conversion or revenue data; no ROAS, causal attribution or advertising effectiveness estimate. |
| Store | 21,900 source rows, one unique date per row. Sum supplied revenue; every row reconciles to units × unit price. Aggregate by Store and Category. | Dates 2024-01-01 through 2083-12-16 are an artificial analytical calendar in the context guide, not evidence of observed future sales. Currency is unspecified. No date-trend or city join. |
| Sparkline | Match SALE and TARGET blocks on the exact 11 city labels and 7 weekday columns: 77 pairs. Attainment = sum(actual) / sum(target), not mean of cell percentages. | Currency, actual calendar week and observation period are unspecified. City labels are not a crosswalk to Store labels. Displayed figures may be floating-point rounded. |
| RFM | 2,200 unique transactions, 667 customers. Frequency = transaction count; monetary = sum of recorded Amount. Recency uses calendar days since latest customer transaction, measured at 2026-04-12 (maximum source date + one day). | Observed amounts, not estimated lifetime value. Currency unspecified. Unequal customer observation histories. Recency-cohort amounts include the customers’ full source transaction window, not expenditure within the recency interval. The top 67 are ceil(10% × 667), ranked by recorded amount; this is 10.045% of customers, not an exact percentile definition. Cohorts 0–30, 31–90, 91–180, 181+ days are fixed descriptive bins, not trained segments. |
| Pricing | 77 unique numeric customer identifiers; descriptive mean/median/range for OTT, News and Fitness. | Measurement units and period are undocumented. Treat as recorded values, not revenue, willingness to pay or engagement. Zero exact key matches with text RFM IDs; formatting alone is not identity evidence. No join is made. |
| Perception | Ten brand rows, price and quality ratings on a 1–10 scale; difference = quality minus price. | Respondent counts, measurement uncertainty and survey method are unavailable. No actual pricing, demand, churn or brand-outcome estimate. |

The context guide is a secondary interpretation aid. Numerical results come directly from the workbook. No cross-module join, forecast or causal model is performed. Modules with unknown units remain in source units. Page charts have adjacent tables; aggregate CSVs are an accessible companion. These materials are for private inspection. Public release requires the owner's later instruction and a source-rights review.
