Zaid Bin Haris Available for new work
All work

Azlytics

Giving merchants a number they can act on, when eleven sources disagree

Profit analytics for direct-to-consumer Shopify brands. Revenue is not what lands in the bank, so the whole dashboard is built on contribution margin instead.

  • Year
    2026
  • Shopify rating
    5.0
  • Stack
    Next.js, Shopify GraphQL, Node.js
  • Status
    Live

app.azlytics.ioLive, open it in a new tab

The AzLytics marketing page, showing a sample marketing-pulse dashboard with ratio, ad spend, new customers and net profit tiles.
The public marketing page. The figures shown there are sample data.

The problem

A direct-to-consumer brand spending between ten and a hundred thousand a month on advertising has no shortage of dashboards. What it does not have is one number it trusts. Shopify reports revenue, the ad platforms each report their own attributed conversions, and the email tool reports a third thing. All of them are measuring something real and none of them is measuring profit.

The brands in this position are also the ones without a data analyst, so reconciling it by hand is not an option either.

The constraint

Around eleven integrations feed the product, including Shopify, Meta, Google Ads, Klaviyo, GA4, TikTok, Amazon and BigQuery. They disagree on attribution windows, on what counts as a customer, and on when a day ends. Any figure the product shows has to survive a merchant checking it against the source.

The decision

Metrics are computed deterministically first. Acquisition, retention, profitability, funnel and blended return on ad spend are all worked out in code, from reconciled data, before any language model is involved.

Only then does the model get called, and its entire job is narrating plain-English insight over numbers that already exist. It never does the arithmetic.

That split is the product, not an implementation detail. An analytics tool that lets a model compute margin produces confident wrong numbers, and a merchant deciding where to move ten thousand in ad spend cannot audit a hallucination. Getting this boundary wrong would not show up as an error; it would show up as a plausible figure that happened to be false.

The result

Live as a Built for Shopify app, rated 5.0, serving paying merchants. The daily briefing reduces the first useful read of the numbers to about ninety seconds.

At a glance

My part
Data-to-insight pipeline
Users
Paying Shopify merchants
Sources
Shopify, Meta, Google Ads
Status
Live, Built for Shopify