— Portfolio Samples

Show and tell time. See Funnel Amp’s expertise demonstrated in the samples below.

SAMPLE 01

The Messy Data Audit:

From raw PDF to AI-ready Knowledge Architecture

Transforming an unstructured IRENA renewable energy report into a precision-annotated, metadata-rich document corpus ready for retrieval-augmented generation.

IBM Docling

Python 3.10

Structure-Based Chunking

Two-Tier Metadata Schema

Controlled Vocabulary Tags

50%

Noise and artifacts removed before retrieval.

18

Custom controlled vocabulary tags designed.

16

Custom metadata fields assigned per chunk.

The Problem

Raw documents degrade AI retrieval quality.

Green Energy and Sustainable Finance organizations hold critical data in raw documents like PDFs that were only designed for human consumption, not machine retrieval.

IRENA’s Renewable Power Generation Costs Report is a perfect example of the type of pre-parsed document that would be provided by a client for use in the RAG layer of an AI system. It contains mixed text and data tables, a multi-section layout, technical terminology, footnotes, and statistical figures.

The problem is when this type of raw document is fed directly into a RAG system, it produces artifacts that pollute an AI agent’s vector database causing it to hallucinate.

Root cause: raw PDFs contain structural noise, missing metadata, and image artifacts that pollute the vector database
The Solution

Precision audit conducted before a single vector is written.

Funnel Amp applied a structured RAG ingestion audit to the source document. Using Docling for intelligent document parsing to preserve tables, headings, and reading order—every section was manually classified against a purpose-built two-tier metadata schema.

A domain-specific Controlled Vocabulary Tag (CVT) set was derived directly from the source document, ensuring retrieval precision for Green Energy analysts. Noise chunks were flagged and excluded before any embedding occurred.

The result is a retrieval-ready corpus where every chunk carries full provenance, domain context, and technology classification.

Deliverable: annotated JSON corpus · two-tier metadata schema · 18-term Green Energy CVT vocabulary
Results

50% noise reduction — half the document identified as boilerplate, structural artifacts, or non-retrievable content and excluded before embedding
Table data fully preserved — Docling recovered structured cost tables (Solar PV LCOE −90%, Onshore Wind LCOE −70%) that naive parsing would have lost
18-term CVT vocabulary derived from source document analysis — four tag categories covering technologies, metrics, comparisons, and geographies
Two-tier metadata schema — document-level fields for cross-corpus filtering plus chunk-level fields for within-document precision retrieval
Temporal precision built in — separate data_year and publication_date fields prevent retrieval errors when a 2023 dataset is published in 2024
Asset Sample

IRENA_Renewable_power_generation_costs_in_2023_executive_summary.pdf 📄 Source Document

PDF preview is unavailable in your browser. You can view or download the original source document directly.

Open Source Document ↗
IRENA_renewable_costs_2023.pdf → unprocessed extraction ⚠ Not AI-Ready
highlighted = noise that would pollute the vector database
<!-- image -->

## RENEWABLE POWER GENERATION COSTS IN 2023  EXECUTIVE SUMMARY
2  RENEWABLE POWER GENERATION COSTS IN 2023  <!-- image -->

## © IRENA 2024  Unless otherwise stated, material in this
publication may be freely used, shared, copied, reproduced...
[470 chars of copyright boilerplate]

## HIGHLIGHTS
- Renewable power capacity additions set a record in 2023
  with 473 GW of new installed capacity — a 54% increase...
- Total  global  renewables  capacity  increased  by  14%...
- China represented the largest market for solar PV (63%)...

## Acknowledgements  [1,272 chars]
## Disclaimer  [1,083 chars]
## EXECUTIVE SUMMARY  [21 chars — heading artifact, no body]

────────────────────────────────────────────────────────
No metadata · No source · No date · No authority signal
6 of 12 sections are noise · No retrieval controls
IRENA_2023_annotated_chunks.json → chunk irena2023_008 (highlights) ✦ AI-Ready
// Chunk identity + noise gate ─────────────────────────────
{
  "chunk_id":        "irena2023_008",
  "section":         "highlights",
  "content_type":    "text",
  "is_noise":        false,

// CVT technology + metric tags ─────────────────────────────
  "tech_tags": [ "solar_pv", "onshore_wind",
                  "offshore_wind", "lcoe", "..." ],
  "geo_scope":       "global",
  "has_statistics":  true,

// Document provenance — on every chunk ─────────────────────
  "source":          "IRENA",
  "publication_date":"2024-09",
  "data_year":       2023,
  "doc_type":        "executive_summary",
  "domain":          "green_energy",
  "authority":       "intergovernmental",
  "...":             "[ + 4 additional provenance fields ]",

// Clean text — structure and table data preserved ───────────
  "text": "## HIGHLIGHTS\n\n- 473 GW new capacity in 2023,
  54% increase YoY...\n\nTable S1:\n| Solar PV | -86% cost
  reduction | LCOE: $0.044/kWh |..."
}

// 6 clean retrieval chunks · 6 noise chunks excluded
// Schema: funnel_amp_green_energy_v1

SAMPLE 02

The Technical RAG Flow:

Building a Queryable Knowledge Base from Sustainable Finance Documentation

Using a ICMA’s Green Bond Principles PDF document to demonstrate a tested and measured approach to building a complete RAG pipeline, from structured chunking strategy, through embedding model selection, and live semantic retrieval.

IBM Docling

Python 3.10

Sentence-Window Chunking

all-mpnet-base-v2

ChromaDB

LlamaIndex

0.80+

Peak query retrieval relevance achieved.

22

Chunking strategies tested and compared.

15

Sustainable Finance CVT tags designed.

The Problem

Clean documents alone do not produce a working AI system.

Most RAG architecture applies a single default chunking strategy and a generic embedding model without any analysis of whether those choices are appropriate for the corpus. The result? Silent degradation. Critical content gets truncated before it ever reaches the vector database, retrieval scores suffer, and AI-generated answers lose accuracy without any visible error to investigate.

For Sustainable Finance clients working with dense regulatory frameworks like the ICMA Green Bond Principles, this is particularly consequential. A compliance officer receiving a degraded answer about reporting requirements or eligible project categories has no way of knowing the underlying system failed at the architecture level.

Root cause: no evidence-based evaluation of chunking strategy or embedding model capacity before deployment
The Funnel Amp Solution

Every architectural decision tested, measured, and documented.

A complete RAG pipeline was built using the ICMA Green Bond Principles 2021 as the source corpus. Instead of relying on a default approach, a careful comparison of two chunking strategies revealed that structure-based chunking would silently truncate critical regulatory content in 3 of 23 sections, including the cornerstone “Use of Proceeds” section.

Sentence-window chunking with deliberate overlap was selected instead. The embedding model selection was driven by corpus analysis, with all-mpnet-base-v2 being chosen after discovering that 278-token chunks would exceed the default model's 256-token ceiling. The completed pipeline was validated with live query testing against ChromaDB, achieving relevance scores above 0.80 on targeted Sustainable Finance queries.

Deliverable: live vector database · retrieval validation report · architecture decision log
Results

13% truncation risk eliminated — structure-based chunking identified as causing silent token overflow on 3 of 23 critical regulatory sections, including Use of Proceeds
Embedding model selected by evidence — all-mpnet-base-v2 chosen after corpus analysis showed 278-token chunks would exceed the default model's 256-token ceiling
0.80+ relevance scores achieved — two of three test queries returned top results above 0.80, confirming production-ready retrieval quality for Sustainable Finance regulatory queries
100% CVT auto-tagging coverage — all 24 retrieval chunks tagged using a 15-term Sustainable Finance controlled vocabulary derived from the source document
4% noise rate — sentence-window chunking produced a far cleaner corpus than structure-based alternatives, with only 1 of 25 chunks classified as non-retrievable
Asset Sample

ICMA_Green_Bond_Principles_June_2021.pdf 📄 Source Document

PDF preview is unavailable in your browser. You can view or download the original source document directly.

Open Source Document ↗
chunking_strategy_comparison.py → analysis output ⚖ Strategy Analysis
// Two strategies evaluated on ICMA GBP 2021 corpus ─────────
// Embedding model ceiling: all-mpnet-base-v2 → 384 tokens

// Strategy 1 — Structure-based ─────────────────────────────
STRATEGY 1 : structure_based
  Total chunks     : 23
  Smallest chunk   : 22 chars
  Largest chunk    : 5,025 chars
  Avg chunk size   : 1,046 chars

  ⚠ TRUNCATION RISK — 3 chunks exceed 256-token model limit:
    [gbp_s1_007]  5,025 chars  (~1,256 tokens)  ← EXCEEDS
    Section: "1. Use of Proceeds" — cornerstone GBP component
    [gbp_s1_003]  2,936 chars  (~734 tokens)   ← EXCEEDS
    Section: "Introduction"
    [gbp_s1_014]  1,655 chars  (~413 tokens)   ← EXCEEDS
    Section: "External Reviews"

  VERDICT: 13% of chunks at silent truncation risk
           Critical regulatory content would be lost

// Strategy 2 — Sentence-window ────────────────────────────
STRATEGY 2 : sentence_window  (chunk_size=200, overlap=30)
  Total chunks     : 25
  Smallest chunk   : 657 chars
  Largest chunk    : 1,216 chars
  Avg chunk size   : 1,030 chars

  ✓ All chunks within all-mpnet-base-v2 384-token capacity
  ✓ Overlapping windows preserve cross-sentence context
  ✓ Uniform size distribution — consistent embedding quality

  SELECTED: sentence_window strategy for production pipeline

// Schema version: funnel_amp_sustainable_finance_v1 ─────────
// 15-term CVT vocabulary · 24 retrieval chunks · 1 noise chunk
icma_gbp_2021 → chromadb collection · live retrieval demo 🔍 Live Results
// Live retrieval — icma_gbp_2021 collection (24 chunks) ────
// Embedding model : all-mpnet-base-v2
// Similarity      : cosine  ·  threshold for strong match: 0.70+

QUERY 1: "How should issuers report on green bond proceeds?"

  Rank 1  |  Relevance: 0.8067  |  gbp_s2_014
  Tags: green_bond, use_of_proceeds, proceeds_management, reporting
  Text: "The issuer should make known to investors the intended
         types of temporary placement for the balance of
         unallocated net proceeds. The proceeds of Green
         Bonds can be managed per bond or on a portfolio
         basis..."

  Rank 2  |  Relevance: 0.7235  |  gbp_s2_006
  Rank 3  |  Relevance: 0.6650  |  gbp_s2_017

QUERY 2: "What external review options are available to issuers?"

  Rank 1  |  Relevance: 0.8035  |  gbp_s2_018
  Tags: green_bond, external_review, voluntary_guidelines,
         disclosure_requirements
  Text: "There are a variety of ways for issuers to obtain
         outside input to their Green Bond process and
         there are several types of review that can be
         provided to the market. Issuers should consider
         appointing an external review provider..."

  Rank 2  |  Relevance: 0.6688  |  gbp_s2_017
  Rank 3  |  Relevance: 0.6257  |  gbp_s2_006

// 2 of 3 queries returned top results above 0.80 ───────────
// Retrieval validated · pipeline production-ready ✓

SAMPLE 03

The Pre-Production Evaluation:

Measuring Retrieval Quality and Quantifying Hallucination Reduction

Systematic RAG evaluation applied across two domains (Green Energy and Sustainable Finance) using a purpose-built golden evaluation dataset. Retrieval configurations measured, compared, and documented with an evidence-based architecture recommendation for production deployment.

Python 3.10

ChromaDB

Golden Dataset

Hit Rate & MRR

all-mpnet-base-v2

Metadata Filtering

100%

Peak corpus retrieval accuracy achieved.

80%

Overall Hit rate across two domains.

10

Expert-designed evaluation questions.

The Problem

Most RAG systems are deployed without any way to measure whether they work.

Organizations invest in building AI knowledge systems but have no formal methodology for evaluating whether those systems retrieve the right information accurately. Without a structured evaluation framework, retrieval failures and hallucinations go undetected until they surface as errors in front of end users relying on the system for real decisions.

There is no error message when a RAG system retrieves the wrong chunk. There is no warning when a generated answer includes information the retrieved content does not support. The absence of measurement means problems are discovered by users, not architects, and by then, trust in the system is already eroding.

Root cause: no evaluation framework, no baseline, no documented evidence that the system performs as designed
The Funnel Amp Solution

Systematic evaluation across two domains with documented evidence at every step.

Funnel Amp designed and executed a complete RAG evaluation framework across two corpora: the IRENA Renewable Power Generation Costs 2023 report (Green Energy) and the ICMA Green Bond Principles 2021 (Sustainable Finance). A ten-question golden evaluation dataset was purpose-built from primary source documents, with each question paired with a known correct answer, key verification phrases, and a documented retrieval trap risk assessment.

Two retrieval configurations were tested against the same dataset. Hit Rate and MRR (Mean Reciprocal Rank) were calculated per domain and overall. A retrieval coverage failure was identified and diagnosed as a chunking architecture gap rather than a question design weakness. Metadata-assisted retrieval was implemented to resolve semantic collision between adjacent sections, reducing the retrieval trap performance gap from 33% to 8%.

Deliverable: golden evaluation dataset · retrieval quality report · evidence-based architecture recommendation
Results

100% Hit@1 on optimised corpus — IRENA structure-based chunking achieved perfect first-rank retrieval across all five Green Energy evaluation questions
80% overall Hit@1 — eight of ten golden dataset questions retrieved the correct chunk at rank 1 across both domains and corpus types
Retrieval trap gap reduced from 33% to 8% — metadata-assisted retrieval resolved semantic collision between adjacent sections, documented as a reusable architectural pattern
Chunking impact quantified — 40-point gap between IRENA (100%) and ICMA (60%) provides measurable evidence that chunking strategy selection directly determines retrieval precision
Production recommendation documented — hybrid chunking strategy specified for ICMA corpus: sentence-window for narrative sections, structure-based for the four core GBP component sections
Asset Sample

ICMA_Green_Bond_Principles_2021.pdf — Sustainable Finance corpus (10-page regulatory framework) 📄 Source Document

PDF preview is unavailable in your browser. View the original source document directly.

Open Source Document ↗
golden_evaluation_dataset.json — 10 questions · 2 domains · 4 retrieval traps 📋 Evaluation Design
// Golden evaluation dataset — 10 questions across 2 domains ──────────────
// Each question: known correct answer · key phrases · retrieval trap flag

── Green Energy — IRENA RPGC 2023 ───────────────────────────────────────

[irena_001] ← retrieval trap
Q: "How much did renewable power capacity increase in 2023
    in comparison to 2022?"
A: "473 GW — 54% increase, largest annual growth since 2000"
Trap: Annual Capacity Additions section contains similar figures

[irena_005] ← counterintuitive finding
Q: "By what percentage did hydropower LCOE increase 2010–2023?"
A: "33% rise — from USD 0.043/kWh to USD 0.057/kWh"
Note: Only renewable technology with a cost increase in this period

── Sustainable Finance — ICMA GBP 2021 ──────────────────────────────────

[icma_001] ← retrieval trap
Q: "What requirements must a project meet for Green Bond financing?"
A: "Clear environmental benefits, assessed and quantified by issuer"
Trap: Appendix I also contains supporting eligibility content

[icma_003]
Q: "What formal method should an issuer use to manage GBP proceeds?"
A: "Credited to sub-account, sub-portfolio, or tracked via
    formal internal process"
Result: MISS — chunking coverage gap identified
Finding: Sentence-window split sub-account content across chunks

[icma_004] ← retrieval trap
Q: "What does GBP recommend for transparency in proceeds management?"
A: "External auditor or third party to verify internal tracking"
Trap: Key Recommendations section covers same content separately

// Full dataset: 10 questions · designed from primary source documents
// Verification: key phrase matching against retrieved chunk text
evaluation_report.py → comparison output · architecture recommendation 📊 Results
// Evaluation report — Funnel Amp Portfolio Sample 3 ──────────────────────

METRIC                         IRENA      ICMA   OVERALL
Corpus type               Green Eng  Sust.Fin          
Chunking strategy         structure  sentence     mixed
──────────────────────────────────────────────────────
Hit Rate @ 1                  100%       60%      80%
Hit Rate @ 3                  100%         80%       90%
MRR                         1.0000     0.7000   0.8500
Avg relevance score          0.6867     0.6974   0.6921
──────────────────────────────────────────────────────

// Retrieval trap analysis ─────────────────────────────────────────────────
Standard questions  Hit@1 : 83%
Trap questions      Hit@1 : 75%
Performance gap           : 8%  ← reduced from 33% via metadata filtering

// Key findings ────────────────────────────────────────────────────────────
✓ IRENA 100% Hit@1  structure-based chunking optimal for this corpus
~ ICMA  60% Hit@1   sentence-window splits regulatory content sub-optimally
✗ icma_003 MISS     sub-account content fragmented across chunk boundaries

// Production architecture recommendation ─────────────────────────────────
ICMA corpus:
  → Hybrid chunking strategy recommended
    Sentence-window  : narrative + context sections
    Structure-based  : 4 core GBP component sections
    Expected outcome : IRENA-equivalent retrieval precision

Both corpora:
  → Metadata-assisted retrieval for adjacent sections
    Reduces semantic collision on trap questions
    Trap gap: 33% → 8% after filter implementation

// Schema: funnel_amp_green_energy_v1 · funnel_amp_sustainable_finance_v1
Funnel Amp - Knowledge Architecture for Responsible AI