Skip to content

fix: 주간 리포트가 적립 입금을 수익으로 계산하던 문제 - #461

Merged
easygap merged 1 commit into
mainfrom
fix/deposit-neutralisation-in-metrics
Aug 27, 2026
Merged

fix: 주간 리포트가 적립 입금을 수익으로 계산하던 문제#461
easygap merged 1 commit into
mainfrom
fix/deposit-neutralisation-in-metrics

Conversation

@easygap

@easygap easygap commented Aug 27, 2026

Copy link
Copy Markdown
Owner

발견 경위

오너가 오늘 기준금리 인상(2.75% → 3.00%)의 영향을 물어서 지표를 뜯어보다 발견했다. 금리와는 무관한 버그다.

문제

core/performance_lensflows 인자로 외부 유입을 분모에서 중화할 수 있다. 그런데 주간 리포트 호출부가 그걸 안 넘겼다.

어제 kr_pocket에 첫 적립 10만원을 넣자 NAV가 284,499 → 385,460이 됐고, 그 하루가 통째로 +35% 수익으로 계산됐다.

지표 버그 상태 실제
연환산 변동성 109.2% 29.5%
샤프 +2.28 -1.18
하락일 비율 41% 59%

리포트가 오너에게 "샤프 +2.28"이라고 말하고 있었다. 부호가 반대다. 숫자 하나 틀린 것과 다른 층위의 문제다 — 위험 지표가 정반대 결론을 주고 있었다.

왜 이제 드러났나

어제 첫 적립을 넣기 전까지 cash_flows가 비어 있어서 중화할 게 없었다. 적립식 트랙은 이 경로가 상시라, 한 번 새면 매주 샌다.

조치

호출부가 잊을 수 있는 인자였던 게 원인이라 유입 수집을 account_flows_by_day로 빼고 테스트로 고정했다.

함수가 flows를 지원하는 것과 호출부가 실제로 넘기는 것은 다른 문제다. 기존 테스트는 전자만 보고 있었다(test_deposits_are_neutralised). 이번에 추가한 것:

  • 유입을 날짜별로 모으는지 (account_flows_by_day)
  • 실측 수치 고정 — 중화하면 0%, 안 하면 +35% (버그 재현을 테스트에 박아 둠)
  • 입금 하루가 변동성을 3배 이상 부풀리지 않는지

국면 분해(aligned_returns)도 같은 인자를 쓰므로 함께 넘긴다.

전체 스위트 1987개 통과.

performance_lens는 flows 인자로 유입을 중화할 수 있는데 주간 리포트가 그걸 안 넘겼다.
어제 kr_pocket에 적립 10만원을 넣자 NAV가 284,499 → 385,460이 됐고, 그날이 통째로
+35% 수익으로 계산됐다.

  연환산 변동성  109.2%  →  29.5%
  샤프           +2.28   →  -1.18
  하락일          41%    →   59%

리포트가 오너에게 '샤프 +2.28'이라고 말하고 있었다. 실제로는 -1.18이다. 방향이
반대라 숫자 하나 틀린 것과는 다르다 — 위험 지표가 정반대 결론을 주고 있었다.

어제 첫 적립을 넣기 전까지는 흐름이 없어서 드러나지 않았다. 적립식 트랙은 이 경로가
상시라 한 번 새면 매주 샌다.

호출부가 잊을 수 있는 인자였던 게 원인이라, 유입 수집을 account_flows_by_day로
빼고 테스트로 고정했다. 함수가 flows를 지원하는 것과 호출부가 실제로 넘기는 것은
다른 문제다 — 전자만 테스트하고 있었다.

국면 분해(aligned_returns)도 같은 인자를 쓰므로 함께 넘긴다.
@easygap
easygap merged commit 361458c into main Aug 27, 2026
1 check passed
@easygap
easygap deleted the fix/deposit-neutralisation-in-metrics branch August 27, 2026 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant