Skip to main content

A parser for extracting analyst discussion and management commentary efficiently from concalls.

Project description

Concall Parser

Concall Parser is an open-source Python library designed to efficiently extract insights from earnings call (concall) transcripts. It enables seamless extraction of management commentary, analyst discussions, company information, and more.


📦 Installation

Install the library using pip:

pip install concall-parser

Usage

You can initialize the ConcallParser either with a local PDF path or directly via a URL to the concall document.

Using a Local PDF

from concall_parser.parser import ConcallParser

parser = ConcallParser(path="path/to/concall.pdf")

Using a PDF Link

from concall_parser.parser import ConcallParser

parser = ConcallParser(link="https://www.bseindia.com/xml-data/corpfiling/AttachHis/458af4e6-8be5-4ce2-b4f1-119e53cd4c5a.pdf")

Configuration

The library leverages GROQ for core NLP tasks such as intent classification. To use GROQ, ensure the following environment variables are set:

export GROQ_API_KEY="YOUR GROQ API KEY"
export GROQ_MODEL="YOUR GROQ MODEL NAME"

We use llama3-70b-8192 as the default model if any groq supported models are not provided as env.

✨ Features

Concall Parser enables structured extraction of key insights from earnings call transcripts. You can extract management commentary, analyst discussions, company name, management details, and more—streamlined for downstream analysis or integration.

Extract Concall Info like Management and Company Name

parser.extract_concall_info()

Extract Management Commentary

parser.extract_commentary()

Extract Analyst Discussion

parser.extract_analyst_discussion()

Extract All Details

parser.extract_all()

Example Data structure

{
    "concall_info": {
        "company_name": "SKF India Limited", // company name will come as value
        "Mukund Vasudevan": "Managing Director", // management name will come as key and designation will come as value
    },
    "commentary": [
        {
            "speaker": "Ashish Pruthi",
            "dialogue": "thank you. good morning, everyone. thank you for joining us today. today with us, we have skf india's managing director, mr. mukund vasudevan and our cfo, mr. ashish saraf. before i turn the call over to the management, i would like to remind you that in this call, some of the remarks contain forward-looking statements, which are subject to risks and uncertainties and actual results may differ materially we can now open the call for q&a."
        }
    ],
    "analyst_discussion" : {
        "Mukesh Saraf" : {
            "analyst_company" : "Avendus Spark",
            "dialogue" : [
                {
                    "speaker": "Mukesh Saraf",
                    "dialogue": "my first question is on the revenue mix. so could you kind of give us some details on the different segments like the auto, industrial, exports and probably within that, some of the subsegments as well."
                },
                {
                    "speaker": "Mukund Vasudevan",
                    "dialogue": "all right. i'll let ashish saraf, my cfo, answer that in terms of so that he can share precise numbers."
                },
            ]
        }
    }
}

Concalls not supported yet

Concalls which do not contain analyst dicusssion and are more of press release like Reliance are not supported yet. If you find any concall that is not being parsed correctly, please open an issue with the label doc unsupported.

🤝 Contributing

We welcome contributions! If you'd like to improve this library or report issues, please feel free to submit a pull request or open an issue.

You can find detailed contributing guidelines here: CONTRIBUTING.md

📝 License

This project is licensed under the MIT License. See the LICENSE file for details.

🎯 Downstream Tasks

Here are some potential downstream tasks where concall-parser can be highly valuable:

Task Description
Sentiment Analysis Analyze the tone (positive/negative/neutral) of management commentary to assess confidence or caution.
Named Entity Recognition (NER) Extract structured entities such as company names, executive names, analyst firms, and competitors.
Competitor Benchmarking Compare commentary and strategy across companies in the same sector for peer analysis.
Intent Classification Categorize analyst questions by topic (financials, operations, market outlook, etc.).
Knowledge Base Generation Populate internal tools or dashboards with structured Q&A and insights from concalls.
QoQ Change Tracking Monitor changes in management messaging and strategy across earnings calls.
Earnings Call Summarization Automatically generate concise summaries for quick understanding of the concall.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concall_parser-1.0.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concall_parser-1.0.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file concall_parser-1.0.0.tar.gz.

File metadata

  • Download URL: concall_parser-1.0.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for concall_parser-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3989b499a079e548856d285ae43f7d20723af5d494bb96bdfcd596cde308993b
MD5 0ba082ca7c73e828bc68f3696b07cc76
BLAKE2b-256 9629d6a5d35e9dbfd79de60befe112a6042ca1877d0c7b9b1a4aed5ef2ce6985

See more details on using hashes here.

File details

Details for the file concall_parser-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: concall_parser-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for concall_parser-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0275f1379dffdbeb55e6866a4769b35ac7fe3e27172783ae8a92cd521300cca3
MD5 ee045bdc49b0ee2925b2d7abfcb8d038
BLAKE2b-256 49ef6f28f2241a914a33995aabc48800b7de5a08605d9f9058781934ca41f323

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page