Multi-Source Financial Data Pipeline — SEC Filings, Investor Presentations, Transcripts (Python)

Posted yesterday

Worldwide

Summary

I need a pipeline built to collect and normalize recurring financial/operating metrics for ~40-50 public companies within the same industry vertical, pulled from four source types per company per quarter: SEC EDGAR XBRL filings (structured — data.sec.gov/api/xbrl/companyfacts/) Investor presentation decks (PDF — quarterly earnings slide decks) Press releases (earnings release exhibits, HTML/PDF) Earnings call transcripts (text, likely sourced via a transcript provider API or scraped from public sources) Why this is harder than a standard scrape: the same metric often needs a different source depending on the company and the quarter. Some metrics are XBRL-tagged (reliable, structured). Some only ever appear in the investor deck as chart labels or MD&A-style callouts (less reliable, prone to ambiguous formatting — e.g. stacked bar charts with unclear per-category values). Some are only stated verbally on earnings calls. I need a pipeline that: Tries the most reliable source first (XBRL) and falls back through deck → press release → transcript only when the metric isn't available upstream Tags every value with its source type, exact document, and confidence level — never silently blends a "reported exact" figure with an "extracted from a chart, uncertain" figure without distinguishing them Flags anything it can't resolve confidently rather than guessing (e.g., ambiguous chart segment values, contradictory figures across sources) — I'd rather see an explicit gap than a wrong number Scope of work: XBRL layer: Tag discovery + alias mapping across custom/standard tags (companies rename extension tags between filings — pipeline needs to handle this, not hardcode one tag name per metric). Document ingestion layer: Pull quarterly investor decks and press releases (PDF/HTML) per company; extract ~15-25 recurring metrics from tables and structured callouts. Flag anything sourced from ambiguous chart/graphic elements rather than a labeled table. Transcript layer: Given transcript text (source TBD — open to recommendations on providers), extract specific stated metrics/guidance figures via targeted NLP/LLM-based extraction, with the source quote retained for audit. Merge/precedence logic: Combine all four sources per metric per period with clear precedence rules and conflict flagging when sources disagree. Output: Normalized long-format table — company, metric, period, value, source_type, source_document, confidence_flag, source_excerpt (for audit). Out of scope for now: Front-end/dashboard, real-time alerting. This is a batch data pipeline. Ideal candidate has: Experience with SEC EDGAR XBRL API specifically (not just general scraping) PDF/table extraction experience (pdfplumber, camelot, or similar) — and comfort admitting when a chart/graphic can't be reliably parsed rather than guessing LLM-assisted extraction experience for unstructured text (transcripts, MD&A) with source-grounding/citation discipline Python, pandas, clean documented code To apply, please answer: Have you built pipelines combining structured (XBRL/API) and unstructured (PDF/transcript) financial data sources? Describe one. How do you handle a metric that's stated in a chart/graphic in a PDF where the exact value or category mapping is visually ambiguous from extracted text alone? What's your approach to flagging low-confidence extractions vs. silently returning a best guess? Rough time/cost estimate for a proof-of-concept covering 5 companies × 10 metrics across all four source types. Budget: Fixed price, milestone-based. Milestone 1: proof of concept on 5 companies/10 metrics across all four sources, before committing to full scope.

  • Less than 30 hrs/week
    Hourly
  • 1-3 months
    Duration
  • Expert
    Experience Level
  • Remote Job
  • Complex project
    Project Type
Skills and Expertise
Mandatory skills
Data Extraction
API Integration
Activity on this job
  • Proposals:50+
  • Last viewed by client:12 hours ago
  • Interviewing:
    6
  • Invites sent:
    12
  • Unanswered invites:
    6
About the client
Member since May 23, 2017
  • United States
    New York6:40 PM
  • $189K total spent
    45 hires, 8 active
  • 3,735 hours
  • HR & Business Services
    Small company (2-9 people)

Explore similar jobs on Upwork

Local Lead GenerationHourly‐ Posted 3 weeks ago
Web Scraping
Data Scraping
Data Extraction
Lead Generation
Data Entry
Data Mining
Data Collection
Data Processing
Web Scraping Framework
Web Crawler Framework
Web Scraping Software
Web Scraping Plugin
Web API
Search Tool
Search Engine
Microsoft Word
Data Entry
Administrative Support
Microsoft Excel

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo