mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 12:15:23 +02:00
58 lines
2.0 KiB
TypeScript
58 lines
2.0 KiB
TypeScript
import fs from 'fs';
|
|||
|
|
import { processCSV } from './services/dataProcessor';
|
||
|
|
import { processAdsExcel, mergeSalesAndAdsData } from './services/dataProcessor';
|
||
|
|
import { computeDiD } from './services/experimentAnalysis';
|
||
|
|
|
||
|
|
async function runTest() {
|
||
|
|
console.log("Loading sales data...");
|
||
|
|
const csvStr = fs.readFileSync('public/Craze analytix 2026.csv', 'utf-8');
|
||
|
|
const sales = await processCSV(csvStr);
|
||
|
|
|
||
|
|
console.log("Loading ads data...");
|
||
|
|
const excelBuffer = fs.readFileSync('public/ads.xlsx').buffer;
|
||
|
|
const ads = await processAdsExcel(excelBuffer);
|
||
|
|
|
||
|
|
console.log("Sales rows:", sales.length);
|
||
|
|
console.log("Ads rows:", ads.length);
|
||
|
|
|
||
|
|
// Check INKEE DE explicitly
|
||
|
|
const inkeeSales = sales.filter(s => s.asin.includes('B0CQ'))
|
||
|
|
console.log("INKEE Sales rows:", inkeeSales.length);
|
||
|
|
|
||
|
|
const inkeeAds = ads.filter(a => a.asin.includes('B0CQ'))
|
||
|
|
console.log("INKEE Ad rows:", inkeeAds.length);
|
||
|
|
|
||
|
|
console.log("Merging...");
|
||
|
|
const merged = mergeSalesAndAdsData(sales, ads);
|
||
|
|
|
||
|
|
const mergedInkee = merged.filter(m => m.asin.includes('B0CQ') && m.year === 2024);
|
||
|
|
|
||
|
|
const totalCost = mergedInkee.reduce((sum, r) => sum + (r.cost || 0), 0);
|
||
|
|
const totalAdSales = mergedInkee.reduce((sum, r) => sum + (r.salesAds || 0), 0);
|
||
|
|
|
||
|
|
console.log("Merged INKEE total cost 2024:", totalCost);
|
||
|
|
console.log("Merged INKEE total ad sales 2024:", totalAdSales);
|
||
|
|
|
||
|
|
const experiment = {
|
||
|
|
id: "INKEE_DE",
|
||
|
|
name: "INKEE DE Test",
|
||
|
|
status: "active",
|
||
|
|
type: "advertising",
|
||
|
|
asins: ["B0CQXNBGBQ"], // Assuming this is INKEE DE
|
||
|
|
control_asins: [],
|
||
|
|
marketplace: "Amazon DE", // Matching the UI
|
||
|
|
start_date: "2024-03-01",
|
||
|
|
end_date: "2024-04-15",
|
||
|
|
baseline_start_date: "2024-01-01",
|
||
|
|
baseline_end_date: "2024-02-28",
|
||
|
|
primary_metric: "acos"
|
||
|
|
} as any;
|
||
|
|
|
||
|
|
console.log("Running DiD...");
|
||
|
|
const did = computeDiD(experiment, merged);
|
||
|
|
console.log("DiD Output:", JSON.stringify(did.metrics, null, 2));
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
runTest().catch(console.error);
|