Financial Accounting 003: Cash Flow Statement

What is Cash Flow Statement

The Cash Flow Statement reports changes in cash due to operating, investing and financing activities over a period of time.

Cash Flow Statement Format

  • Net cash from operating activities +
  • Net cash from investing activities +
  • Net cash from financing activities =
  • Net change in cash balance

Business Activities

Operating activities create transactions related to providing goods and services to customers and to paying expenses to generating revenue.

Investing activities create transactions related to acquisition or disposal of long-term assets, which includes PP&E and intangibles.

Financing activities create transactions related to owners or creditors, such as issuing new stock, payment of dividends and taxes etc.

Receipt of interest or interest payment may be classified in either of the 3 activities, depending on regulations.

Growth Stages of a Company

  1. At the Start-Up stage of a company, operating cash flow is likely to be negative as the company is attempting to gain market share. Outflow of cash for investing will be high to build up capabilities. Inflow of cash from financing will be high in order to keep the business running when the company has yet to become profitable.
  2. If the company is able to move past the Start-Up stage, it will enter the Early Growth stage, where the company will start to make profit, hence it will start to see positive operating cash flow. Investing cash flow will remain negative as the company expands the business. Inflow of cash from financing may not be as high, but the company will likely to continue to borrow money for expansion.
  3. When the company reaches the Mature stage, operating cash inflow will be huge. It will gradually reduce investment spending as the business has already reached optimal scale. This is the stage where the company starts paying back the debts and give dividends to the stockholders. Financing cash will see a net outflow.
  4. Finally at the Decline stage of a company, there will still be cash inflow from operating activities, although not as much as compared to the previous stage. Investing cash outflow will be minimal, just sufficient to maintain the business. Financing cash outflow will be mainly dividend payouts as the company do not need to borrow money for expansion.

Statement of Cash Flow Complications

The change in balance sheet numbers is often not equal to the number on the cash flow statement. This is due to a number of reasons:

  • Non-cash investing and financing activities.
  • Acquisitions and divestitures of business.
  • Foreign currency translation adjustments.
  • Subsidiaries in different industries.


EBITDA is Earnings before Interest, Taxes, Depreciation and Amortisation, is often used as a proxy for cash flow that excludes interest and taxes, but note that it is ultimately an income concept.

Earnings and current cash flow from Operations are good predictor of future cash flow.

Free Cash Flow

FCF is the operating cash flow less cash for long-term investments. There is no standard measure for operating cash flow, and companies may use their custom definitions which include:

  • Cash from operations before interest expense
  • NOPLAT (Net operating profits less adjusted taxes)
    (EBITDA – Cash taxes on EBITDA)
  • NOPAT – increase in working capital
    (Net Income + After-tax net interest expense)
  • Net income adjusted for depreciation and other non-cash items – increase in working capital
  • EBIT + Depreciation


(Reference: Coursera Wharton Online Introduction to Financial Accounting)


Financial Accounting 002: Income Statement

What is Income Statement

The Income Statement reports the changes in Shareholders’ Equity due to business operations over a period of time.

(Recall that Shareholders’ Equity = Contributed Capital + Prior Retained Earnings + Net Income – Dividend)

The calculation of Net Income is Revenues – Expenses. Note that Net Income is also called Earnings or Net Profit.

Accrual Accounting

Accrual accounting is an approach of recognising revenues and expenses tied to business activities, regardless of whether cash has been exchanged. In other words, accounting for revenues and expenses of businesses is independent of cash flow. This is an important concept to remember.

Revenue Recognition Condition: revenue is only recognised when both

  • It is earned (i.e. goods or services are provided to the customer) and
  • It is realised (i.e. payment received in cash or something that can be converted to a known amount of cash such as promissory note, purchase order etc.).

Expense Recognition Condition: expenses is recognised immediately when either

  • Related revenues are recognised (product costs) or
  • Incurred, if difficult to match with revenues (period costs and unusual events).

As you have observed, there are two underlying principles to the recognition conditions. First, the matching principle, which require the revenue and expense to be recognised when the matching goods or services are provided. Revenue and expense must also be recognised within the same business operating period for periodic revenue (such as subscription services) and periodic costs. Second, the conservatism principle, which require anticipated losses to be recognised immediately, but to recognise gains only when realised.

Adjusting Entries

Recall that for an accounting cycle, at the end of each accounting period, Adjusting Entries will be performed. Adjusting entries are internal transactions that update account balances in accordance with accrual accounting. They record deferred revenues and expenses, as well as accrued revenue and expenses.

  • Deferred Expenses – assets that have been “consumed” in the period, e.g. expending prepaid rent, prepaid insurance, depreciation and amortisation.
  • Deferred Revenues – liabilities that have been fulfilled by delivery of goods or services, e.g. unearned rental revenue, deferred subscription revenue.
  • Accrued Expenses – expenses that have been accumulated in the period, e.g. income taxes payable, interest payable, salaries and wages payable.
  • Accrued Revenues – revenues accumulated in the period, e.g. interest receivable, rent receivable.

Note: the purpose of Depreciation and Amortisation is to allocate the cost of a long-lived asset (longer than one accounting period) over the entire useful life of the asset. Tangible assets require depreciation. Intangible assets require amortisation.

Here is a cheat sheet showing the relationship between cash transaction and revenue / expense recognition. It all depends on whether the cash transaction happens before or after the associated business activity take place.


Overview of Adjusting Entries

Preparation of Financial Statements

Let us appreciate how the financial statements are prepared. The Income Statement will be prepared first. Using the Net Income recorded in the income statement, the Retained Earnings will be updated. Second, the Balance Sheet will be prepared. Lastly, the Statement of Cash Flow and Statement of Stockholders’ Equity will be prepared.

These are some of the example formats provided by the online course:

Income Statement Format

  • Revenue (or Sales)
  • [less] Cost of Goods Sold (COGS)
  • [give] Gross Profit
  • [less] Operating (SG&A) Expense
  • [give] Operating Income
  • [less] Interest, Gains, and Losses
  • [give] Pre-tax Income
  • [less] Income Tax Expense
  • [give] Net Income


Balance Sheet Format: Assets

  1. Current Assets (benefits to be enjoyed within the next year)
    • (ordered by liquidity)
    • Cash
    • Accounts Receivable
    • Inventory
    • Prepaid Assets
  2. Non-Current Assets
    • Tangible Assets
    • Intangible Assets


Balance Sheet Format: Liabilities and Stockholders’ Equity

  1. Current Liabilities (obligations to be fulfilled within next year)
    • (Ordered by liquidity)
    • Bank Borrowings
    • Accounts Payable and Other Payable
    • Deferred Revenues and Other Non-Cash
  2. Non-Current Liabilities
    • Bank Borrowings and Bonds
    • Other types of Liabilities (deferred taxes, pensions)
  3. Stockholders’ Equity
    • Contributed Capital
    • Retained Earnings


(Reference: Coursera Wharton Online Introduction to Financial Accounting)

Data Integration 005: Talend, Mapping with tMap


Talend job that matches data from 2 files and filter out specified records, using tMap.

In this example, I am creating a job that would read from two separate CSV files, one is a list of employee mobile phone numbers, the other is a list of employment status of all employees. After matching a record against both documents, if the employee is still active, the employee mobile phone number shall be updated in a MS SQL DB. (More details on how to connect to MS SQL Server here.)

Talend has provided an extremely convenient component to achieve my objective, which is the tMap component. This tMap component steps through the data records in my employee mobile number file (Main), and match the specified primary key against the reference file (Lookup), which contains employee status. When the status of a particular record meets my condition, it will be generated as an output from tMap, which can then be loaded into the DB by a separate DB input component.


Mapping data inputs and outputs.

The tMap schema editor presents a simple drag and drop UI for you to relate the input and output data. To filter for certain conditions in the data, you will have to manipulate the data using expression (which appears to be in the Java language). More introduction on the tMap expression can be found here. In my example, I actually have two outputs. The second output catches all the data records rejected by the first output condition (Catch output reject = True), and presents the data to me in the console using tLogRow component.


Schema of output to be loaded into DB.

I did run into a small problem when I run the job. The DB table allowed the field “isPrimary” to be nullable even though it holds the type Boolean. Naturally I have used the DB table schema to design the output of my Talend job, however Talend does not recognise Null value for the type Boolean. I will have to explicitly specify that the Boolean data field in my output is Nullable. (Which makes me wonder, why doesn’t Talend enforce this instead of allowing the user to specify otherwise and throwing up error?)


Data Integration 004: Talend, Connect to MSSQL

I ran into loads of problems trying to connect to a Microsoft SQL Server (2008 R2) using my Talend job to update a DB.

(Disclaimer: there was no network issues, the server was definitely reachable.)

The MSSQL Connector that does not work

First, I tried to use tMSSqlConnection to connect to the server, but the job could not even compile due to a missing library mssql-jdbc.jar. Fine, typically the open studio will prompt me to install the additional required libraries after I agree to some terms and conditions, but No! This time round the “download and install” button for said library was totally greyed out, there was no way I could download it from within the studio. After taking advise from forums and Stack Overflow, I decided to manually download the required Java Archive file and install it. Honestly, I am not even sure if it is the right file. As expected, it could not work.

Next, I turned to the tOleDbConnection as recommended by some of the posts in the forums. Nice! It managed to build and run but it threw up an error. I could not tell what was wrong with the connection from the open studio console, so I started to look at the access logs from the SQL Server Management Studio (SSMS). “The login is a SQL Server login and cannot be used with Windows Authentication”. It turns out that my SQL server was configured for Windows Authentication only, but the Talend connector inherently do not support Windows Authentication.

Some online sources had recommended that changing the authentication mode was simple enough, except that you need to restart the server. It was between this option and trying to enable Windows Authentication on the Talend connector, which I assumed was not going to be simple as it was not provided out-of-the-box. I was like, let’s go for the easy way.

Mixed Authentication Mode

And here is where the nightmare begins. After changing the setting to mixed authentication mode, the Talend connector could successfully connect to the server. However, at the same time all other existing applications that connects to DBs in the server all broke. Man, I did not see that coming. The “Mixed Authentication” had misled me into thinking that restarting the server was a good idea. There was simply too many applications for me to troubleshoot alone. The best way out of this is to revert back to the original configuration. (I did perform a clone of the server VM in the event that the development doesn’t go well, I will restore the entire server instance from the clone.)

For some weird reasons, I could not log in to the server using SSMS no matter how I tried. Then it dawn on me that the admin account was a Windows account, and if the Windows Authentication mode had been denied, I would need to use another admin account permitted for SQL Server Authentication mode. Nope. There is no such admin account (not that I know of. Did not assume there was a default admin account and that people were lazy enough to have kept that account accessible.). At this point I wished for a detonation button to wipe the server off the face of the Earth.

So there is no way for me to change the authentication mode at all. There is only one last thing to do. Restore the entire server instance to some point back in time.

And that is how the episode ended. Eventually I had to stick with using tOleDbInput with Windows Authentication. This requires the janet-win<32 or 64>.dll (depends on whether you have a 32bit or a 64bit system) to be available in the java.library.path of your JVM. I am very thankful for this guide providing all the required information.

Update or Insert

The job worked well. I wanted to modify a table in the DB on the condition that if a record do not exist, a new record shall be inserted, else the existing record will be updated. This is when I come across the convenient option:


In my scenario, I will not often have to insert a new record, therefore the “update or insert” option is more efficient. More difference between the options are explained here.

Build and Export

After completing the job, I built and exported it as a Windows batch file (.bat) to run on a production system. That it where I run into another roadblock. After triggering the batch script with the Windows Task Scheduler, the console kept throwing an error, “UnsatisfiedLinkError: somepath\janet-win64.dll: Can’t find dependent libraries”. This does not mean that the system cannot find janet-win64.dll, as I have also imported that, but those Dynamic-Link Libraries (DLLs) that janet-win64 depends on that were missing.

That is just crazy to me, as my development environment was made from an exact VM clone of the production instance. How could there ever be anything missing? I googled so hard for two hours, then it finally hit me. I installed SSMS in the development server. And that installation, which the Talend job does not depend on, had also installed the latest Visual C++ Redistributable packages, which enabled janet-win64.dll to function and in turn enabled the Talend job. It totally blew my mind that these unrelated actions enabled the success of the Talend job. There was also no way for me to discover this dependency during development as I had installed SSMS before starting work on the Talend job.


Do not change the SQL server authentication mode if there are live connectors running. Always keep track of changes made in a server even though it may be unrelated to the development.

Financial Accounting 001: Financial Statements


Financial Accounting is a system for recording information about business transactions to provide summary statements of a company’s financial position and performance to external stakeholders.

For U.S. companies, the financial reports are prepared in accordance to Generally Accepted Accounting Principles (GAAP). Although it is slightly different from our local standards, it is still relevant to learn about if you intend to dabble with the U.S. stock markets. The Securities and Exchange Commission (SEC) requires the filing of 10-K annual reports, 10-Q quarterly reports, as well as 8-K current reports for major events that share holders ought to know.

The management of the company is responsible for preparing the financial statements, which allows for creative manipulation to make the company appear in a better state than the actual performance. Therefore, the Audit Committee of the Board of Directors is supposed to oversee this process, and external auditors will also be engaged to verify that the preparation of the statements is in accordance with accounting standards.



The Accounting Cycle

The accounting cycle describes all the accounting activities performed by a company throughout one accounting period.

  • Start of the period and during the period – Any transactions made by the company is being analysed by the accountant to decide how it should be journalised and posted in the accounting books.
  • End of period – An unadjusted trial balance will be performed to ensure that the records did not have any math errors or mistakes.
  • Adjusting entries – entries in the books are adjusted to account for changes that did not relate to any transactions in the current period, such as depreciation. Another adjusted trial balance will be performed to eliminate errors.
  • Generate financial statements – after adjusting entries, the financial report will be prepared.
  • Closing entries – finally the accounts will be closed and a new period can begin.


Financial Report Overview

A financial report is required to contain these 4 statements:

  1. Balance Sheet – this is the financial position on a specific date, listing all the resources and obligations of the company.
  2. Income Statement – the results of company operations over a period of time using accrual accounting, to recognise the true business activity as far as possible. (accrual means accounting for activities when they occur, with or without cash transactions).
  3. Cash Flow Statement – Sources and uses of cash over a period of time.
  4. Statement of Stockholders’ Equity – Changes in stockholders’ equity over a period of time.

The following is a short introduction of balance sheet to kick start the learning of financial reports.


Balance Sheet

To understand the balance sheet, we must first learn the balance sheet equation.

  • Assets = Liabilities + Stockholders’ Equity

Another way to look at this is what ever resources that the company holds, the resources either belongs to creditors that the company is liable to, or to the owners of the company. Essentially this is what a company is: a bundle of resources that aims to generate more value. One other note, the equation must always balance.

As balance sheet reflects the financial position of a specific date, changes between two balance sheets over a period of time are summarised in the respective Income Statement, Cash Flow Statement, and Statement of Stockholders’ Equity. Here is a great diagram to visualise this concept:


Relating all financial statements in a single diagram.

And here is a breakdown of the balance sheet equation into slightly finer details for better understanding.


This is a breakdown of the balance sheet equation into slightly finer details.



An asset is a resource that is expected to provide future economic benefits (i.e. generate future cash inflows or reduce future cash outflows). An asset is recognised when:

  1. It is acquired in a past transaction or exchange.
  2. The value of its future benefits can be measured with a reasonable degree of precision.



A liability is a claim on assets by creditors that represents an obligation to make future payment of cash, goods, or services. A liability is realised when:

  1. The obligation is based on benefits or services received currently or in the past.
  2. The amount and timing of payment is reasonably certain.


Stockholders’ Equity

Stockholders’ Equity is the residual claim on assets after settling claims of creditors. It is also called net worth, net assets or net book value. There are 2 sources of Stockholders’ Equity:

  1. Contributed Capital – which includes the value of common stock (par value), additional paid-in-capital (excess over par value), and treasury stock (stock repurchased by the company).
  2. Retained Earnings – which is the accumulation of net income, less dividend, since the start of business.Note, dividends are distributions of retained earnings to shareholders and are not considered expenses, but liabilities instead.


(Reference: Coursera Wharton Online Introduction to Financial Accounting)

Marketing 005: Experiential Branding

A brand mantra is like an elevator pitch for the brand. It should concisely deliver what the brand is about. A way for companies to start discovering what their brand is about is by creating a mental map of all the qualities associated with the brand, and finally focusing on just one or a few key qualities that truly describes the brand DNA.

Now that we have covered the brand positioning statement, the brand mantra, it is also important to note a brand is not limited to the meaning and the words that describe it, but the entire experience that the customer will live through. Therefore when designing a brand, we should think about how it interacts with the customer’s senses.

  • The kind of music, colour, images, smell and taste that associates with the brand
  • The kind of emotions that customers should have
  • The kind of actions and behaviours related to the brand, and how it interacts with the community, the social environment or social context
  • Etc.

Of course a brand mantra is insufficient to deliver this entire experience. All the 4 P’s of Marketing, which are the product, place, promotion, and even the price, will be the media to deliver this brand experience.

One final takeaway from the lesson on branding: Having a strong brand that the company is able to align with internally will guide business decisions and resource allocations, prioritising the most important tasks to deliver the brand promise to the customers. Therefore strong brands are clear and concise. They also represent consistency and commitment. You can hardly confuse the products of a strong brand with others, even if the competition had created something very similar. Coke and Pepsi are the classic example.

(Reference: Coursera Wharton Online Introduction to Marketing)

Marketing 004: STP Framework

The STP Framework stands for Segmentation, Targeting and Positioning. Each subsequent activity will build on the foundation laid by the previous activity.

The first step is to perform market segmentation. As highlighted in Market Leadership, a business which only delivers fair value in all aspect will eventually be eliminated in a competitive market. Therefore, segmentation is important to help businesses understand what different customers truly want, so that businesses will deliver genuine value through their products and services with a unique Market Mix (the 4 P’s).


Divides the market into distinct subsets, so that a particular segment can be targeted. There are many ways to divide the market, for example using:

  • Characteristics of the customers – this includes demographics, gender, income level, etc.
  • Preferences of the customers – this is a more product oriented approach, by looking at the different benefits that customers look out for in a product, and segment the customers accordingly.
  • Method of purchase – the way customers like to purchase divides the market into different groups.

There can also be a combination of all the above, such as cohort analysis, to divide the market into Baby Boomers, Gen Y and Millennials, each with some distinct product preferences. Segmentation by geography may also reveal distinct preferences in methods of purchase.


After the market has been divided into segments, target the specific segment(s) that is the most attractive to the business. Points to consider when targeting a segment includes:

  • Potential of segment – the size of the market, future growth, spending patterns and stability.
  • Business capabilities – how well the business is currently able to meet the needs of the segment, what needs to be improved, and how easy to achieve.
  • Market competition – number of competitors targeting the same segment, potential new competitors, strength of competitors. Businesses will want to pick the segment which allows them to have the most differential advantage over the competition.

Eventually, a business will be able to rank all segments according to attractiveness, and pick a few of the most attractive segments to target.


Positioning your product to meet the needs of the target segment. This course focused on positioning the brand to deliver what the customer wants.

A brand is essentially what the customer perceives of the brand, therefore a company can work very hard to shape a brand, but ultimately it is what the customer thinks that determines the brand.

Every brand has a positioning statement that ideally indicates the position clearly. It should contain 3 components,

  1. Target segment – who are the customers?
  2. Point of difference – what is the unique value that the business is delivering to the customers?
  3. Frame of reference – who are the competitors that the business is trying to differentiate from?

Take for example one of the game company that rise to success over the past 6 years, Riot Games. The first line from their website states:

“We aspire to be the most player-focused game company in the world.”Riot Games

We can see that game players are the target segment, the point of difference is to be the most player-focused company, that focus on experience, and lastly, the frame of reference is the other game companies in the world.

A noteworthy point to make: every brand should focus on only one or a few unique selling point, as trying to be good at everything will end up with nothing due to the lack of focus, and it is also difficult for customers to associate strong and unique characteristic with your brand. A point of difference must be the most important aspect of your business and what the customers truly want.

Frame of references are defined by points of parity. These points are common characteristics that associate with all competitors and defines the business or industry. One strategy that companies can adopt is to negate other companies’ points of difference by adopting them and making it the point of parity.

Just like how touchscreen technology had revolutionised the mobile phone market, it eventually became a point of parity that defines smartphones and are common among all competing producers.

(Reference: Coursera Wharton Online Introduction to Marketing)