Gabriela Aragón

Marketing & Sales Data Analyst · San Salvador · Remote for U.S. teams

Teams bring me in when the numbers don't add up.

I turn sales, ecommerce, paid media and social data into decisions people act on, from the SQL query to the dashboard to the proposal on the table. Ten years in marketing and sales, six of them remote with U.S. companies. What I aim for in every role is a clear before and after.

Portrait of Gabriela Aragón
Bilingual English / Spanish · MBA · Google Analytics certified
$1.5Mincremental revenue from a Google Ads rebuild
+40%conversion rate in six months, with CPA down 25%
$5.7Min sales surfaced that BI reports were silently missing
5 days → <1monthly reporting cycle, every figure still checked

Real results from my work at Ethnix Group and AII Beauty.

Selected work

Eight problems, and what changed after

About the figures. These case studies recreate real work for beauty, retail and service brands. Brand names are removed and the numbers in the charts are fictional to protect client data. The problems, the methods and the decisions are real. Results marked Real result are actual figures.

Sales dashboardsKPI design

A sales dashboard leadership actually opens

One page that answers what every Monday meeting asks: are we growing, where, and what is driving it.

Before

Sales lived in separate exports per channel and region. Every meeting opened with a debate about which number was right.

After

One data model, one definition per KPI, and the same view for every channel and region: revenue against last year, orders, average order value, margin, channel mix, top products and regions.

Ecommerce sales performance dashboard: net revenue $4.82M up 12.4%, orders 61,340, average order value $78.60, gross margin 58.2%, monthly revenue versus prior year, revenue by channel, top five products and revenue by region
Sample build with fictional data. The production versions run in Power BI and DOMO on top of SQL Server.

What I did

  • Defined each KPI once (net revenue, comparable-base growth, AOV, margin change in points) and documented the logic, so channels and regions are measured the same way.
  • Pulled the data with SQL straight from the ERP, so nothing is lost between the source and the visual.
  • Reused the same structure for 7 regional group reports and 120+ sales-rep scorecards, each one reconciled to the dollar.

Tools

SQL Server, Power BI (DAX), DOMO, Looker Studio, Excel

Built for

National sales director, regional managers, ecommerce director, company owner

Sales analysisRoot cause

An 84% drop that wasn't lost customers

A regional sales group was down 83.8% year to date, and everyone assumed its customers were leaving.

Before

The read was customer loss, and the plan on the table was a win-back campaign for the whole region.

After

Tracing every account showed 21 of 35 "lost" accounts still buying, just through other sales groups. The real problems were concentration in three brands and one key account that went to zero. A different diagnosis led to a different fix.

$0.0M $0.5M $1.0M $1.5M $2.0M $2.5M Prior YTD: $2.40M $2.40M Prior YTD 21 accounts now buying via other groups: −$1.21M −$1.21M 21 accounts now buying via other groups 3 core brands down: −$0.41M −$0.41M 3 core brands down 1 key account to $0: −$0.33M −$0.33M 1 key account to $0 All other: −$0.06M −$0.06M All other Current YTD: $0.39M $0.39M Current YTD
Where the decline came from, prior YTD to current YTD. Fictional figures, real structure.

What I did

  • Traced each customer code across all sales groups and years to see where the volume went.
  • Measured growth on a comparable base and ran a Pareto of brands and customers.
  • Recommended remapping the migrated accounts, resetting the group's targets on a comparable base, and a recovery plan for the key account.

Tools

SQL, Excel, Power BI

Business proposalRetail analytics

Add stores, or make each store sell more?

A retail partner reported sales, units and store counts. I added one metric, sales per door, and it changed the distribution conversation.

Before

Brands were judged on total sales growth. A brand that lost stores looked like a brand in trouble, and adding stores looked like the answer.

After

Sales per door split the portfolio in two. Brand A lost 45% of its doors while each remaining door sold 13% more, a case to win distribution back. Brand B added doors while each door sold 37% less, so more stores were not the fix.

-50% -40% -30% -20% -10% 0% +10% +20% -40% -30% -20% -10% 0% +10% +20% Change in door count vs. last year Change in sales per door Fewer doors, each one stronger More doors, each one weaker Brand A: doors -45%, sales per door +13% Brand A Brand B: doors +7%, sales per door -37% Brand B Brand C: doors +5%, sales per door -9% Brand C Brand D: doors -2%, sales per door +3% Brand D Brand E: doors +1%, sales per door -2% Brand E Brand F: doors -12%, sales per door +4% Brand F Brand G: doors +15%, sales per door +11% Brand G
Each dot is a brand. Sales per door = (1 + sales change) ÷ (1 + door change) − 1. Fictional figures.

The proposal

  1. Take Brand A's store recovery to the retail buyer, backed by its sales-per-door results.
  2. Pause door expansion for Brand B and fix assortment and price first.
  3. Report every brand on two sources side by side, retailer dollars and loyalty-member shoppers, so a gap between them shows up early.

Tools

Retailer supplier portal, loyalty-member analytics, Excel

EcommerceGA4Funnel

Up 46% on the month, down 46% on the year

A DTC store celebrated a strong July. The year-over-year view told a different story.

Before

Reporting compared each month with the one before it, so July looked like a turnaround.

After

A dual-lens view, month over month and year over year on every metric, showed revenue still far below last year, conversion collapsing, and a paid social campaign producing product views and zero purchases. A later month also exposed a bot attack hiding inside "Direct" traffic.

$0K $10K $20K $30K Jan Feb Mar Apr May Jun Jul Aug Sep Jan this year: $16.2K (last year $21.0K) Feb this year: $14.8K (last year $19.5K) Mar this year: $13.9K (last year $22.4K) Apr this year: $12.4K (last year $20.8K) May this year: $9.6K (last year $21.6K) Jun this year: $7.2K (last year $18.9K) Jul this year: $10.5K (last year $19.4K) Aug this year: $9.8K (last year $18.1K) Sep this year: $11.1K (last year $25.9K) Jan last year: $21.0K Feb last year: $19.5K Mar last year: $22.4K Apr last year: $20.8K May last year: $21.6K Jun last year: $18.9K Jul last year: $19.4K Aug last year: $18.1K Sep last year: $25.9K Last year This year +46% MoM −46% YoY
Monthly DTC revenue, this year vs. last year. Fictional figures.
ChannelProduct viewsPurchasesView to purchase
Email / SMS980313.16%
Organic search2,910381.31%
Paid search2,270291.28%
Direct2,640210.80%
Paid social 0 sales2,01400.00%
One month by channel. Fictional figures except the paid social row.
30 daysPause the zero-purchase ad set. Filter bot traffic. Track add_to_cart and begin_checkout as key events.
60 daysAudit organic search in Search Console and fix the Merchant Center feed.
90 daysRebuild paid social around the products that already convert through email.

Tools: Google Analytics 4, Google Tag Manager, Search Console, Merchant Center, Shopify data

Social mediaSocial analytics

Followers up 29%, engagement down by a third

Monthly TikTok and Instagram reporting across 13 brand accounts.

Before

Follower growth was the headline metric, and it looked great every month.

After

Followers and engagement were moving in opposite directions, a pattern consistent with paid amplification that the reports didn't label. Collab posts were also inflating engagement rate. I split organic from paid and restated engagement without collabs before the numbers reached leadership.

Followers (thousands) 150K 200K 250K Jan May Sep Jan: 188K Feb: 195K Mar: 203K Apr: 214K May: 226K Jun: 231K Jul: 236K Aug: 240K Sep: 242K 188K 242K Engagement rate 2.0% 3.0% 4.0% Jan May Sep Jan: 4.1% Feb: 4.0% Mar: 3.7% Apr: 3.5% May: 3.3% Jun: 3.4% Jul: 3.1% Aug: 2.9% Sep: 2.7% 4.1% 2.7%
Two charts on the same time axis instead of one chart with two scales. Fictional figures.

What I did

  • Pulled monthly series per brand and validated follower counts against the platform's own exports.
  • Explained spikes with the posts behind them: giveaways, trends, creator collabs, viral formats.
  • Compared posting cadence and content mix by brand against views and engagement.

Tools

Dash Social, Meta Business Suite, Metricool, Hootsuite, Later, TikTok and Instagram analytics, ManyChat

Paid mediaSEMReal result

Budget should follow return

Two jobs with the same idea: rebuild a Google Ads account around intent, and move marketplace ad budget toward what pays back.

Before

A Google Ads account with mixed intent inside each campaign, broad audiences and bidding that chased clicks.

After

Campaigns rebuilt by intent, segmented audiences, conversion-based bidding and landing-page tests: +40% conversion rate, −25% CPA and $1.5M in incremental revenue in six months.

0x 2x 4x 6x 8x 10x Budget share Campaign 1 Campaign 1: ROAS 3.1x, 34% of budget 3.1x 34% Campaign 2 Campaign 2: ROAS 4.0x, 28% of budget 4.0x 28% Campaign 3 Campaign 3: ROAS 4.6x, 21% of budget 4.6x 21% Campaign 4 Campaign 4: ROAS 5.2x, 12% of budget 5.2x 12% Campaign 5 Campaign 5: ROAS 8.4x, 5% of budget 8.4x 5%
Marketplace ads: the campaign with the best return had the smallest budget. Fictional figures.

What I did

  • Audited search terms, negatives and match types; reviewed Performance Max assets and placements.
  • Built Meta and TikTok retargeting audiences from pixel events, segmented by behavior.
  • Proposed budget moves by ROAS and ACOS, with a test-and-measure plan instead of a one-time shift.

Tools

Google Ads (Search, Shopping, Performance Max), Meta Ads Manager, TikTok Ads, Amazon Ads, GA4, GTM

SQLPower BIReal result

The rows the dashboard didn't show

Totals in the BI reports came in lower than the ERP, and no filter explained the gap.

Before

Reports were built from Power BI exports. Customers missing from the customer master disappeared from every visual without any warning.

After

Reporting moved to SQL queries on the ERP with LEFT JOINs and a control total on every extract. $5.7M in sales from 395 customers came back into the reports.

-- Monthly sales by group and customer, without losing anyone
-- One row per customer avoids join fan-out
WITH customers AS (
  SELECT customer_id, MIN(customer_name) AS customer_name
  FROM   dim_customer
  GROUP BY customer_id
)
SELECT  f.sales_group,
        f.customer_id,
        COALESCE(c.customer_name,
                 'NOT IN MASTER ' + f.customer_id) AS customer,
        YEAR(f.invoice_date)  AS yr,
        MONTH(f.invoice_date) AS mo,
        SUM(f.net_sales)      AS net_sales
FROM    fact_sales f
-- LEFT, not INNER: customers missing from the master stay in
LEFT JOIN customers c ON c.customer_id = f.customer_id
GROUP BY f.sales_group, f.customer_id, c.customer_name,
         YEAR(f.invoice_date), MONTH(f.invoice_date);

-- Control total: must match the fact table to the dollar
SELECT SUM(net_sales) FROM fact_sales WHERE YEAR(invoice_date) = 2026;
Simplified version with generic table names (SQL Server).

Three checks on every extract

  • A control total against the raw fact table, by month and by year.
  • A fan-out check after every join: a dimension with duplicate keys once inflated one account 19 times.
  • A month-completeness check (rows, customers and sales by day) before any month is closed.

Also in this rebuild

Power BI exports were also truncating rows in visual exports. DAX SUMMARIZE over native columns, then SQL, recovered $694K across 7 regional reports.

AISEOSEMAutomation

AI in the workflow, judgment at the wheel

I use AI inside the tools marketing teams already run. It speeds up the work. It doesn't make the decisions.

AreaWhat AI doesWhat I decide
SEOSemrush Copilot and Ahrefs AI cluster keywords and surface content gaps and competitors; Screaming Frog crawls feed the technical audit.Search intent, brand fit and priority: what gets written, and what gets fixed first.
SEMPerformance Max, Smart Bidding and broad match find conversions; AI generates headline and asset variations.Conversion tracking hygiene, negative keywords, which assets go live, budgets and targets.
AnalyticsClaude, ChatGPT and Copilot draft SQL, DAX and Python; Gemini and Perplexity speed up research.Every figure reconciled to source totals before it ships, plus the interpretation and the recommendation.
AutomationZapier, Make and n8n move data between tools, trigger reports and route leads.The rules, the exceptions, and who gets alerted when something breaks.
Content & socialFirst drafts of copy, captions and briefs; ManyChat conversation flows.Brand voice, claims, and what is accurate enough to publish.

Real result: a monthly reporting cycle that took about five working days now takes less than one, with every number still checked against the source.

How I work

Four habits behind every deliverable

Ask before interpreting

A short question to whoever owns the data has saved more reports than any formula. It's how a stockout turned out to be a planned delisting.

Two lenses, always

Month over month and year over year side by side. One lens alone is how a bad month gets celebrated.

Reconcile to the source

Every number ties back to the system of record before it reaches a decision-maker, whether a person or a script produced it.

Bring the proposal

A finding comes with what to do next, who owns it and by when. Reports inform; proposals move things.

Toolkit

Tools I use day to day

Data & BI
SQL (SQL Server / SSMS), Power BI (DAX), DOMO, Looker Studio, advanced Excel, Python (pandas)
Web analytics
Google Analytics 4, Google Tag Manager, Google Search Console, SpeedCurve
Paid media
Google Ads (Search, Shopping, Performance Max), Meta Ads Manager, TikTok Ads, Amazon Advertising & Seller Central
SEO
Semrush, Ahrefs, Screaming Frog
Social, email & CRM
Meta Business Suite, Hootsuite, Later, Metricool, Dash Social, ManyChat, HubSpot, Mailchimp, Klaviyo, Salesforce
Marketplaces
SmartScout, Helium 10, Daash
AI & automation
Claude, ChatGPT, Gemini, Perplexity, Copilot, Jasper, Semrush Copilot, Ahrefs AI, Zapier, Make, n8n
Collaboration
Asana, Trello, Slack, Teams, Google Workspace, Figma, Canva, Premiere Pro

Experience

Where this work comes from

  1. 2024 – now
    Ecommerce & Omnichannel AnalystAII Beauty · 50+ beauty brands, 180+ countries · Remote
  2. 2020 – 2026
    Senior Sales & Growth ConsultantEthnix Group · Remote, Georgia, USA
  3. 2018 – 2020
    Marketing ManagerPyramid Corporation · El Salvador
  4. 2016 – 2018
    Marketing & Sales ManagerDiseñarte · El Salvador
  5. 2012 – 2016
    Quality Analyst, Cargo RevenueAvianca · El Salvador

Education

MBA, Universidad Antonio de Nebrija, Madrid
B.A. in Marketing, UCA, El Salvador

Certifications

Google Analytics (Google Skillshop)
Digital Marketing Specialist, UX Design Specialist (Crehana)

Languages

Spanish (native), English (fluent), Portuguese (intermediate)

Contact

Got numbers that don't add up? Let's talk.

gabriela.aragon89@gmail.com +503 7870 3676 linkedin.com/in/gabrielaaragoniraheta