async function analyzeABTest(tenantId: string, apiKey: string, testName: string) {
const [variantA, variantB, conversionsA, conversionsB] = await Promise.all([
// Count users who saw variant A
countEvents(tenantId, apiKey, {
event: 'experiment_viewed',
filterSet: [
{ property: 'properties.experiment', comparison: 'EQUALS', value: testName },
{ property: 'properties.variant', comparison: 'EQUALS', value: 'A' }
]
}),
// Count users who saw variant B
countEvents(tenantId, apiKey, {
event: 'experiment_viewed',
filterSet: [
{ property: 'properties.experiment', comparison: 'EQUALS', value: testName },
{ property: 'properties.variant', comparison: 'EQUALS', value: 'B' }
]
}),
// Count conversions for variant A
countEvents(tenantId, apiKey, {
event: 'conversion_completed',
filterSet: [
{ property: 'properties.experiment', comparison: 'EQUALS', value: testName },
{ property: 'properties.variant', comparison: 'EQUALS', value: 'A' }
]
}),
// Count conversions for variant B
countEvents(tenantId, apiKey, {
event: 'conversion_completed',
filterSet: [
{ property: 'properties.experiment', comparison: 'EQUALS', value: testName },
{ property: 'properties.variant', comparison: 'EQUALS', value: 'B' }
]
})
]);
const conversionRateA = conversionsA / variantA;
const conversionRateB = conversionsB / variantB;
return {
variantA: { views: variantA, conversions: conversionsA, rate: conversionRateA },
variantB: { views: variantB, conversions: conversionsB, rate: conversionRateB },
winner: conversionRateA > conversionRateB ? 'A' : 'B'
};
}