Transforming Data into
Business Decisions

↓ scroll para explorar

Where geopolitics, data & business strategy meet

Market and Geopolitical Intelligence Analyst with 6+ years bridging political risk, sector analysis, and data science across global trade, logistics, and heavy industry — energy, mining, and raw-materials extraction. An International Relations background combined with hands-on technical depth (SQL, DAX, Python, Power BI, Google BigQuery, AWS Glue, NoSQL) turns regulatory shifts, commodity cycles, and country-risk signals into corporate intelligence and due-diligence-grade analysis for decision-makers operating across borders. Track record includes leading an internal intelligence initiative that converted raw data into strategy, driving a 374% gross profit increase ($1.9M) and 198% revenue growth through automated dashboards and sector-risk reporting. Comfortable reading government tenders, auction calendars, and policy documents across commodity supply chains, and building the data infrastructure — cloud data warehousing, workflow automation, data storytelling — that makes that reading actionable for trading houses, majors, and risk-advisory teams alike.

  • Data Strategy
  • Data Architecture
  • Business Intelligence
  • Data Science
  • Geopolitical Reading
  • Data Modeling

Languages

EnglishFluent
MandarimIn Progress · HSK 1
HungarianBasic
SpanishProfessional
UNIFESP

Bachalor's Dregree International Relations

UNIFESP - Escola Paulista de Política Economia e Negócios

Geopolitical & Country Risk · Political Risk Analysis · International Trade Policy · Regulatory & Compliance Analysis

Alura

Data Analysis Specialization

Alura

Python for Data Analysis (Pandas, Data Cleaning & Transformation) · SQL & SQLite (Joins, Views, Transactions) · MySQL (Procedures & Functions) · Power BI (DAX, Data Modeling, Interactive Dashboards) · Statistics with Python · Data Storytelling · Data Visualization · Excel (Advanced Functions & AI-Powered Automation)

ESRI - Escola Superior de Relações Interacionais

International Business Specialization

ESRI - Escola Superior de Relações Interacionais

International Negotiation · Cross-Border Risk & Crisis Management · Market Entry Strategy (FDI, Joint Ventures) · International Business Consulting

ESRI - Escola Superior de Relações Interacionais

Coorporate Diplomacy Specialization

ESRI - Escola Superior de Relações Interacionais

Corporate Diplomacy & Stakeholder Strategy · International Finance & FX Markets · Foreign Policy Analysis Applied to Business · Investment Attraction & Paradiplomacy

Tools I use to turn data into decisions

📊

Power BI

DAX, Power Query, dashboards interativos

🗄️

SQL

SQL Server, MySQL, BigQuery, modelagem

🐍

Python

Pandas, ETL, automação, APIs

🔗

CRM & Automação

Power Automate, RevOps, integrações

90-Day Sale & Market Intelligence Report

The business problem: An Energy solution supplier to national power transmission sector was tracking at 18.9% of its annual revenue target with no clear answer for why. Sales data lived in three disconnected places — a legacy spreadsheet, the CRM, and the inbound commercial mailbox — so leadership couldn't tell whether the gap was a demand problem, a conversion problem, or something happening after a deal was already quoted. This report pulls those three sources into one 90-day analysis to answer that question directly: only 2% of inbound e-mails ever convert to closed revenue, but the pipeline already open is more than large enough to close the gap — the real constraint is that 72% of lost deals fail for reasons inside the company's own control (pricing and delivery timelines, not client decisions), and 88% of closed revenue sits in a single client and two service lines. The report turns that diagnosis into an operating-model fix — named account ownership, a real-time CRM as single source of truth, cascading sub-targets, and a standing hand-off from Market Intelligence to Sales on which regulated auctions and sector investments to chase next — closing the loop between "here's what's wrong" and "here's what to do about it."

Tools used on this Study Case

Power BI

Pareto curve, cycle-time chart, loss breakdown, revenue consolidation, target tracking, deal table

CRM SYSTEM

Pipeline tracking, Win-rate calculation, Funnel data

🐍

Python

Chart Regeneration, Data Anonymization, Docx automation

Power Automate

Daily E-mail capture, Folder monitoring, CRM logging

Methodology: To develop this document, a data set well-built enough to describe sales tendency and behavior was necessary. This data originates from three sources: the Company's project-management spreadsheet, its CRM, and the commercial mailbox that receives inbound requests for quotation. Even with a solid base, a date filter was applied to develop an analysis based on numbers instead of impressions. The window is the last 90 days. This means the analysis does not aim to replace the sales methodology already in place; instead, it establishes a statistical process to prevent an annual revenue gap and a lack of visibility for the sales team. This document aims to fill the gap between the numbers and the overwhelming feeling of lacking strategy, raising the following questions: How are sales going? How are demand requests trending? How much did we sell? How much will we sell at the current pace? What is the current sales scenario? What are the prospects for next year? Which companies can we target? Who are our main clients? How much did we lose, and why? How do we avoid losses? What are the risks?
Conclusion: Based on 90 days of analysis, the Company closed $ 6.05 million against a $ 32 million annual target (18.9%) , a pace that — if unchanged — would close the year at 27% of target ($ 8.64 million in new contracts). Demand itself is not the constraint: 310 commercial e-mails converted to only 38 CRM opportunities and 7 closed deals, a roughly 2.3% inbound win rate, while the qualified pipeline of $ 57.8 million across 14 deals is more than enough to close the gap if conversion improves. The current scenario is one of concentration rather than scarcity: A alone accounts for 79.81% of closed revenue, and Onsite Services together with Equipament supply for 88% of it, so growth depends on diversifying by client and by scope rather than generating more leads. Of the $ 4.94 million lost in the same window, 72% ($ 3.5 million) traces to commercial terms and delivery timelines inside the Company's own control rather than client decisions, which is why avoiding these losses starts internally — with the account-ownership, CRM, and target-cascade changes recommended above — not with a market fix. On the market side, the same answer extends into next year: the named sector signals above and the 2026–2027 auction cycle (a record 6,091 projects registered for the first battery auction, over 6 GW of battery demand projected by 2035, and an approximately $ 2.5 billion transmission auction including the country's first BESS transmission lot) give the Company a dated, external reason to pursue the diversification recommended in this report — both by account and by scope. Read together, the target is not out of reach; closing the gap depends less on generating additional demand and more on commercial alignment. Internal approval cycles that run longer than the client's own deadline are themselves a source of lost deals, which makes a faster, better-prepared path for commercial and technical proposals on priority accounts a priority. Account diversification matters, but only if it comes with the technical and commercial structure to support it — dedicated, qualified sales staff who build client trust from the first proposal, rather than repeated rework caused by under-prepared bids. Shortening that revision-and-rework cycle is what frees the sales team to pursue better, more strategic opportunities, opening a new portfolio of accounts that will demand its own focused, dedicated sales attention.

Revenue Pace:

18.9% of annual target reached; current pace projects only 27% by year-end

Conversion Funnel:

2.3% of inbound e-mails convert to closed revenue (88% drop before reaching CRM)

Concentration Risk:

79.81% of revenue from one client; 88% from two service lines

Lost Revenue

$4.94M lost in 90 days — 72% from internal, controllable causes (pricing/delivery), not client decisions

Commercial Email Request Monitoring & Analysis

A pipeline to capture, clean, and analyze quotation requests received by email, built on Power Automate, Power Query, and Python.

The problem: The commercial mailbox received quotation, budget, and proposal requests mixed in with the rest of the daily workflow. Manual tracking was unworkable given the volume of competing tasks, and there was no structured history to support funnel analysis.
Power Automate Excel Online Power Query Python Power BI
What this project solves
Architecture: Email (Outlook) → Power Automate → Excel (OneDrive) → ETL (Power Query / Python) → Analysis (Power BI). Built entirely on the Microsoft Power Platform, avoiding the additional administrative approvals (Entra ID / Azure AD) that had blocked the earlier Microsoft Graph API prototype.
LayerToolFunction
CapturePower AutomateContinuous mailbox monitoring and one-off historical capture
StorageExcel Online (OneDrive)Structured table as the raw layer of captured data
TransformationPower Query + Python (pandas)Cleaning, client extraction, categorization, and thread aggregation
AnalysisPower BI / Pivot TableConsolidation of funnel metrics (volume, category, client)
Flow 1 — Daily Monitoring

An automated, always-on flow ("Monitorar cotações - Comercial") that captures new requests as they arrive.

StepActionTechnical detail
1. TriggerWhen a new email arrives (V3)Watches the "Commercial" folder of the personal mailbox; fires on every new item detected
2. CleanupHtml to textConverts the email body (HTML) into plain text, stripping markup and styles
3. FilterCondition (OR)Checks whether the subject or body contains keywords: quotation, budget, proposal, price
4. PersistenceAdd a row into a tableWrites Date, Sender, Subject, Body, Source, and ConversationId to an Excel table on OneDrive

The trigger points to a personal folder ("Commercial"), populated by an Outlook rule that automatically moves messages from the commercial list — avoiding the need for shared-mailbox access.

Flow 2 — Historical Reconstruction

A manual, on-demand flow ("Histórico - Comercial") used to backfill the base with retroactive data, so analysis could start without waiting months for organic capture from Flow 1.

StepActionTechnical detail
1. TriggerManually trigger a flowA single, on-demand run, with no automatic recurrence
2. ExtractionGet emails (V3)Searches the whole folder, no date filter, limited to 1,000 items per run
3. IterationApply to eachProcesses each returned email individually, avoiding context duplication
4. Cleanup + FilterHtml to text + ConditionSame logic as Flow 1, with coalesce() protection against emails with no body
5. PersistenceAdd a row into a tableWrites to the same table used by daily monitoring, unifying history and ongoing capture
Transformation Layer (ETL)
StepTransformation applied
DeduplicationRemoves identical rows (sender + subject + date), which can arise from overlap between daily monitoring and historical extraction
Client extractionSplits the sender's email at the @ delimiter, isolating the domain as the client identifier
Thread identificationGroups by ConversationId (Outlook's native identifier), more reliable than comparing subject text
Type classificationThe first message in a thread is flagged "New Request"; subsequent ones as "Update"
CategorizationKeyword-based classification into Quotation, Technical Proposal, or Other
AggregationConsolidation by thread: request date, last update date, negotiation duration, and interaction count
Technical decisions & trade-offs
Results

After ETL and thread grouping, the historical extraction identified dozens of distinct commercial requests, categorized by type and tied to the client's email domain — a structured base to answer volume, category, and client concentration on an ongoing basis, without manual effort.

Future improvements

One Source of Truth: CRM + Pricing Spreadsheets

A Python + SQL pipeline that unifies the daily CRM history and ~80 pricing spreadsheets into a single database — so Power BI only presents data instead of processing it.

PYTHONPANDASSQLITESQL · CTE · WINDOW FUNCTIONS POWER AUTOMATEPARQUETPOWER BIDAXDATA GOVERNANCE
140/142deals linked automatically to their pricing sheet
~5.7ksilently swapped dates detected and fixed
74/75proposals with cost and price reconciled
~10 sdaily refresh, without opening a single file
The problem: the CRM knew which deals were won or lost; the pricing spreadsheets knew each proposal's cost and margin. The key commercial question — "at what margin do we win?" — needed both, and nothing linked them: the CRM has its own system ID, the spreadsheets don't. Meanwhile the Power BI report was doing all the heavy lifting itself.

Before

  • Power Query reopening Excel files on every refresh
  • Heavy DAX columns built on EARLIER and CONCATENATEX
  • The same business rule repeated in several places
  • No key linking a CRM deal to its cost spreadsheet

After

  • One SQL base with both sources, refreshed by one command
  • All row-level logic in Python/SQL; one-line DAX measures
  • Each rule lives in exactly one place — a CSV or a SQL view
  • Deals and proposals linked by a shared business key
Architecture — Bronze → Silver → Gold
1SOURCES

Excel

Daily CRM snapshot via Power Automate + ~80 .xlsm pricing sheets

2INGEST

Python

Columns by name, dates, time zone, duplicates, reconciliation

3SILVER

SQLite

Official base, SQL views, quality and run-log tables

4GOLD

Parquet

10 typed, columnar tables shaped as a star schema

5CONSUMPTION

Power BI

Reference hub, drill-through, one-line measures

atualizar.py

One orchestrator runs the 8 steps in order, stops at the first error and logs every run — full mode when new spreadsheets arrive (~7 min), CRM-only mode (~10 s) for the scheduled daily run.

Rule of thumb → Python for file mess · SQL for business rules · DAX only for what reacts to filters
Pipeline steps
01 transformarCost tabEvery item of every pricing sheet, current revision only
02 factorsPricing summaryPrice, cost and FX fields read as a form
03 carregarLoad + viewsTables and SQL views into the official base
04 catalogoSales catalogueGenerated without cost or margin columns
05 prova_realReconciliationItem totals vs. each sheet's own summary
06 ingest_crmCRMCleans snapshots, extracts the business key
07 referenciaBridgeReference hub linking deals and proposals
08 goldGold exportStar schema to Parquet, swapped atomically
Data-quality investigation

The first script wrote nothing: it only inventoried every sheet — columns, types, date ranges and where the key appeared. Everything below came out of that inventory.

Silently swapped day and month

A few dates showed up "in the future". Hypothesis: the flow wrote dd/mm/yyyy as text and US-locale Excel converted it to a date only when the day was ≤ 12 — swapping day and month. When the day was > 12, the text survived. That is testable:

100%of values stored as dates had a day ≤ 12
0%of values stored as text had a day ≤ 12
~5.7kvalues fixed — not just the few that looked wrong

Time zone and duplicate snapshots

Snapshots are written overnight in UTC, which falls on the previous day in local time. Converting to local time and keeping one snapshot per deal per day removed ~1,900 duplicate rows.

Key false positives

A probability band (25 - 50%) matched the reference pattern. Extraction was restricted to the deal name, where the key appears in 140 of 142 deals.

Cost × price reconciliation

An earlier version counted group subtotals as items and doubled the markup. With explicit group-row rules, reconciliation matches 74 of 75 proposals; the exception is a known scenario issue inside that spreadsheet.

Technical decisions & trade-offs
🔑

Business key over system ID

The internal proposal reference (YY-NNN) is the only thing both sources share — normalized with the same regex on both sides.

🧭

A hub against many-to-many

One reference can have several deals (handover copies, auction lots) and revisions. A reference dimension in the middle lets every fact link 1:N.

%

Percentages don't add up

The base ships numerator and denominator — never a pre-divided margin — so DIVIDE(SUM, SUM) stays right under any filter.

📋

Exceptions become a list

The pipeline never hides a problem nor stops on an expected case: a six-level worklist separates real gaps from normal states.

🔒

Confidentiality by model

Cost and margin stay in a restricted model; sales gets a catalogue generated without them. Hiding a column doesn't protect data.

🗂️

SQLite + Parquet

No server or IT approval (the ODBC driver was blocked); typed columns reach Power BI as-is and port to BigQuery, Athena or Fabric.

# Same rule on both sides: "26-70", "26 - 070", "NBH-26-070" → "26-070"
PADRAO_REF = re.compile(r"(?<![\d:])(2\d)\s*[-–]\s*(\d{1,3})(?![\d:])")

def normalizar(texto):
    m = PADRAO_REF.search(str(texto))
    return f"{m.group(1)}-{int(m.group(2)):03d}" if m else None
First cross-source analysis — a pattern that didn't survive controls
The first number"We win by cutting margin"Once linked, the weighted margin of won proposals came out far below that of lost ones.
The controlSplit by size, drop pass-throughsWithin the band with the most cases, the gap nearly vanished. It was a composition effect, not pricing.
The honest conclusionA hypothesis, not a findingOne band, too few cases — to be tested (Mann-Whitney) as the sample grows, instead of forwarding the raw number.
Beyond the dashboard: the pipeline produces a prioritized worklist of deals without a pricing sheet — negotiating, closed, in progress, pre-pricing, missing reference, no action. It showed, for instance, that each company bidding on the same lot receives its own spreadsheet, which avoided building an unnecessary mapping table.
Future improvements
Power BI report with a drill-through page per reference Scheduled daily run + cloud move (Fabric / SharePoint) ISO dates written at the source Statistical test of the margin hypothesis Public GitHub version on synthetic data

Built on real work data. No client names, deal values or margins are shown here.

Career timeline

Nari Brasil Holding

2026 - Market Intelligence Analyst

Deliver strategic market intelligence helps the organization navigate competitive landscapes and consumer behavior through in-depth data analysis.

Bridge the gap between raw data and business strategy by integrating data management, data architecture, and advanced analytics with marketing insights.

Perform market research, develop competitive intelligence, and build Power BI performance dashboards to support executive decision-making.

Manage data assets, architect scalable data solutions, and apply data science techniques to support marketing operations.

Convert market uncertainty into strategic clarity by building a solid, scalable, data-driven foundation for organizational planning.

COLI Shipping & Transport do Brasil

2023 - 2026: Sales Executive & Market Intelligence Analyst

Orchestrated data strategies that drove a 374% gross profit increase ($1.9M) and 198% revenue growth by developing automated Power BI dashboards for real-time KPI monitoring.

Streamlined executive decision-making through monthly data storytelling reports, aligning international pricing strategy with macroeconomic trends and cargo demand.

Led strategic commercial operations for global heavy machinery manufacturers and trading firms, specializing in the China–Brazil trade lane and high-value project cargo cycles.

Designed and led a proprietary market intelligence project applying International Relations methodologies and investment analysis to track global trade flows, using Pipedrive CRM and Skychart to convert raw data into high-value sales leads.

Managed end-to-end CRM-based project tracking to monitor team productivity, account adherence, and feasibility, ensuring commercial efforts stayed aligned with strategic goals and operational capacity.

Get in contact

Always glad to talk shop, sector trends, data pipelines, or where geopolitics and commodities intersect. If something here resonates with a role you're hiring for, or you just want to compare notes, reach out.