I build the financial operating system
that gives leadership clarity on demand,
not on request.
A forecast they trust, a variance story that points to action, and scenario modeling that makes trade-offs clear before committing — not after.
See the work ↓Cohort analysis showed commissions were funding clients who churned before they paid for themselves. Finance changed the sales incentive structure. Retention climbed 10 points.
Not a process tweak — a system rebuild. SQL pipelines and automated reconciliation replaced manual work across three disconnected tools. Then cut by 60% further at the next role.
Every department was buying software independently. Nobody had mapped real payroll timing across 8 countries. The cash picture was fiction. Connecting the real data found the runway.
These aren't exercises. They're the same problems — rebuilt in SQL so you can see exactly how I think, from business question to decision.
"Our revenue reports don't match what was actually collected."
Built: GL vs. Stripe Reconciliation Engine
$2,898 in phantom revenue on board reports — a duplicate GL posting and a partial payment that slipped through. Joined general ledger against payment processor records, flagged every mismatch.
-- GL vs Stripe · variance flagging
SELECT
gl.customer_name,
gl.gl_total AS gl_amount,
COALESCE(sp.stripe_total, 0) AS stripe_amount,
gl.gl_total - COALESCE(
sp.stripe_total, 0) AS variance,
CASE WHEN gl.gl_total =
COALESCE(sp.stripe_total,0)
THEN 'OK' ELSE 'FLAG'
END AS status
FROM gl_totals gl
LEFT JOIN stripe_totals sp
ON gl.customer_name = sp.customer_name
ORDER BY ABS(variance) DESC;2 flags: duplicate GL entry ($2,499) and partial payment ($399). Prevents overstated revenue reaching the board.
"We know we're churning — we just don't know why, or who."
Built: Cohort Retention Model by Plan Tier
100% churn on the entry-level plan at 3.5 months average. 0% churn on the enterprise plan at 29 months. The data existed — nobody had connected cohort timing to tier structure until this analysis.
-- 6-Month Retention by Cohort
SELECT
DATE_FORMAT(start_date,'%Y-%m') AS cohort,
COUNT(*) AS cohort_size,
SUM(CASE WHEN end_date IS NULL
OR TIMESTAMPDIFF(MONTH,
start_date, end_date) >= 6
THEN 1 ELSE 0
END) AS retained_6m
FROM subscriptions
GROUP BY cohort
ORDER BY cohort;Entry-level plan = 100% churn. Triggers upgrade campaign at month 2 — before the typical churn window opens.
"Revenue is growing — but margin keeps compressing and nobody knows where the cost is going."
Built: Cost-per-Customer Infrastructure Model
The entry-level tier was consuming 70%+ of its own revenue in infrastructure costs. One mid-tier customer was $96/month over their usage ceiling — unrecovered, unnoticed. Blended margin: 55% vs. 65% benchmark.
-- COGS per customer · margin by tier
SELECT
c.company_name, c.tier, c.mrr_usd,
ROUND(
(u.tokens_millions * 2.5
* (1 - u.advanced_model_pct/100)) +
(u.tokens_millions * 8.0
* (u.advanced_model_pct/100)) +
(u.active_users * 6.5)
, 2) AS total_cogs
FROM customers c
INNER JOIN monthly_usage u
ON c.customer_id = u.customer_id
ORDER BY total_cogs DESC;Reprice entry tier, enforce overage billing, route 20% of calls to standard model. Target: 65% blended margin within two quarters.
"We raised a seed round. Now — how long does it last, and what does it take to get to Series A?"
Built: Three-Statement Model with Scenario Toggle
18-month connected P&L → Balance Sheet → Cash Flow. Three scenarios (6%, 14%, 22% MoM growth). The gap between conservative and aggressive reaches $25M by Month 18. The pivotal window is Months 7–10.
-- Cash runway · 18-month · 3 scenarios
SELECT
month_num, scenario, mrr, ebitda,
SUM(net_cash_flow) OVER (
PARTITION BY scenario
ORDER BY month_num
ROWS BETWEEN
UNBOUNDED PRECEDING
AND CURRENT ROW
) + seed_capital AS cash_balance,
MIN(CASE WHEN ebitda > 0
THEN month_num END) OVER (
PARTITION BY scenario
) AS breakeven_month
FROM forecast_model
ORDER BY scenario, month_num;Base case: EBITDA breakeven Month 7. Gate headcount on 12% MoM ARR growth. Trigger Series A process no later than Month 12 — funded close takes 4–6 months.
MRR & ARR Waterfall
New, Expansion, Contraction, Churn · LAG / LEAD window functionsInvoice Aging Analysis
0–30 / 31–60 / 61–90 / 90+ day buckets · DATEDIFF · CASE WHENBudget vs. Actuals Variance
Department-level variance · INNER JOIN · ROLLUPThe CEO stopped building reports.
He started reviewing them.
Built the automation so data flowed in without anyone pulling numbers manually. First time leadership had real-time visibility into MRR, ARR, NRR, cash runway, and budget vs. actuals — all connected, all in one place. The goal: finance as an operating rhythm, not rearview-mirror reporting.
Retention improved
when commissions changed.
Cohort analysis revealed the commission structure was paying Sales on deals that churned before they paid for themselves. Sat down with Sales, CS, Ops, HR, and Engineering — rebuilt the entire framework. Payouts tracked actual revenue over time, not deal closure. Aligned everyone's incentives with client quality.
I've seen this before.
I know what's broken.
The accounting infrastructure exists externally. The internal financial operating system doesn't yet. That's the moment I've walked into — in a cross-border acquisition, in a dual-model SaaS+staffing company across 8 countries, in a portfolio of high-growth clients simultaneously. Built from scratch every time.
I've seen this before. I know what's broken. And I know how to fix it. Not because I work with the numbers — because I take the time to understand how the business actually operates, the layers behind the data, and then build the systems that make it trustworthy.
Julieth Ramos Rivera · Head of Finance · Colombia, available US Eastern hours