You built your business on instinct. Grow it on evidence.

Analytics for small companies: sales and customer numbers, read before you bet on them.

The worked example, UCI Online Retail

Rows in the file541,909

Clean sale lines522,568

The source file as a ruler: 541,909 rows, of which 522,568 are clean sale lines. The 19,341 rows set aside are magnified: 5,268 exact duplicates, 9,251 cancellations netted, 2,327 postage and fees, 2,495 zero or negative.

You already have the data. Nobody has the time.

  1. A customer tells you how they found you, and it never reaches the system.

  2. Two reports, two different totals for the same month.

  3. Three channels, and only a guess at which one carries the other two.

Who we’re not for

You have an analyst in-house.
Give them the time instead.
You haven’t launched yet.
Come back after a few months of real activity.
You need pipelines built.
That’s engineering, and a different team.
You’ve decided, and want numbers to back it.
Sometimes the data says the plan isn’t working.

Three ways in.

01

Cleaning up messy data

The data you already hold, made usable before anyone analyses it.

  • From$30price
  • 4days
  • 2revisions
  • A clean dataset in Excel, CSV or Google Sheets.
  • A log of what we found and did. Outliers flagged, never quietly deleted.
  • Repeatable work that you keep.

Pick this when you know what to do with the data, and its state is in the way.

02

Dashboards and performance tracking

One place to look each week, updated without anyone rebuilding it.

  • To be setprice and timeline
  • A Power BI or Tableau dashboard, connected to your data.
  • A written definition of every number on it.
  • A handover session for whoever uses it.

Pick this when the same report is rebuilt every month, or the team works from different numbers.

03

Testing whether it’s real

A real effect, or a coincidence you’re about to spend money on?

  • 1–2weeks
  • Per projectprice
  • What we tested, what we found, and how confident to be.
  • Charts of the pattern.
  • What the result supports, and what it doesn’t.

Pick this when a decision is expensive. Did the change work, or was that the season?

Five stages. Each one stops the next being guesswork.

  1. Observe

    How the business really runs, and where the data comes from.

  2. Measure

    What’s captured, missing or inconsistent. This sets the ceiling.

  3. Understand

    What the numbers say, checked against how you operate.

  4. Identify

    The few things worth acting on now.

  5. Decide

    Clear options, with what each would take. The decision stays yours.

What we need to start

  1. Access to the data.
  2. One person who knows how the business really works.
  3. About two hours of their time, up front.

What a year of e‑commerce sales shows.

A UK retailer’s transactions, cleaned as shown at the top. Public data: check us.

September to November: a quarter of the calendar, over a third of the money.

Of the 522,568 clean sale lines, 24,754 fall in December 2011, a partial month, and are left out: 497,814 are in the chart’s window.

00.51.01.5£ MILLION, NETDECJANFEBMARAPRMAYJUNJULAUGSEPOCTNOV20102011NET REVENUE, TO SCALE37.5% of the money25% of the calendarOne line flagged, kept£38,970 · z > 7 00.51.01.5£ MILLION, NETDJFMAMJJASON20102011NET REVENUE, TO SCALE37.5% of the money25% of the calendarOne line flagged, kept£38,970 · z > 7 00.51.01.5£ MILLION, NETDJFMAMJJASON20102011NET REVENUE, TO SCALE37.5% of the money25% of the calendarOne line flagged, kept£38,970 · z > 7

n = 497,814 sale lines, Dec 2010 – Nov 2011, 8,321 cancellations netted. December 2011 (partial) left out · Online Retail, UCI ML Repository · computed 28 Sep 2026

Every value, as a table
Net revenue by month, December 2010 to November 2011, with each month’s share of the year. The ringed month holds the flagged line.
MonthNet, £Share
Dec 2010£758,1678.1%
Jan 2011£578,9146.2%
Feb 2011£499,5315.4%
Mar 2011£679,3387.3%
Apr 2011£482,1545.2%
May 2011£731,0887.8%
Jun 2011, 1 flagged line, £38,970, kept£723,9707.8%
Jul 2011£676,8457.3%
Aug 2011£701,3827.5%
Sep 2011£1,011,36510.8%
Oct 2011£1,061,71811.4%
Nov 2011£1,427,12515.3%
Twelve months£9,331,596100.0%

The flagged June line: 60 × £649.50, re-ordered as one set five minutes later. Kept: the retailer’s question, not ours to delete. Two other lines pass the test: one cancelled in January, one outside the window.

Same twelve months

  1. 234

    customers, about 1 in 18, brought half of identified customers’ revenue.

  2. £77,184

    The largest order: 74,215 storage jars, cancelled 16 minutes later. Left in, January reads 13% high.

  3. 15.0%

    of net revenue has no customer ID (123,628 sale lines). Flagged, not deleted.

From a real conversation

Reporting gaps and missing history were the symptom, not the thing to fix.

We expected dashboard work. The problems sat a level below, in how information was captured. Shared with permission.

We are a new practice.

  • 1exploratory session
  • 1proposal written
  • 0completed commercial projects

So: a worked example on public data, not a client list. We price accordingly.

The name is the method.

.describe(

In Python, .describe() is the first thing you run on an unfamiliar dataset: rows, averages, extremes, gaps. You look first. The bracket stays open: what goes inside is your business.

I’m Wafa’a Al-Hayek, and I run .describe( from Gaza.

I studied business administration, joined a software bootcamp in 2022, and moved to data analytics in 2023: analytics, monitoring and evaluation, reporting. Most data work goes wrong on the question, not the technique.

The team is me, for now; a software engineer and a data analyst join as work grows. You’ll always know who’s on your project.

A number doesn’t have to be wrong to mislead you.

We show our method, name what we excluded, and say when a finding is weaker than you hoped. You should be able to check us.

Before you write.

We don’t have anyone who works with data. Is that a problem?
No, that’s who this is for. We need one person who knows how the business runs. Usually that’s you.
We’re not sure what we need. Can we still talk?
Yes. Bring the decision you’re stuck on, not a specification. Finding the right question is part of the job.
What happens to our data?
A read-only connection or a recent export, so we can’t change anything. Used only for your project, never shared, deleted on request. We’ll sign an NDA first if you prefer.
How do we know the work will be any good?
You don’t yet. Judge the worked example, then a small scoped first piece, before anything larger. The first conversation costs nothing.

Tell us about your data.

First reply
Within 24 hours
Languages
English, Arabic

Intake form

The decision you’re stuck on, or the number you don’t trust.

Used only to reply. Deleted on request.

From data to decision

من البيانات إلى القرار