Split View: 엔지니어를 위한 회계 기초: 현금흐름표와 손익계산서 읽는 법
엔지니어를 위한 회계 기초: 현금흐름표와 손익계산서 읽는 법
- 1. 왜 엔지니어가 재무제표를 읽어야 하는가
- 2. 손익계산서(P&L) 구조 해부
- 3. 현금흐름표(CFS) 구조 해부
- 4. P&L vs CFS: 이익은 나는데 현금이 없는 이유
- 5. 엔지니어를 위한 비유
- 6. 실전 분석: 기업 재무제표 읽기 예시
- 7. 핵심 지표 정리
- 8. 마무리

1. 왜 엔지니어가 재무제표를 읽어야 하는가
엔지니어는 시스템을 설계하고, 데이터를 분석하고, 의사결정의 근거를 수치에서 찾는 사람이다. 재무제표는 기업이라는 시스템의 런타임 로그이자 모니터링 대시보드다.
재무제표를 읽을 수 있으면 다음이 가능해진다.
- 연봉 협상: 회사의 수익성과 현금 여력을 파악한 뒤 협상에 임할 수 있다
- 이직 판단: 입사 후보 기업이 돈을 벌고 있는지, 현금이 얼마나 남았는지 확인할 수 있다
- 기술 투자 설득: "이 인프라 비용이 매출원가의 몇 %인지" 수치로 보여줄 수 있다
- 주식 투자: 실적 발표 시즌에 공시를 직접 읽고 판단할 수 있다
- 창업 준비: 투자자와 대화할 때 재무 언어를 사용할 수 있다
이 글은 3대 재무제표 중에서도 실전에서 가장 자주 쓰이는 **손익계산서(P&L)**와 **현금흐름표(CFS)**에 집중한다. 재무상태표(B/S)는 스냅샷이라 한 번 이해하면 쉬운 반면, P&L과 CFS는 "흐름"을 나타내므로 읽는 연습이 필요하다.
2. 손익계산서(P&L) 구조 해부
손익계산서는 일정 기간 동안 기업이 얼마를 벌고, 얼마를 써서, 얼마가 남았는지를 보여주는 보고서다. 영어로 Income Statement 또는 Profit & Loss Statement(P&L)이라 부른다.
구조 한 눈에 보기
매출액 (Revenue)
- 매출원가 (COGS)
─────────────────────
= 매출총이익 (Gross Profit) ← "제품 자체가 돈이 되는가?"
- 판매관리비 (SG&A)
- 연구개발비 (R&D)
- 영업/마케팅비 (S&M)
- 일반관리비 (G&A)
─────────────────────
= 영업이익 (Operating Income) ← "본업으로 돈을 벌고 있는가?"
+/- 영업외손익 (이자, 환차손 등)
─────────────────────
= 세전이익 (Pre-tax Income)
- 법인세 (Income Tax)
─────────────────────
= 당기순이익 (Net Income) ← "최종적으로 얼마가 남았는가?"
항목별 상세
매출원가(COGS): 제품이나 서비스를 직접 제공하기 위해 드는 비용이다. SaaS 기업의 경우 서버 비용(AWS/GCP), 고객 지원 인건비, CDN 비용 등이 여기에 해당한다. 제조업이라면 원재료비와 공장 인건비가 들어간다.
매출총이익(Gross Profit): 매출에서 매출원가를 뺀 금액이다. **매출총이익률(Gross Margin)**이 높을수록 규모가 커졌을 때 이익이 빠르게 증가한다. 일반적으로 SaaS 기업은 7080%, 제조업은 2040%, 유통업은 10~20% 수준이다.
영업이익(Operating Income): 본업에서 벌어들이는 실제 이익이다. 매출총이익에서 R&D비, 마케팅비, 임대료, 인건비 등 운영비를 모두 차감한 금액이다. 영업이익이 마이너스라면 "본업으로 돈을 못 벌고 있다"는 뜻이다.
당기순이익(Net Income): 세금, 이자 비용, 일회성 손익까지 모두 반영한 최종 이익이다. 다만 일회성 항목(자산 매각 이익 등)이 포함될 수 있어 영업이익보다 왜곡될 여지가 있다.
P&L 읽기 핵심 질문 3가지
- 매출이 성장하고 있는가? -- 전년 대비(YoY) 또는 전분기 대비(QoQ) 매출 추이를 확인한다
- 매출총이익률이 안정적인가? -- Gross Margin이 하락하면 가격 경쟁력이 약해지거나 원가가 올라간 것이다
- 영업이익률이 개선되고 있는가? -- 매출이 늘어도 영업이익률이 떨어지면 비용 구조에 문제가 있다
3. 현금흐름표(CFS) 구조 해부
현금흐름표(Cash Flow Statement)는 실제로 현금이 얼마나 들어오고 나갔는지를 보여주는 보고서다. 발생주의 회계에서는 매출이 잡혀도 현금이 아직 들어오지 않았을 수 있기 때문에, 현금흐름표가 별도로 필요하다.
3가지 활동 구분
┌──────────────────────────────────────────────┐
│ 현금흐름표 (Cash Flow Statement) │
├──────────────────────────────────────────────┤
│ │
│ 1. 영업활동 현금흐름 (Operating CF) │
│ - 당기순이익에서 출발 │
│ - 비현금 항목 가산 (감가상각비 등) │
│ - 운전자본 변동 (매출채권, 재고 증감) │
│ → "본업에서 현금을 벌고 있는가?" │
│ │
│ 2. 투자활동 현금흐름 (Investing CF) │
│ - 설비/장비 구매 (CAPEX) │
│ - 자회사 인수/매각 │
│ - 유가증권 매입/매도 │
│ → "미래를 위해 얼마를 투자하고 있는가?" │
│ │
│ 3. 재무활동 현금흐름 (Financing CF) │
│ - 차입금 조달/상환 │
│ - 주식 발행/자사주 매입 │
│ - 배당금 지급 │
│ → "자금을 어떻게 조달하고 반환하는가?" │
│ │
│ 기초 현금 + 3가지 활동 합계 = 기말 현금 │
└──────────────────────────────────────────────┘
영업활동 현금흐름(OCF) 상세
영업활동 현금흐름은 간접법으로 작성되는 경우가 대부분이다. 당기순이익에서 출발하여 비현금 항목을 조정한다.
당기순이익
+ 감가상각비 (현금 유출 없이 비용 처리된 금액)
+ 주식보상비용 (스톡옵션 등 현금 유출 없는 인건비)
- 매출채권 증가 (매출은 잡혔지만 현금은 못 받은 금액)
- 재고자산 증가 (현금이 재고로 묶인 금액)
+ 매입채무 증가 (물건은 받았지만 아직 안 갚은 금액)
+ 이연수익 증가 (현금은 받았지만 아직 매출 인식 전)
─────────────────────
= 영업활동 현금흐름
핵심 포인트: 당기순이익이 양수여도 매출채권이 급증하면 영업활동 현금흐름이 마이너스가 될 수 있다. 반대로 당기순이익이 적자여도 감가상각비와 이연수익 덕분에 현금흐름은 양수일 수 있다.
투자활동 현금흐름(ICF) 상세
건강한 성장 기업은 투자활동 현금흐름이 마이너스인 것이 정상이다. 설비, 기술, 인수합병에 돈을 쓰고 있다는 뜻이기 때문이다.
- CAPEX(자본적 지출): 서버, 장비, 건물 등 장기 자산에 대한 투자
- 인수합병(M&A): 다른 기업이나 기술을 인수하는 데 사용한 현금
- 유가증권 매매: 여유 자금을 단기 투자한 내역
투자활동이 양수라면 자산을 팔고 있다는 뜻이므로, 왜 파는지 맥락을 확인해야 한다.
재무활동 현금흐름(FCF) 상세
- 차입 증가: 은행 대출이나 회사채를 발행하면 현금이 들어온다(양수)
- 차입 상환: 기존 빚을 갚으면 현금이 나간다(음수)
- 배당금 지급: 주주에게 이익을 분배하면 현금이 나간다(음수)
- 자사주 매입: 시장에서 자기 회사 주식을 사들이면 현금이 나간다(음수)
- 유상증자: 새로운 주식을 발행하면 현금이 들어온다(양수)
4. P&L vs CFS: 이익은 나는데 현금이 없는 이유
"흑자 도산(Black-ink Bankruptcy)"이라는 말이 있다. 손익계산서에서는 이익을 내고 있지만 현금이 바닥나서 파산하는 현상이다. 이 괴리가 발생하는 구조적 이유를 이해해야 한다.
괴리 발생 원인 정리
| 상황 | P&L 영향 | 현금 영향 | 설명 |
|---|---|---|---|
| 외상 매출 (매출채권) | 매출 인식 (+) | 현금 유입 없음 | 제품은 납품했지만 대금은 60~90일 후 수령 |
| 감가상각비 | 비용 인식 (-) | 현금 유출 없음 | 이미 구매한 자산의 가치를 기간에 걸쳐 비용 처리 |
| 선수금 (이연수익) | 매출 미인식 | 현금 유입 (+) | 연간 구독료를 선불로 받았지만 매달 나눠서 매출 인식 |
| 재고 축적 | 비용 미인식 | 현금 유출 (-) | 원자재를 미리 대량 구매, 아직 팔리지 않아 원가로 안 잡힘 |
| CAPEX (설비 투자) | 비용 미인식 | 현금 유출 (-) | 10억짜리 서버를 사도 P&L에는 감가상각비만 연 2억씩 반영 |
실제 시나리오: SaaS 기업 A사
A사 분기 실적:
- P&L 순이익: +5억 원 (흑자)
- 영업활동 현금흐름: -3억 원 (적자)
왜?
1. 신규 대기업 고객과 연간 계약 체결 (매출 20억 인식)
→ 그러나 대금 지급은 납품 후 90일 뒤 (매출채권 +20억)
2. 대규모 서버 증설 (CAPEX 8억)
→ P&L에는 감가상각비 1.6억만 반영 (5년 정액법)
3. 마케팅 선지급 (다음 분기 컨퍼런스 비용 3억 선결제)
→ P&L에는 이번 분기분 1억만 비용 처리
결과: 장부상 이익이지만, 통장 잔고는 줄어들고 있다
핵심 교훈
- P&L만 보면 "잘 되고 있구나"라고 착각할 수 있다
- CFS를 같이 봐야 "실제로 현금이 돌고 있는가"를 판단할 수 있다
- 건강한 기업은 영업활동 현금흐름 > 당기순이익이다 (감가상각비 등 비현금 비용이 더해지므로)
5. 엔지니어를 위한 비유
재무제표를 엔지니어에게 친숙한 시스템 모니터링에 비유하면 직관적으로 이해할 수 있다.
P&L = 처리량 로그 (Throughput Log)
# P&L을 API 서버 메트릭으로 비유
class ProfitAndLoss:
def __init__(self):
self.revenue = 0 # 총 요청 처리 건수 (매출)
self.cogs = 0 # 서버 비용, CDN 비용 (매출원가)
self.gross_profit = 0 # 인프라 비용 제외 순 처리량 (매출총이익)
self.opex = 0 # 개발팀 인건비, 사무실 (판관비)
self.operating_income = 0 # 운영 후 남는 처리 여력 (영업이익)
def calculate(self):
self.gross_profit = self.revenue - self.cogs
self.operating_income = self.gross_profit - self.opex
return self.operating_income
- 매출(Revenue) = 총 API 요청 처리 건수. 트래픽이 늘면 매출이 올라간다
- 매출원가(COGS) = 서버 비용. 요청이 늘면 같이 올라간다 (가변 비용)
- 매출총이익률(Gross Margin) = 요청당 순이익률. 서버 효율이 좋을수록 높다
- 영업이익(Operating Income) = 모든 비용을 빼고 남는 실제 여력
CFS = 메모리/자원 사용량 (Resource Utilization)
# CFS를 시스템 리소스 모니터링으로 비유
class CashFlowStatement:
def __init__(self, beginning_cash):
self.beginning_cash = beginning_cash # 기초 가용 메모리
def operating_cf(self, net_income, depreciation, ar_change, inventory_change):
"""영업활동 = 실제 가용 리소스 변동"""
# net_income: 처리량 로그상 이익
# depreciation: 이미 할당된 메모리 (실제 추가 할당 없음)
# ar_change: 응답 대기 중인 요청 (메모리에 묶여 있음)
return net_income + depreciation - ar_change - inventory_change
def investing_cf(self, capex, acquisitions):
"""투자활동 = 새 서버/인프라 구매"""
return -(capex + acquisitions)
def financing_cf(self, debt_issued, debt_repaid, dividends):
"""재무활동 = 외부 메모리 할당/반환"""
return debt_issued - debt_repaid - dividends
- 영업활동 CF = 앱이 실제로 사용 가능한 메모리. 처리량(P&L)이 높아도 메모리 누수(매출채권 증가)가 있으면 줄어든다
- 투자활동 CF = 새 서버 구매. 마이너스가 정상 (인프라에 투자 중)
- 재무활동 CF = 외부에서 RAM 추가 장착 또는 반납. 대출이나 증자로 현금을 가져오는 것
- 기말 현금 = 가용 메모리 잔량. 이게 0이 되면 OOM(Out of Memory) = 부도
핵심 비유 요약
| 시스템 모니터링 | 재무제표 | 의미 |
|---|---|---|
| 초당 처리 건수 (TPS) | 매출 | 얼마나 많은 거래를 처리하는가 |
| CPU 사용률 | 영업비용률 | 리소스를 얼마나 효율적으로 쓰는가 |
| 응답 대기 큐 | 매출채권 | 처리했지만 아직 응답을 못 받은 요청 |
| 가용 메모리 | 현금 | 즉시 사용 가능한 자원 |
| 메모리 누수 | 현금 유출 | 서서히 자원이 빠져나가는 상태 |
| OOM Kill | 흑자 도산 | 처리량은 좋은데 메모리가 바닥남 |
6. 실전 분석: 기업 재무제표 읽기 예시
실제 기업 유형별로 P&L과 CFS를 읽는 방법을 예시로 정리한다.
예시 1: 고성장 SaaS 기업
[손익계산서]
매출: 500억 (+40% YoY)
매출원가: -100억 (Gross Margin 80%)
매출총이익: 400억
R&D: -150억
S&M: -200억
G&A: -80억
영업이익: -30억 (적자)
[현금흐름표]
영업활동 CF: +50억 (순이익 적자지만 이연수익 덕분에 양수)
투자활동 CF: -80억 (서버 인프라, 소기업 인수)
재무활동 CF: +200억 (시리즈 C 투자 유치)
현금 증감: +170억
기말 현금: 350억
분석 포인트:
- P&L에서는 적자지만 이것은 성장 투자(S&M 200억) 때문이다
- Gross Margin 80%는 매우 건강한 수준이다 (제품 자체의 수익성 검증 완료)
- 영업활동 CF가 양수라는 점이 핵심 -- SaaS는 선불 구독으로 현금을 먼저 받기 때문
- 투자 유치로 Runway가 충분하다 (기말 현금 350억)
- 결론: 의도적 적자 (공격적 성장 단계), 건강한 상태
예시 2: 전통 제조업 기업
[손익계산서]
매출: 1,000억 (+3% YoY)
매출원가: -700억 (Gross Margin 30%)
매출총이익: 300억
판관비: -200억
영업이익: 100억 (영업이익률 10%)
[현금흐름표]
영업활동 CF: +150억 (감가상각비 50억 가산)
투자활동 CF: -120억 (공장 증설, 설비 교체)
재무활동 CF: -40억 (차입금 상환, 배당 지급)
현금 증감: -10억
기말 현금: 200억
분석 포인트:
- 매출 성장률 3%는 성숙 산업의 전형적 수치
- 영업이익률 10%로 안정적 수익 창출
- 영업활동 CF(150억) > 당기순이익 → 감가상각비가 비현금 비용으로 가산된 건강한 구조
- CAPEX 120억 투자 중 → 자유현금흐름(FCF) = 150 - 120 = 30억
- 배당과 차입 상환을 동시 진행 → 성숙 기업의 전형적 패턴
- 결론: 안정적이지만 성장성은 낮음. FCF 양수로 주주 환원 가능
예시 3: 위험 신호가 보이는 기업
[손익계산서]
매출: 300억 (-5% YoY, 역성장)
매출원가: -240억 (Gross Margin 20%, 악화 중)
매출총이익: 60억
판관비: -50억
영업이익: 10억
[현금흐름표]
영업활동 CF: -20억 (매출채권 급증, 재고 증가)
투자활동 CF: +30억 (부동산 매각)
재무활동 CF: +40억 (긴급 대출)
현금 증감: +50억
기말 현금: 80억
분석 포인트:
- P&L에서는 흑자(영업이익 10억)이지만 영업활동 CF가 -20억 → 이익의 질이 나쁘다
- 매출채권 급증 → 거래처가 대금을 제때 안 내고 있다 (부실 채권 위험)
- 자산 매각과 긴급 대출로 현금을 확보 → 현금 상황이 위급하다
- Gross Margin이 하락 중 → 원가 경쟁력이 약해지고 있다
- 결론: P&L만 보면 괜찮아 보이지만, CFS에서 위험 신호가 명확하다
7. 핵심 지표 정리
P&L과 CFS에서 반드시 체크해야 할 핵심 지표를 정리한다.
수익성 지표 (P&L 기반)
| 지표 | 계산 | 의미 | 기준값 |
|---|---|---|---|
| 매출총이익률 (Gross Margin) | 매출총이익 / 매출 | 제품/서비스 자체의 수익성 | SaaS 70%+, 제조 25%+ |
| 영업이익률 (Operating Margin) | 영업이익 / 매출 | 본업의 운영 효율 | 15%+ 양호 |
| 순이익률 (Net Margin) | 당기순이익 / 매출 | 최종 수익성 | 10%+ 양호 |
| EBITDA 마진 | EBITDA / 매출 | 현금 창출 기준 수익성 | 20%+ |
현금 효율 지표 (CFS 기반)
| 지표 | 계산 | 의미 | 기준값 |
|---|---|---|---|
| 자유현금흐름 (FCF) | 영업활동 CF - CAPEX | 투자 후 남는 여유 현금 | 양수 유지 |
| FCF 마진 | FCF / 매출 | 매출 대비 현금 창출력 | 15%+ 우수 |
| 현금전환주기 (CCC) | DSO + DIO - DPO | 현금 회전 속도 (일) | 짧을수록 좋음 |
| OCF / 순이익 비율 | 영업활동 CF / 당기순이익 | 이익의 현금 품질 | 1.0 이상 |
현금전환주기(CCC) 상세
CCC = DSO + DIO - DPO
DSO (Days Sales Outstanding) = 매출채권 / (매출 / 365)
→ 물건을 팔고 현금을 받기까지 걸리는 일수
DIO (Days Inventory Outstanding) = 재고자산 / (매출원가 / 365)
→ 재고를 구매하고 팔기까지 걸리는 일수
DPO (Days Payable Outstanding) = 매입채무 / (매출원가 / 365)
→ 물건을 사고 대금을 지불하기까지 걸리는 일수
예시:
A사: DSO 45일 + DIO 30일 - DPO 60일 = CCC 15일
B사: DSO 90일 + DIO 60일 - DPO 30일 = CCC 120일
→ A사는 현금이 15일 만에 돌아온다. B사는 120일이 걸린다.
→ B사는 그 120일 동안 운전자본이 묶여 있으므로 추가 자금이 필요하다.
기업 건강 상태 빠른 진단 체크리스트
- 매출이 전년 대비 성장하고 있는가? (성장성)
- 매출총이익률이 안정적이거나 개선 중인가? (제품 경쟁력)
- 영업활동 CF가 양수인가? (현금 창출력)
- 영업활동 CF > 당기순이익인가? (이익의 질)
- FCF가 양수인가? (투자 후 잔여 현금)
- CCC가 악화되고 있지 않은가? (운전자본 효율)
- 투자활동이 마이너스인가? (미래 성장 투자 중)
- 재무활동에서 비정상적 차입 급증이 없는가? (재무 안정성)
8. 마무리
재무제표는 기업의 건강 진단서다. 엔지니어가 서버 로그를 읽듯 P&L과 CFS를 읽으면, 기업의 진짜 상태를 파악할 수 있다.
기억해야 할 3가지:
- P&L은 처리량, CFS는 메모리다 -- 처리량이 높아도 메모리가 부족하면 시스템이 죽는다
- 영업활동 CF가 당기순이익보다 중요하다 -- 이익의 "질"을 보여주기 때문이다
- P&L과 CFS를 함께 읽어야 전체 그림이 보인다 -- 한쪽만 보면 반드시 놓치는 것이 있다
다음 실적 발표 시즌이 오면, 관심 기업의 재무제표를 DART(한국)나 SEC EDGAR(미국)에서 직접 열어보자. 이 글에서 다룬 구조를 떠올리며 읽으면, 숫자 뒤의 이야기가 보이기 시작할 것이다.
Accounting Basics for Engineers: How to Read Cash Flow Statements and Income Statements
- 1. Why Engineers Should Read Financial Statements
- 2. Anatomy of the Income Statement (P&L)
- 3. Anatomy of the Cash Flow Statement (CFS)
- 4. P&L vs CFS: Why a Profitable Company Can Run Out of Cash
- 5. Engineering Analogies for Financial Statements
- 6. Practical Analysis: Reading Financial Statements by Company Type
- 7. Key Metrics Summary
- 8. Conclusion
- Quiz

1. Why Engineers Should Read Financial Statements
Engineers design systems, analyze data, and base decisions on quantifiable evidence. Financial statements are the runtime logs and monitoring dashboard of a company as a system.
Being able to read financial statements enables the following:
- Salary negotiation: Understand the company's profitability and cash reserves before entering negotiations
- Career decisions: Verify whether a prospective employer is actually making money and how much cash remains
- Making the case for tech investment: Demonstrate that "this infrastructure cost is X% of COGS" with real numbers
- Stock investing: Read earnings reports firsthand during earnings season instead of relying on summaries
- Startup preparation: Speak the language of finance when talking with investors
This guide focuses on the two most practically useful of the three major financial statements: the Income Statement (P&L) and the Cash Flow Statement (CFS). The Balance Sheet (B/S) is a point-in-time snapshot that is relatively straightforward once understood. P&L and CFS represent "flows" and require practice to read effectively.
2. Anatomy of the Income Statement (P&L)
The Income Statement shows how much a company earned, how much it spent, and how much remained over a given period. It is also known as the Profit & Loss Statement (P&L).
Structure at a Glance
Revenue
- Cost of Goods Sold (COGS)
─────────────────────
= Gross Profit ← "Is the product itself profitable?"
- Selling, General & Administrative (SG&A)
- Research & Development (R&D)
- Sales & Marketing (S&M)
- General & Administrative (G&A)
─────────────────────
= Operating Income ← "Is the core business making money?"
+/- Non-operating items (interest, FX gains/losses, etc.)
─────────────────────
= Pre-tax Income
- Income Tax
─────────────────────
= Net Income ← "What's the bottom line?"
Line Items in Detail
COGS (Cost of Goods Sold): The direct costs of delivering the product or service. For a SaaS company, this includes server costs (AWS/GCP), customer support wages, and CDN expenses. For manufacturing, it would be raw materials and factory labor.
Gross Profit: Revenue minus COGS. A higher Gross Margin means profits scale faster with volume. Typical benchmarks: SaaS 70-80%, manufacturing 20-40%, retail/distribution 10-20%.
Operating Income: The real profit from core business operations. Gross Profit minus all operating expenses (R&D, marketing, rent, salaries). A negative Operating Income means the core business is losing money.
Net Income: The final profit after taxes, interest, and one-time items. However, one-time items (e.g., asset sale gains) can distort this figure, making Operating Income a more reliable indicator of ongoing performance.
Three Key Questions When Reading a P&L
- Is revenue growing? -- Check Year-over-Year (YoY) and Quarter-over-Quarter (QoQ) trends
- Is Gross Margin stable? -- A declining Gross Margin signals eroding pricing power or rising costs
- Is Operating Margin improving? -- If Operating Margin drops while revenue grows, there is a cost structure problem
3. Anatomy of the Cash Flow Statement (CFS)
The Cash Flow Statement shows how much cash actually came in and went out. Under accrual accounting, revenue can be recognized before cash arrives, which is why the CFS exists as a separate report.
Three Activity Categories
┌──────────────────────────────────────────────────┐
│ Cash Flow Statement (CFS) │
├──────────────────────────────────────────────────┤
│ │
│ 1. Operating Cash Flow (OCF) │
│ - Starts from Net Income │
│ - Adds back non-cash items (depreciation) │
│ - Adjusts for working capital changes │
│ → "Is the core business generating cash?" │
│ │
│ 2. Investing Cash Flow (ICF) │
│ - Equipment/facility purchases (CAPEX) │
│ - Acquisitions / divestitures │
│ - Securities purchased/sold │
│ → "How much is being invested for the future?"│
│ │
│ 3. Financing Cash Flow (FCF) │
│ - Debt raised / repaid │
│ - Stock issuance / buybacks │
│ - Dividends paid │
│ → "How is capital being raised and returned?" │
│ │
│ Beginning Cash + Sum of 3 Activities = Ending Cash│
└──────────────────────────────────────────────────┘
Operating Cash Flow (OCF) in Detail
OCF is almost always prepared using the indirect method. It starts from Net Income and adjusts for non-cash items:
Net Income
+ Depreciation (expense recorded without cash outflow)
+ Stock-based compensation (non-cash labor cost)
- Increase in Accounts Receivable (revenue booked, cash not yet received)
- Increase in Inventory (cash tied up in unsold goods)
+ Increase in Accounts Payable (goods received, payment deferred)
+ Increase in Deferred Revenue (cash received, revenue not yet recognized)
─────────────────────
= Operating Cash Flow
Key insight: Net Income can be positive while OCF is negative if Accounts Receivable spike. Conversely, Net Income can be negative while OCF is positive thanks to depreciation and deferred revenue.
Investing Cash Flow (ICF) in Detail
For a healthy growing company, ICF is normally negative -- it means the company is investing in equipment, technology, and acquisitions.
- CAPEX (Capital Expenditures): Investment in long-term assets like servers, equipment, and buildings
- M&A: Cash spent acquiring other companies or technologies
- Securities trading: Short-term investment of excess cash
If ICF is positive, the company is selling assets -- the context matters (routine optimization vs. distress).
Financing Cash Flow in Detail
- New borrowings: Loans or bond issuances bring cash in (positive)
- Debt repayment: Paying down existing debt sends cash out (negative)
- Dividends paid: Distributing profits to shareholders (negative)
- Share buybacks: Purchasing own shares from the market (negative)
- Equity issuance: Issuing new shares brings cash in (positive)
4. P&L vs CFS: Why a Profitable Company Can Run Out of Cash
"Black-ink bankruptcy" is a real phenomenon -- a company shows a profit on the Income Statement but runs out of cash and goes bankrupt. Understanding the structural reasons for this gap is essential.
Sources of Divergence
| Situation | P&L Impact | Cash Impact | Explanation |
|---|---|---|---|
| Credit sales (Accounts Receivable) | Revenue recognized (+) | No cash inflow | Product delivered, but payment due in 60-90 days |
| Depreciation | Expense recognized (-) | No cash outflow | Cost of previously purchased assets spread over time |
| Prepayments (Deferred Revenue) | Revenue not recognized | Cash inflow (+) | Annual subscription fee received upfront, recognized monthly |
| Inventory buildup | Cost not recognized | Cash outflow (-) | Raw materials purchased in bulk, not yet sold |
| CAPEX (Capital investment) | Cost not recognized | Cash outflow (-) | A $1M server shows up on P&L as only ~$200K/year in depreciation |
Real Scenario: SaaS Company A
Company A Quarterly Results:
- P&L Net Income: +$5M (profitable)
- Operating Cash Flow: -$3M (cash negative)
Why?
1. Signed annual enterprise contract (recognized $20M revenue)
→ But payment terms are net 90 days (A/R increased by $20M)
2. Major server expansion (CAPEX $8M)
→ P&L shows only $1.6M depreciation (5-year straight-line)
3. Marketing prepayment ($3M for next quarter's conference)
→ P&L shows only $1M as current quarter expense
Result: Profitable on paper, but the bank account is shrinking
Key Takeaway
- Looking at P&L alone can create the illusion that "things are going well"
- CFS must be read alongside P&L to determine "is cash actually flowing?"
- Healthy companies have OCF > Net Income (non-cash expenses like depreciation get added back)
5. Engineering Analogies for Financial Statements
Financial statements become intuitive when mapped to system monitoring concepts familiar to engineers.
P&L = Throughput Log
# P&L as API server metrics
class ProfitAndLoss:
def __init__(self):
self.revenue = 0 # Total requests processed (Revenue)
self.cogs = 0 # Server costs, CDN costs (COGS)
self.gross_profit = 0 # Net throughput after infra (Gross Profit)
self.opex = 0 # Team salaries, office costs (SG&A)
self.operating_income = 0 # Remaining capacity after ops (Op. Income)
def calculate(self):
self.gross_profit = self.revenue - self.cogs
self.operating_income = self.gross_profit - self.opex
return self.operating_income
- Revenue = Total API requests processed. More traffic means more revenue
- COGS = Server costs. Scales with request volume (variable cost)
- Gross Margin = Per-request profitability. Better server efficiency = higher margin
- Operating Income = What remains after all costs are deducted
CFS = Memory/Resource Utilization
# CFS as system resource monitoring
class CashFlowStatement:
def __init__(self, beginning_cash):
self.beginning_cash = beginning_cash # Initial available memory
def operating_cf(self, net_income, depreciation, ar_change, inventory_change):
"""Operating activities = actual resource availability delta"""
# net_income: throughput-log profit
# depreciation: pre-allocated memory (no new allocation)
# ar_change: pending response requests (memory tied up)
return net_income + depreciation - ar_change - inventory_change
def investing_cf(self, capex, acquisitions):
"""Investing activities = buying new servers/infrastructure"""
return -(capex + acquisitions)
def financing_cf(self, debt_issued, debt_repaid, dividends):
"""Financing activities = external memory allocation/deallocation"""
return debt_issued - debt_repaid - dividends
- Operating CF = Available memory for the application. Even if throughput (P&L) is high, memory leaks (A/R growth) can drain it
- Investing CF = Buying new servers. Negative is normal (investing in infrastructure)
- Financing CF = Adding or removing external RAM. Loans or equity raise bring in cash
- Ending Cash = Remaining available memory. If this hits zero, it is OOM (Out of Memory) = bankruptcy
Summary of Analogies
| System Monitoring | Financial Statement | Meaning |
|---|---|---|
| Transactions Per Second (TPS) | Revenue | How many transactions are being processed |
| CPU Utilization | Operating Expense Ratio | How efficiently resources are being used |
| Response queue / backlog | Accounts Receivable | Processed but not yet paid |
| Available memory | Cash | Immediately usable resources |
| Memory leak | Cash drain | Resources slowly leaking away |
| OOM Kill | Black-ink bankruptcy | Throughput is fine, but memory is depleted |
6. Practical Analysis: Reading Financial Statements by Company Type
Here are examples of how to read P&L and CFS for different company profiles.
Example 1: High-Growth SaaS Company
[Income Statement]
Revenue: $50M (+40% YoY)
COGS: -$10M (Gross Margin 80%)
Gross Profit: $40M
R&D: -$15M
S&M: -$20M
G&A: -$8M
Operating Income: -$3M (loss)
[Cash Flow Statement]
Operating CF: +$5M (loss on P&L but positive due to deferred revenue)
Investing CF: -$8M (server infrastructure, small acquisition)
Financing CF: +$20M (Series C funding)
Net Cash Change: +$17M
Ending Cash: $35M
Analysis:
- P&L shows a loss, but this is due to growth investment (S&M at $20M)
- Gross Margin of 80% is very healthy (product-level profitability validated)
- OCF being positive is the critical signal -- SaaS companies collect subscription fees upfront
- Funding round provides ample runway (ending cash $35M)
- Conclusion: Intentional loss (aggressive growth phase), healthy fundamentals
Example 2: Traditional Manufacturing Company
[Income Statement]
Revenue: $100M (+3% YoY)
COGS: -$70M (Gross Margin 30%)
Gross Profit: $30M
SG&A: -$20M
Operating Income: $10M (Operating Margin 10%)
[Cash Flow Statement]
Operating CF: +$15M (depreciation $5M added back)
Investing CF: -$12M (factory expansion, equipment replacement)
Financing CF: -$4M (debt repayment, dividends)
Net Cash Change: -$1M
Ending Cash: $20M
Analysis:
- 3% revenue growth is typical for a mature industry
- 10% Operating Margin shows stable profit generation
- OCF ($15M) > Net Income -- healthy pattern with depreciation added back
- CAPEX of $12M invested -- Free Cash Flow (FCF) = $15M - 3M
- Simultaneously repaying debt and paying dividends -- classic mature company pattern
- Conclusion: Stable but low growth. Positive FCF enables shareholder returns
Example 3: Company Showing Warning Signs
[Income Statement]
Revenue: $30M (-5% YoY, declining)
COGS: -$24M (Gross Margin 20%, deteriorating)
Gross Profit: $6M
SG&A: -$5M
Operating Income: $1M
[Cash Flow Statement]
Operating CF: -$2M (A/R spike, inventory buildup)
Investing CF: +$3M (real estate sold)
Financing CF: +$4M (emergency loan)
Net Cash Change: +$5M
Ending Cash: $8M
Analysis:
- P&L shows a profit (Operating Income $1M), but OCF is -$2M -- earnings quality is poor
- A/R spike suggests customers are not paying on time (bad debt risk)
- Asset sales and emergency borrowing to secure cash -- cash situation is critical
- Gross Margin declining -- cost competitiveness is weakening
- Conclusion: P&L looks acceptable, but CFS reveals clear warning signs
7. Key Metrics Summary
Essential metrics to check when reading P&L and CFS.
Profitability Metrics (P&L-based)
| Metric | Formula | Meaning | Benchmark |
|---|---|---|---|
| Gross Margin | Gross Profit / Revenue | Product/service profitability | SaaS 70%+, Mfg 25%+ |
| Operating Margin | Operating Income / Revenue | Core business efficiency | 15%+ is good |
| Net Margin | Net Income / Revenue | Bottom-line profitability | 10%+ is good |
| EBITDA Margin | EBITDA / Revenue | Cash-basis profitability | 20%+ |
Cash Efficiency Metrics (CFS-based)
| Metric | Formula | Meaning | Benchmark |
|---|---|---|---|
| Free Cash Flow (FCF) | Operating CF - CAPEX | Cash remaining after investment | Stay positive |
| FCF Margin | FCF / Revenue | Cash generation relative to sales | 15%+ is excellent |
| Cash Conversion Cycle (CCC) | DSO + DIO - DPO | Speed of cash turnover (days) | Lower is better |
| OCF / Net Income Ratio | Operating CF / Net Income | Cash quality of earnings | 1.0 or above |
Cash Conversion Cycle (CCC) Explained
CCC = DSO + DIO - DPO
DSO (Days Sales Outstanding) = Accounts Receivable / (Revenue / 365)
→ Days from sale to cash collection
DIO (Days Inventory Outstanding) = Inventory / (COGS / 365)
→ Days from inventory purchase to sale
DPO (Days Payable Outstanding) = Accounts Payable / (COGS / 365)
→ Days from purchase to payment
Example:
Company A: DSO 45 + DIO 30 - DPO 60 = CCC 15 days
Company B: DSO 90 + DIO 60 - DPO 30 = CCC 120 days
→ Company A's cash cycles back in 15 days. Company B takes 120 days.
→ Company B needs additional working capital for those 120 days.
Quick Health Diagnostic Checklist
- Is revenue growing year-over-year? (Growth)
- Is Gross Margin stable or improving? (Product competitiveness)
- Is Operating Cash Flow positive? (Cash generation)
- Is Operating CF > Net Income? (Earnings quality)
- Is FCF positive? (Residual cash after investment)
- Is CCC stable or improving? (Working capital efficiency)
- Is Investing CF negative? (Investing for future growth)
- Is there any abnormal spike in borrowings under Financing CF? (Financial stability)
8. Conclusion
Financial statements are the health report of a company. Just as engineers read server logs, reading P&L and CFS reveals a company's true condition.
Three things to remember:
- P&L is throughput; CFS is memory -- A system can crash from insufficient memory even when throughput is high
- Operating Cash Flow matters more than Net Income -- It reveals the "quality" of earnings
- P&L and CFS must be read together to see the full picture -- Reading only one guarantees blind spots
The next time earnings season comes around, open the financial statements of a company you care about on SEC EDGAR (US) or DART (Korea). Read them with the structure covered in this guide, and the story behind the numbers will start to come alive.
Quiz
Q1: What is the main topic covered in "Accounting Basics for Engineers: How to Read Cash Flow
Statements and Income Statements"?
A practical guide to reading Cash Flow Statements (CFS) and Income Statements (P&L) from an engineer's perspective. Understand the core structure of financial statements through real-world examples and code analogies.
Q2: Why Engineers Should Read Financial Statements?
Engineers design systems, analyze data, and base decisions on quantifiable evidence. Financial
statements are the runtime logs and monitoring dashboard of a company as a system.
Q3: Explain the core concept of Anatomy of the Income Statement (P&L).
The Income Statement shows how much a company earned, how much it spent, and how much remained
over a given period. It is also known as the Profit & Loss Statement (P&L).
Q4: What are the key aspects of Anatomy of the Cash Flow Statement (CFS)?
The Cash Flow Statement shows how much cash actually came in and went out. Under accrual
accounting, revenue can be recognized before cash arrives, which is why the CFS exists as a
separate report.
Q5: What are the key differences in P&L vs CFS: Why a Profitable Company Can Run Out of Cash?
"Black-ink bankruptcy" is a real phenomenon -- a company shows a profit on the Income Statement but runs out of cash and goes bankrupt. Understanding the structural reasons for this gap is essential.