Skip to content
View Saauc's full-sized avatar
  • Weback.io

Block or report Saauc

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Saauc/README.md

Saüc Vilà Gil

USC graduate in International Business, Finance & Business Analytics. I build decision tools for global operations, supply chain, and finance — models that end in a number someone can act on, not another dashboard.

The portfolio has an architecture

Three engines that each model one risk channel in depth — and one flagship that connects them, because real shocks never travel alone.

flowchart LR
    fx["fx-risk-terminal<br/>FX: VaR, Expected Shortfall,<br/>Monte Carlo, hedging"] --> gos
    lane["export-lane-risk-monitor<br/>Trade lanes: freight, tariffs,<br/>chokepoint stress"] --> gos
    feed["feedstock-margin-monitor<br/>Feedstock: crack spreads,<br/>BOM cost index"] --> gos
    gos["global-ops-simulator<br/>Compound-shock propagation<br/>+ costed playbook"]
Loading

Model a multinational's footprint as a dependency graph, hit it with compound shocks (tariffs, oil, FX, chokepoints), watch the cascade propagate live, get a playbook ranked in euros.

The point in one number: in the flagship scenario, summing the individual risk channels predicts a +€1.6M gain — the compound model shows the true −€756k loss. Interactions between shocks don't just change the magnitude; they flip the sign.

  • Deterministic propagation DAG with lags and betas — every figure auditable by hand (worked example in the README)
  • A playbook that also shows what it rejects: transshipping via Mexico to dodge a US tariff fails USMCA rules of origin, and the tool says so
  • Nearshoring answered as a decision boundary, not a forecast: it pays iff the tariff regime holds above τ* = 10.1%
  • 79 unit tests, CI, runs fully offline — pip install flask && python app.py

The domain engines

Repo What it models in depth
fx-risk-terminal Multi-currency FX risk: VaR three ways, Expected Shortfall, Monte Carlo, stress testing, minimum-variance hedging — pure-Python quant core
export-lane-risk-monitor Cost-to-serve for an exporter shipping Barcelona → 7 markets: FX, fuel, tariffs, maritime-chokepoint stress, with backtesting
feedstock-margin-monitor Petrochemical feedstock margins for coatings: crack spreads, BOM cost index, percentile/vol/curve analytics, daily LLM narrative, FRED-PPI backtest — automated daily via GitHub Actions

How I build

Spec before code — the flagship was built from a frozen SPEC.md, and everywhere the spec was silent is marked SPEC-GAP in source instead of silently improvised. Honest Limitations sections in every README. Tests written with each phase, not after. Demos that run offline with zero API keys.

Stack: Python · Flask · SQL · vanilla JS + Chart.js · Excel/VBA · AI-assisted development (Claude Code)

Contact

LinkedIn · saucvilagil@gmail.com

Pinned Loading

  1. Saauc Saauc Public

    Profile

  2. export-lane-risk-monitor export-lane-risk-monitor Public

    Live cost-to-serve & supply-chain risk monitor for an exporter shipping out of Barcelona to 7 global markets — FX, fuel, news & maritime-chokepoint stress-testing, with backtesting. Python/Flask + D3.

    Python

  3. fx-risk-terminal fx-risk-terminal Public

    Real-time multi-currency FX risk engine: VaR (3 methods), Expected Shortfall, Monte Carlo, stress testing & hedging — pure-Python quant core, browser dashboard.

    HTML 1

  4. feedstock-margin-monitor feedstock-margin-monitor Public

    AI-augmented petrochemical feedstock margin monitor for coatings manufacturers: crack spreads, a coatings bill-of-materials cost index, percentile/vol/curve analytics, daily LLM narrative, and a FR…

    Python