Kristian Vepsäläinen – Maailma on jakauma
  • Etusivu
  • Palvelut
  • Fractional Head of Data
  • Blogi
  • Whitepapers
  • Talks
  • Minusta
  • 🇬🇧 EN
  • Ota yhteyttä

The World Is a Distribution

Data Science & Fractional Head of Data

Home About Work Fractional HoD Whitepapers Talks 🇫🇮 Suomeksi
Kristian Vepsäläinen — Data Science

The world is
a distribution.

Point estimates lie. Averages mislead. The shape of uncertainty is where real understanding lives — and where competitive advantage hides.

Fractional Head of Data → See the analyses
5+ Publications
10+ Years practice
FM+MEng Math & Security
Open Data first
What I do

Distributional thinking
applied to real decisions.

I combine public datasets — legislation, labour markets, health registries, EU open data — with Bayesian methods, changepoint models, and simulation to produce analyses that domain experts cannot replicate without data science skills.

01

Bayesian inference

Posterior distributions over parameters, not p-values. Uncertainty quantified, not hidden.

02

Open data synthesis

Semantic Finlex, Eurostat, StatFin, EurLex — combined in ways no single-discipline analyst can.

03

Forecasting & simulation

Monte Carlo, generative models, changepoint detection. Predictions with explicit confidence bounds.

04

Fractional leadership

SMEs get a senior data strategy partner without hiring a full-time CDO. One day a week, full expertise.

"A single number — an average, a headline figure, a point forecast — is not an answer. It is a question about which distribution produced it."

— Kristian Vepsäläinen, maailma on jakauma
Next step

Let's talk about your data.

Whether you need a specific analysis or a fractional data science partner — the first conversation is free.

kristian.vepsalainen@proton.me
Source Code
---
title: "The World Is a Distribution"
subtitle: "Data Science & Fractional Head of Data"
lang: en
draft: false
page-layout: full
title-block-banner: false
include-in-header:
  text: |
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;1,400&family=IBM+Plex+Mono:wght@400;600&family=Source+Serif+4:wght@300;400&display=swap" rel="stylesheet">
    <style>
      body,
      .quarto-container, #quarto-content,
      .page-layout-full, main.content {
        background: #0d1117 !important;
        color: #e8e0d5 !important;
        font-family: 'Source Serif 4', serif !important;
      }
      #title-block-header { display: none !important; }
      h1,h2,h3,h4,h5 { color: #f0ebe3 !important; font-family: 'Playfair Display', serif !important; }

      /* ── Nav strip ── */
      .en-nav {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem 0;
        padding: 0.75rem 1.5rem;
        border-bottom: 1px solid rgba(232,224,213,0.1);
        background: rgba(13,17,23,0.97);
        font-family: 'IBM Plex Mono', monospace;
        font-size: 0.72rem;
        letter-spacing: 0.08em;
      }
      .en-nav a {
        color: #857e76 !important;
        text-decoration: none !important;
        padding: 0.35rem 0.7rem;
        transition: color 0.2s;
        white-space: nowrap;
      }
      .en-nav a:hover { color: #2a9d8f !important; }
      .en-nav a.active { color: #f0ebe3 !important; }
      .en-nav .nav-fi {
        margin-left: auto;
        color: #e63946 !important;
        padding-left: 1rem;
      }
      .en-nav .nav-fi:hover { color: #f4a261 !important; }

      /* ── Page sections ── */
      .hero-section {
        min-height: 78vh; display: flex; flex-direction: column;
        justify-content: center; padding: 4rem 1.5rem;
        position: relative; overflow: hidden; box-sizing: border-box;
      }
      .hero-label {
        font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem;
        letter-spacing: 0.18em; text-transform: uppercase;
        color: #2a9d8f !important; margin-bottom: 1.5rem;
        animation: fadeUp 0.6s ease both;
      }
      .hero-title {
        font-family: 'Playfair Display', serif !important;
        font-size: clamp(2.4rem, 9vw, 5.5rem) !important;
        font-weight: 700; line-height: 1.08; color: #f0ebe3 !important;
        max-width: 820px; margin-bottom: 1.5rem;
        animation: fadeUp 0.6s 0.1s ease both;
      }
      .hero-title em { font-style: italic !important; color: #e63946 !important; }
      .hero-sub {
        font-size: clamp(0.92rem, 2.5vw, 1.12rem); font-weight: 300;
        color: #a09890 !important; max-width: 540px; line-height: 1.75;
        margin-bottom: 2.5rem; animation: fadeUp 0.6s 0.2s ease both;
      }
      .hero-cta { display: flex; gap: 0.75rem; flex-wrap: wrap; animation: fadeUp 0.6s 0.3s ease both; }
      .btn-primary {
        background: #e63946 !important; color: #fff !important;
        padding: 0.8rem 1.6rem; font-family: 'IBM Plex Mono', monospace !important;
        font-size: 0.78rem !important; letter-spacing: 0.06em;
        text-decoration: none !important; border: none !important; border-radius: 0 !important;
        white-space: nowrap; transition: background 0.2s, transform 0.15s;
      }
      .btn-primary:hover { background: #c1121f !important; transform: translateY(-2px); color: #fff !important; }
      .btn-ghost {
        background: transparent; color: #e8e0d5 !important; padding: 0.8rem 1.6rem;
        font-family: 'IBM Plex Mono', monospace !important; font-size: 0.78rem !important;
        letter-spacing: 0.06em; text-decoration: none !important;
        border: 1px solid rgba(232,224,213,0.25) !important;
        white-space: nowrap; transition: border-color 0.2s, transform 0.15s;
      }
      .btn-ghost:hover { border-color: #2a9d8f !important; color: #2a9d8f !important; transform: translateY(-2px); }
      .section { padding: 4rem 1.5rem; max-width: 1060px; margin: 0 auto; box-sizing: border-box; }
      .section-label {
        font-family: 'IBM Plex Mono', monospace !important; font-size: 0.65rem;
        letter-spacing: 0.2em; text-transform: uppercase; color: #2a9d8f !important; margin-bottom: 0.8rem; display: block;
      }
      .section-title {
        font-family: 'Playfair Display', serif !important;
        font-size: clamp(1.6rem, 4vw, 2.6rem) !important;
        color: #f0ebe3 !important; margin-bottom: 1.5rem; line-height: 1.2;
      }
      .stats-row {
        display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem;
        padding: 2.5rem 0;
        border-top: 1px solid rgba(232,224,213,0.08);
        border-bottom: 1px solid rgba(232,224,213,0.08);
      }
      @media (min-width: 600px) { .stats-row { grid-template-columns: repeat(4, 1fr); } }
      .stat-num {
        font-family: 'Playfair Display', serif !important;
        font-size: clamp(1.5rem, 5vw, 2.4rem); color: #f4a261 !important; display: block;
      }
      .stat-label {
        font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem;
        letter-spacing: 0.1em; color: #6b6560 !important; text-transform: uppercase; margin-top: 0.3rem;
      }
      .pillar-grid {
        display: grid; grid-template-columns: 1fr; gap: 1px;
        background: rgba(232,224,213,0.06); margin-top: 2rem;
      }
      @media (min-width: 600px) { .pillar-grid { grid-template-columns: repeat(2, 1fr); } }
      .pillar { background: #0d1117 !important; padding: 2rem 1.5rem; }
      .pillar-num {
        font-family: 'IBM Plex Mono', monospace; font-size: 2rem; font-weight: 600;
        color: rgba(230,57,70,0.18) !important; line-height: 1; margin-bottom: 0.8rem;
      }
      .pillar h3 { font-family: 'Playfair Display', serif !important; font-size: 1.1rem !important; color: #f0ebe3 !important; margin-bottom: 0.6rem; }
      .pillar p { font-size: 0.88rem; color: #857e76 !important; line-height: 1.7; margin: 0; }
      .quote-block {
        border-left: 3px solid #e63946; padding: 1.5rem 2rem;
        margin: 3rem 0; background: rgba(230,57,70,0.04);
      }
      .quote-block p {
        font-family: 'Playfair Display', serif !important; font-style: italic;
        font-size: clamp(1rem, 3vw, 1.3rem) !important; color: #d4ccc4 !important; line-height: 1.6; margin: 0 0 0.8rem;
      }
      .quote-block cite { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; color: #2a9d8f !important; }
      @keyframes fadeUp {
        from { opacity: 0; transform: translateY(16px); }
        to   { opacity: 1; transform: translateY(0); }
      }
    </style>
---

```{=html}
<nav class="en-nav">
  <a href="/en/index.html" class="active">Home</a>
  <a href="/en/about.html">About</a>
  <a href="/en/work.html">Work</a>
  <a href="/fractional/fractional.html">Fractional HoD</a>
  <a href="/whitepapers.html">Whitepapers</a>
  <a href="/talks.html">Talks</a>
  <a href="/" class="nav-fi">🇫🇮 Suomeksi</a>
</nav>

<section class="hero-section">
  <div class="hero-label">Kristian Vepsäläinen — Data Science</div>
  <h1 class="hero-title">The world is<br><em>a distribution.</em></h1>
  <p class="hero-sub">
    Point estimates lie. Averages mislead. The shape of uncertainty
    is where real understanding lives — and where competitive advantage hides.
  </p>
  <div class="hero-cta">
    <a href="/fractional/fractional.html" class="btn-primary">Fractional Head of Data →</a>
    <a href="/en/work.html" class="btn-ghost">See the analyses</a>
  </div>
</section>

<section class="section">
  <div class="stats-row">
    <div class="stat-item" style="text-align:center">
      <span class="stat-num">5+</span>
      <span class="stat-label">Publications</span>
    </div>
    <div class="stat-item" style="text-align:center">
      <span class="stat-num">10+</span>
      <span class="stat-label">Years practice</span>
    </div>
    <div class="stat-item" style="text-align:center">
      <span class="stat-num">FM+MEng</span>
      <span class="stat-label">Math & Security</span>
    </div>
    <div class="stat-item" style="text-align:center">
      <span class="stat-num">Open</span>
      <span class="stat-label">Data first</span>
    </div>
  </div>
</section>

<section class="section">
  <span class="section-label">What I do</span>
  <h2 class="section-title">Distributional thinking<br>applied to real decisions.</h2>
  <p style="color:#a09890 !important; max-width:600px; line-height:1.8; font-size:1rem;">
    I combine public datasets — legislation, labour markets, health registries,
    EU open data — with Bayesian methods, changepoint models, and simulation
    to produce analyses that domain experts cannot replicate without data science skills.
  </p>
  <div class="pillar-grid">
    <div class="pillar">
      <div class="pillar-num">01</div>
      <h3>Bayesian inference</h3>
      <p>Posterior distributions over parameters, not p-values. Uncertainty quantified, not hidden.</p>
    </div>
    <div class="pillar">
      <div class="pillar-num">02</div>
      <h3>Open data synthesis</h3>
      <p>Semantic Finlex, Eurostat, StatFin, EurLex — combined in ways no single-discipline analyst can.</p>
    </div>
    <div class="pillar">
      <div class="pillar-num">03</div>
      <h3>Forecasting & simulation</h3>
      <p>Monte Carlo, generative models, changepoint detection. Predictions with explicit confidence bounds.</p>
    </div>
    <div class="pillar">
      <div class="pillar-num">04</div>
      <h3>Fractional leadership</h3>
      <p>SMEs get a senior data strategy partner without hiring a full-time CDO. One day a week, full expertise.</p>
    </div>
  </div>
</section>

<section class="section">
  <div class="quote-block">
    <p>"A single number — an average, a headline figure, a point forecast — is not an answer. It is a question about which distribution produced it."</p>
    <cite>— Kristian Vepsäläinen, maailma on jakauma</cite>
  </div>
</section>

<section class="section" style="text-align:center; padding-bottom:6rem;">
  <span class="section-label">Next step</span>
  <h2 class="section-title">Let's talk about your data.</h2>
  <p style="color:#a09890 !important; max-width:460px; margin:0 auto 2rem; line-height:1.8; font-size:0.95rem;">
    Whether you need a specific analysis or a fractional data science partner —
    the first conversation is free.
  </p>
  <a href="mailto:kristian.vepsalainen@proton.me" class="btn-primary">kristian.vepsalainen@proton.me</a>
</section>
```

© 2026 Kristian Vepsäläinen

 
  • Edit this page
  • Report an issue