Multi-Source Financial Data Pipeline — SEC Filings, Investor Presentations, Transcripts (Python)
Worldwide
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/weekHourly
- 1-3 monthsDuration
- ExpertExperience Level
- Remote Job
- Complex projectProject Type
Skills and Expertise
Activity on this job
- Proposals:50+
- Last viewed by client:12 hours ago
- Interviewing:6
- Invites sent:12
- Unanswered invites:6
About the client
- United StatesNew York6:40 PM
- $189K total spent45 hires, 8 active
- 3,735 hours
- HR & Business ServicesSmall company (2-9 people)
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers 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