Data analyst · Nairobi · Available now

I turn messy financial data into decisions people can act on.

I work with transaction records, M-Pesa statements and business datasets. I reconcile them, find where the money actually goes, and build reports and tools that non-technical people can read. I'm finishing a BSc in Data Science.

Portrait of Monica Masae
SQL · Python · R · Power BI · Tableau
14Analytics projects & tools shipped
4Live apps you can click through
30K+Readers of my technical articles
2026BSc Data Science, Open University of Kenya
Selected work · 2026

Recent projects

A scrapbook of what I've been building and digging into lately: real data, real questions, and a few apps you can poke at.

No. 01 Live app ✦
Aug 2026/Fintech/Python

Bookworths

Bookkeeping for Kenyan Instagram sellers who run the business and the household off one M-Pesa line.

Upload a raw Safaricom statement (CSV, XLSX or PDF) and Bookworths separates business from personal spending, surfaces the fees nobody notices, and produces a one-page Profit Pack a seller can read on their phone. Owner drawings get their own account, so groceries never get counted as business costs.

  1. Rules & tariffs
  2. Entity memory
  3. LLM, only if needed
  4. Ask the seller
Python · Streamlit · SQLite · Claude API · pytest Open app ↗ GitHub ↗
No. 02 Live product ✦
MiskMap home page: 'Architect your SaaS blueprint' with a sample viability score of 72 out of 100
miskmap.app
2025–26/AI product/TypeScript

MiskMap

Turn an app idea into a plan you can actually build.

MiskMap scores an idea's viability out of 100, tears down competitors, and maps features into mind maps and a build checklist, drawing on 40+ market sources. It's live, with paid plans.

/100viability score per idea
40+market sources cross-checked
1blueprint: map, teardown, checklist
Next.js · Convex · Clerk · Claude API · React Flow Visit ↗
No. 03
Bar chart of churn rate by tenure group, highest in the first 12 months
churn by tenure
Sep 2026/Telecom/SQL + Python

Telco Customer Churn

Which customers leave, and what do they have in common?

26.5%overall churn, 7,043 customers
47.4%churn in the first year
42.7%on month-to-month contracts

So what?Focus retention on new, month-to-month, fibre and electronic-check customers. The churned group was worth $139K in monthly charges.

SQL · pandas · seaborn GitHub ↗
No. 04
Bar chart of final campaign response rate by segment; higher-spend recent purchasers respond at 27.4%
who says yes?
Sep 2026/Marketing/Segmentation

Marketing Campaign Performance

Who actually responds to campaigns, and what should the company test next?

14.9%final campaign response
40.6%past acceptors, vs 8.2% for the rest
27.4%recent high spenders

So what?Prioritise recent high spenders, run a separate win-back test for lapsed ones, and get cost and margin data before ranking campaigns by ROI.

pandas · scikit-learn · SciPy GitHub ↗
No. 05
Scatter plot of product sales against profit margin
sales vs. margin
Sep 2026/Retail/Profitability

When More Sales ≠ More Profit

Where is the business making money, and where is it buying revenue at a loss?

12.5%margin on $2.3M in sales
−$17.7Kprofit on Tables, despite $207K in sales
−$156Kacross 1,871 loss-making lines

So what?Review heavy discounts on low-margin lines and the Central region (7.9% margin). Report margin next to sales so revenue can't hide losses.

pandas · matplotlib · SciPy GitHub ↗
No. 06 9 → 1
Feb 2026/E-commerce/Data prep

Brazilian E-commerce (Olist)

What do two years of marketplace orders say about products, payments and customers?

9source tables cleaned & joined
96,478delivered orders, 2016–18
R$179average order value

ApproachA three-notebook pipeline covering prep, exploratory analysis and feature engineering for segmentation, plus a written report.

pandas · Jupyter GitHub ↗
No. 07 Team of 5 KSh ...
May 2026/Civic tech/RAG

County Budget Watchdog

Can a resident find out what their county is actually spending on their ward?

County budgets, audit reports and Hansard records are public, but they're buried in long technical PDFs. With a five-person team, I built an AI assistant that turns them into plain-language, searchable answers. It also includes a gazette monitor for budget amendments, spending dashboards and an SMS/USSD mock-up for people without smartphones.

React · Node · Gemini · Cloud Run GitHub ↗
No. 08 In progress human says ok
Sep 2026/AI pipeline/Python

Internship Outreach Agent

Automate the research, but keep a human on the send button.

It finds real organisations, scores them out of 100, finds verified contacts and drafts personal emails. Nothing is sent until someone approves it in an Excel queue. The AI can't invent names or emails; anything it can't verify is marked UNKNOWN.

Python · pydantic · Gmail API · Excel GitHub ↗
No. 09
Jossie SmartHome logo: gold rooflines with the tagline 'turning houses into homes'
the storefront
Apr 2026/E-commerce/Django

Jossie SmartHome Store

A shop for a home-goods business, from catalogue to order analytics.

A full e-commerce platform with stock tracking, low-stock alerts, WhatsApp order notifications, a REST API and an admin view for sales reporting. It's covered by 79 automated tests.

Django · DRF · PostgreSQL · Tailwind GitHub ↗

Psst: the Streamlit apps nap when nobody's around. If you see "Zzzz", click wake and give them about 30 seconds.

Earlier work

Foundational projects from 2025.

  • 2025

    EduMap Resource AllocationPython · Streamlit · Plotly

    My data science capstone: a need-based ranking model for schools, built as a self-serve dashboard. It flagged high-enrolment rural schools with poor facilities that had been passed over.

    App ↗ GitHub ↗
  • 2025

    Freelance Earnings AnalyticsPython · Pandas · Matplotlib

    Seasonality analysis with rolling averages showed Q1 runs about 25% below the annual average every year, a pattern predictable enough to plan cash around.

    App ↗ GitHub ↗
  • 2025

    Superstore Financial DashboardR · dplyr · tidyr · R Shiny

    A self-service Shiny app for year-on-year profitability. It showed that Tables sell well but lose money, which led to the deeper 2026 investigation.

    GitHub ↗
  • 2025

    Bike Store Revenue AnalyticsPostgreSQL · CTEs · window functions

    Multi-table revenue and growth analysis for board reporting. The top 20% of customers drove over 60% of revenue, which made the case for retention spend.

    GitHub ↗
  • 2025

    Excel AnalysisExcel · PivotTables

    Pivot-table analyses documented with screenshots.

    GitHub ↗
Data bites

How I think through a problem

Short write-ups on real data questions. They focus on the reasoning, not just the answer.

Bookkeeping · M-Pesa

Why do small sellers' profit numbers come out wrong?

Many sellers run the shop and the household from the same M-Pesa line. Most tools count every outgoing payment as a business expense, so groceries end up reducing "profit".

3000Owner drawings get their own account in Bookworths. They're equity, not an expense.

Retail · Profitability

Can a product bring in high revenue and still lose money?

Yes. A revenue-only view hides it. Add a profit rate, SUM(profit)/SUM(sales), by sub-category with a threshold flag and the problem products stand out.

Tables$207K in sales, −$17.7K in profit.

Marketing · ROI

Is the campaign with the best response rate the best campaign?

Campaign 4 had the highest acceptance (7.5%) and Campaign 2 the lowest (1.3%). Without cost, offer value or margin data, though, that only ranks response. It doesn't rank return on investment.

RuleAsk for cost data before moving budget.

Churn · Causation

Do electronic-check payments cause churn?

Electronic-check customers churn at 45.3%, but the dataset has no dates, satisfaction scores or support history. The payment method probably marks a type of customer rather than causing them to leave.

LabelCall it a descriptive pattern to investigate, not a cause.

SQL · Technique

When should you use a window function instead of GROUP BY?

GROUP BY collapses rows into a summary. A window function keeps every row while adding running totals, ranks or period-on-period change, e.g. LAG(revenue,1) OVER (PARTITION BY region ORDER BY month).

RuleIf you need the aggregate and the rows together, use a window function.

KPI design

How do you build KPIs that connect to business goals?

Start from the goal and work backwards: what tells us we're on track, what daily metric feeds that, and where does the data come from?

ChainGoal → outcome → leading indicator → operational metric → source.

About

From writing about data
to working in it

I started out explaining data to developers. Now I do the analysis myself, and explaining it clearly is still half the job.

As a technical writer at Section.io, my articles on analytics reached more than 30,000 readers. The more I wrote about analysis, the more I wanted to be the one doing it. I built my foundations at Moringa School and through freelance work for clients in finance and operations.

Lately I've been building tools on top of the analysis. Bookworths reconciles small sellers' M-Pesa statements into readable profit reports, and MiskMap scores app ideas against real market data.

I'm finishing a BSc in Data Science at the Open University of Kenya. I'm most interested in financial and operational data, where the analysis feeds directly into decisions about pricing, planning and where resources go.

Experience

  1. 2021–now
    Freelance Data AnalystDashboards, financial analysis and KPI frameworks for finance & ops clients.
  2. 2021–23
    Technical Writer & Peer Reviewer, Section.ioData and tech articles for 30,000+ readers.

Education

  1. 2024–26
    BSc Data Science, Open University of KenyaStatistical modelling, financial analytics, ML, databases.
  2. 2021–22
    Software Development, Moringa SchoolCertificate of Excellence.
  3. 2020–22
    Diploma, Project Planning & Mgmt, University of NairobiPlanning, resource management, stakeholders.

Data & SQL

  • SQLadvanced
  • PostgreSQL · MySQL
  • CTEs, window functions
  • Query optimisation
  • SQLite

Languages

  • Python: pandas, NumPy, SciPy
  • scikit-learn
  • R: dplyr, tidyr, ggplot2
  • Excel & Power Queryadvanced
  • TypeScript

BI & visualisation

  • Power BI · Tableau · Looker
  • Streamlit · R Shiny
  • Plotly · Matplotlib · Seaborn
  • Recharts · React Flow

Methods & tooling

  • Reconciliation & financial analytics
  • KPI frameworks · segmentation
  • LLM pipelines with human review
  • Git · Jupyter · pytest
Available immediately

Need someone to make your numbers add up?

I'm looking for data analyst roles in fintech, finance and operations. If you need messy data cleaned up, a dashboard people will actually use, or an hours-long weekly report automated, get in touch.

monica.w.masae@gmail.com →