Financial Report — Monitoring [Prototype]

Andriyan Saputra
4 min readJun 3, 2021
PDF report to Dashboard Monitoring

Financial statements (or financial reports) are formal records of the financial activities and position of a business, person, or other entity. Relevant financial information is presented in a structured manner and in a form which is easy to understand. All of these informations are useful for monitoring company activities.

The objective of financial statements is to provide information about the financial position, performance and changes in financial position of an enterprise that is useful to a wide range of users in making economic decisions. Financial statements should be understandable, relevant, reliable and comparable. Reported assets, liabilities, equity, income and expenses are directly related to an organization’s financial position

Financial Report are contained with General Information, Statement of financial position, Income statement (Profit & Loss), and Cash flow Financial reports. Financial report formats are divided into 7 different categories based on Industry categories, where each of them are contained with different details. All of these information are useful for monitoring company activities.

There are more another useful material information including Description detailed information about Financial report and list of Subsidiary Consolidated Company.

Listed company (IPO) Company that available on Bursa Efek Indonesia would release Financial Report and available at PT Bursa Efek Indonesia website.

Financial statements may be used by users for different purposes:

  • Owners and managers require financial statements to make important business decisions that affect its continued operations. Financial analysis is then performed on these statements to provide management with a more detailed understanding of the figures. These statements are also used as part of management’s annual report to the stockholders.
  • Employees also need these reports in making collective bargaining agreements (CBA) with the management, in the case of labor unions or for individuals in discussing their compensation, promotion and rankings.
  • Prospective investors make use of financial statements to assess the viability of investing in a business. Financial analyses are often used by investors and are prepared by professionals (financial analysts), thus providing them with the basis for making investment decisions.
  • Financial institutions (banks and other lending companies) use them to decide whether to grant a company with fresh working capital or extend debt securities (such as a long-term bank loan or debentures) to finance expansion and other significant expenditures.

At this time, we tried to create Dashboard monitoring application for company monitoring activities for each IPO company that available on Bursa Efek Indonesia.

Main obstacle : The information and reports are available on PDF format, it would need sophisticated methodology and formatting for each information.

Methodology

There are several approaches for creating Dashboard monitoring activities.

  1. Extracting/download all available information and reports (PDF, excel) from Bursa Efek Indonesia website.

Selenium is a portable framework for testing web applications. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language (Selenium IDE) (Wikipedia).

2. Regular Expression (RegEx) in Python

A regular expression is a special sequence of characters that helps you match or find other strings or sets of strings, using a specialized syntax held in a pattern. Regular expressions are widely used in UNIX world. The Python module re provides full support for Perl-like regular expressions in Python.

3. Pdfplumber: Extracting text and Extracting tables

Plumb a PDF for detailed information about each text character, rectangle, and line. Plus: Table extraction and visual debugging.

.extract_text()

Collates all of the page’s character objects into a single string. Adds spaces where the difference between the x1 of one character and the x0 of the next is greater than x_tolerance. Adds newline characters where the difference between the doctop of one character and the doctop of the next is greater than y_tolerance.

.extract_table(table_settings={})

PDF Plumber: Extract_table

pdfplumber's approach to table detection borrows heavily from Anssi Nurminen's master's thesis, and is inspired by Tabula. It works like this:

  • For any given PDF page, find the lines that are (a) explicitly defined and/or (b) implied by the alignment of words on the page.
  • Merge overlapping, or nearly-overlapping, lines.
  • Find the intersections of all those lines.
  • Find the most granular set of rectangles (i.e., cells) that use these intersections as their vertices.
  • Group contiguous cells into tables.

Returns the text extracted from the largest table on the page, represented as a list of lists, with the structure row -> cell. (If multiple tables have the same size — as measured by the number of cells — this method returns the table closest to the top of the page.)

There are some difficulties to produce the monitoring dashboard application, pdf extraction, irregular format report condition, and unstructured text condition.

Closing Remark

This publication is produced for educational or information only, if there are any mistake in data, judgement, methodology or false grammar/words that i used on this publication. The Author will follow up to update this information at the future.

Dashboard monitoring system still on Prototype condition, it means there still need various of improvement especially on text separation.

* Please consider to contact the writer using contact information at Profile. I would like to discuss and sharing more about the topic. Thank you.

Best Regards,

Andriyan Saputra

REFERENCES:

  1. Laporan Keuangan dan Tahunan : PT Bursa Efek Indonesia (https://www.idx.co.id/perusahaan-tercatat/laporan-keuangan-dan-tahunan/)
  2. Github: Pdf Plumber (https://github.com/jsvine/pdfplumber)

--

--