recipes.fundamental.dividend.buybackVsDividendMix Recipes Recipe curated

자사주 매입 vs 배당 환원 mix

회사의 주주환원이 배당 단독·자사주 단독·혼합 중 어느 modus 인지 + 시점별 mix shift 가 capital allocation 의 어떤 신호 (잉여현금 정점·EPS 부양·지배구조 강화) 인지 row 단위로 분리. 단일 dividend yield 만 보는 함정 회피. analysis 격리 메우는 조합. 트리거 — '자사주 vs 배당', 'buyback vs dividend', '환원 mix'.

이 스킬

자사주 매입 vs 배당 환원 mix

회사의 주주환원이 배당 단독·자사주 단독·혼합 중 어느 modus 인지 + 시점별 mix shift 가 capital allocation 의 어떤 신호 (잉여현금 정점·EPS 부양·지배구조 강화) 인지 row 단위로 분리. 단일 dividend yield 만 보는 함정 회피. analysis 격리 메우는 조합. 트리거 — '자사주 vs 배당', 'buyback vs dividend', '환원 mix'.

Recipes curated recipes.fundamental.dividend.buybackVsDividendMix

연계 절차

이 절차의 단계

  1. 1
    recipes.fundamental.dividend.capitalReturn recipes.fundamental.dividend.capitalReturn

    환원 thesis 진입.

  2. 2
    자사주 취득·처분·소각 의도 진단 recipes.fundamental.quality.forensics.treasuryStockUsage

    자사주 modus (소각 vs 보유) 분류.

  3. 3
    recipes.fundamental.dividend.stressTest recipes.fundamental.dividend.stressTest

    매크로 침체 시 mix 어떻게 흔들리는지.

절차

실행 순서

  1. 1

    5년 dividends / buyback / FCF / capex 시계열 (analysis.capitalAllocation + show CF)

  2. 2

    buybackRatio = abs(buyback) / abs(buyback + dividends)

  3. 3

    fcfCoverage = (dividends + buyback) / FCF — total return / 잉여 흐름

  4. 4

    shift 시점 = buybackRatio 전년 대비 ±0.2 이상 변화

  5. 5

    buyback 자체가 회계상 자기주식 취득과 다름 — 일부 회사 (취득 후 소각) 만 비교 가능.

  6. 6

    FCF 정의 차이 (자유현금흐름 직접 vs 영업CF - capex) peer 비교 노이즈.

  7. 7

    분기·반기 dividend (특별배당) 가 연간 합계에 비대칭 영향.

  8. 8

    fcfCoverage > 1 일관 시 부채 누적 신호 — 별도 leverage 점검 필요.

  9. 9

    mix shift 발생 (≥ 0.2): `recipes.fundamental.dividend.payoutShiftEvent` 로 변동 원인 추적.

  10. 10

    fcfCoverage > 1 + 부채 ↑: `recipes.fundamental.credit.usHighYieldSpread` regime 확인.

  11. 11

    buyback 우선 + 주가 하락: `recipes.fundamental.dividend.foreignOwnershipCorr` 로 외인 동행 검증.

  12. 12

    `totalReturn` 또는 `fcfCoverage` 누락 row 는 결론 근거가 아닌 *coverage 한계* 로만 표기.

예시

이런 질문이 들어오면 이 skill 을 쓴다

  • 005930 5년 자사주 vs 배당 mix
  • 자사주 매입 정점 시점 동시 capex 변화

출력

기대 결과

  • 연도별 배당 / 자사주 / 총환원 / FCF 표
  • mix ratio (buyback / total return) 시계열
  • shift 시점 + 동시 발생 capex / leverage 변화

공개 호출 방식

AI 도구 실행 순서는 EngineCall 우선. 아래 Python 블록은 회사 현금흐름표 row 에서 배당 / 자사주 / FCF / capex 를 묶는 RunPython fallback 절차다.

import dartlab
import polars as pl

target = "005930"
c = dartlab.Company(target)

try:
    rows = c.analysis("capitalAllocation").to_dicts()
except Exception:
    rows = []

# fallback: cashflow row 에서 직접
if not rows:
    try:
        cf = c.panel("cf")
        rows = cf.to_dicts() if hasattr(cf, "to_dicts") else []
    except Exception:
        rows = []

audit = []
for r in rows:
    div = float(r.get("dividends_paid") or r.get("dividendsPaid") or 0)
    buy = float(r.get("treasury_stock_acquired") or r.get("treasuryStockAcquired") or 0)
    fcf = float(r.get("free_cash_flow") or r.get("freeCashFlow") or 0)
    capex = float(r.get("capex") or r.get("capitalExpenditure") or 0)
    total_return = abs(div) + abs(buy)
    buy_ratio = abs(buy) / total_return if total_return else None
    audit.append({
        "year": r.get("year") or r.get("period"),
        "dividends": div,
        "buyback": buy,
        "totalReturn": total_return,
        "buybackRatio": buy_ratio,
        "fcfCoverage": (total_return / fcf) if fcf else None,
        "capex": capex,
    })

table = pl.DataFrame(audit) if audit else pl.DataFrame(
    schema={"year": pl.Utf8, "dividends": pl.Float64, "buyback": pl.Float64,
            "totalReturn": pl.Float64, "buybackRatio": pl.Float64,
            "fcfCoverage": pl.Float64, "capex": pl.Float64}
)

emit_result(
    table=table,
    values={"years": table.height, "lastBuybackRatio": float(table["buybackRatio"].drop_nulls().tail(1)[0]) if table["buybackRatio"].drop_nulls().len() else None},
    date=str(table["year"].max()) if table.height else None,
    sources=["dartlab://analysis/capitalAllocation", "dartlab://show/cf"],
)

호출 동작

1. 결론 도출

buyback vs dividend mix shift + FCF coverage 단정. 예: “2024 buybackRatio 0.32 → 2025 0.65 (mix shift +0.33), fcfCoverage 0.78 — buyback 우선 자본배분 전환 (배당 → 자사주).”

2. 핵심 근거 수집

  • 5년 dividends / buyback / FCF / capex 시계열 (analysis.capitalAllocation + show CF)
  • buybackRatio = abs(buyback) / abs(buyback + dividends)
  • fcfCoverage = (dividends + buyback) / FCF — total return / 잉여 흐름
  • shift 시점 = buybackRatio 전년 대비 ±0.2 이상 변화

3. 메커니즘 분석

연도별 4 row → buybackRatio + fcfCoverage 시계열

연도별 buybackRatio 변화 산출
   |Δ| ≥ 0.2  → mix shift 시점

shift 시점 row 의 capex 변화 + leverage (D/E) 변화 동반 분석

buyback ↑ + capex ↑       → 자사주 + 재투자 동시 (강한 자본 보유)
buyback ↑ + capex ↓       → 자사주 우선 (재투자 기회 부재)
dividend ↑ + buyback ↓    → 안정 배당 정책 강화
fcfCoverage > 1           → FCF 초과 자본배분 (부채 또는 현금 사용)

mix shift 시점이 빈번 (≥ 2 회 / 5년) = 자본배분 정책 불안정. 1 회 = phase 전환. 0 회 = 일관 정책.

4. 반례·한계

  • buyback 자체가 회계상 자기주식 취득과 다름 — 일부 회사 (취득 후 소각) 만 비교 가능.
  • FCF 정의 차이 (자유현금흐름 직접 vs 영업CF - capex) peer 비교 노이즈.
  • 분기·반기 dividend (특별배당) 가 연간 합계에 비대칭 영향.
  • fcfCoverage > 1 일관 시 부채 누적 신호 — 별도 leverage 점검 필요.

5. 후속 모니터링

  • mix shift 발생 (≥ 0.2): recipes.fundamental.dividend.payoutShiftEvent 로 변동 원인 추적.
  • fcfCoverage > 1 + 부채 ↑: recipes.fundamental.credit.usHighYieldSpread regime 확인.
  • buyback 우선 + 주가 하락: recipes.fundamental.dividend.foreignOwnershipCorr 로 외인 동행 검증.

대표 반환 형태

column의미
year결산 연도
dividends배당금 지급액
buyback자사주 매입액
totalReturn배당 + 자사주
buybackRatio자사주 / 총환원
fcfCoverage총환원 / FCF
capex같은 해 capex

연계 절차

  1. recipes.fundamental.dividend.capitalReturn - 환원 thesis 진입.
  2. recipes.fundamental.quality.forensics.treasuryStockUsage - 자사주 modus (소각 vs 보유) 분류.
  3. recipes.fundamental.dividend.stressTest - 매크로 침체 시 mix 어떻게 흔들리는지.

기본 검증

  • totalReturn 또는 fcfCoverage 누락 row 는 결론 근거가 아닌 coverage 한계 로만 표기.
  • buybackRatio 가 1 연도만 튄 경우 결의·발표만 있고 집행 누락 가능성 — 다음 연도 row 와 함께 본다.
  • 자사주 소각 (감자) vs 단순 자기주식 보유 구분은 본 recipe 밖. treasuryStockUsage 로 연계.

런타임

실행 환경별 호환성

환경상태비고 / 제한
Local Python supported·
Server supported·
MCP supported·
Web AI limited·
Pyodide limited·

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • 자사주 매입 결의만 보고 실제 집행 누락
  • 자사주 소각 vs 자기주식 보유 구분 미반영
  • 외환 환산 후 양·음 부호 혼동
절대 금지
  • mix shift 의 의미를 추론 라벨 (EPS 부양·지배강화) 로 단정
  • 단일 연도 mix 로 정책 결론