"ledger 는 네가 걸어온 걸음을 전부 기억하려 들어. snapshot 은 네가 지금 어디 서 있는지만 말해 주고. 네 진짜 질문에 답하는 쪽을 골라."
돈을 모델링하는 두 가지 방법
포트폴리오를 모델링하는 방법은 뿌리부터 다른 두 갈래가 있어. ledger 는 이벤트를 전부 기록해. 매수, 매도, 배당, 수수료, 분할 하나하나를 남겨 두고, 그 이력을 재생해서 현재 포지션을 다시 만들어 내지. snapshot 은 현재 상태를 그냥 직접 저장해. 이 종목 몇 주, 현금 얼마. 거기까지 어떻게 왔는지는 안 남겨. Keep 는 일부러 snapshot 시스템을 골랐어. owner 마다 ticker 당 포지션 하나, seed 금액, stored cash 잔고. 모델의 모양은 이게 전부야.
왜 snapshot 쪽이었을까
실제 질문에 맞으니까. Keep 가 존재하는 이유는 "가족이 지금 뭘 갖고 있고, 어떻게 되고 있나?" 에 답하기 위해서야. "모든 거래를 재구성해서 세금까지 계산해 줘" 가 아니라. 완전한 ledger 를 지으려면 딸려 오는 게 어마어마해. tax lot, cost-basis 계산 방식, wash-sale 규칙, 배당 재투자, 수수료 회계까지. 하나하나가 버그가 자랄 자리인데, 그중 어느 것도 low-trigger monitoring 이라는 목표에 봉사하지 않아. 그래서 Keep 는 전부 명시적인 non-goal 로 못박았어. tax-lot 회계 없음, 배당/수수료 ledger 없음, 거래 이력 없음. 여기선 scope 를 좁힌 것 자체가 기능이야.
포기하는 것도 정직하게
공짜 선택은 아니야. 순수한 snapshot 은 거래를 저장한 적이 없으니, 올해 실현 이익이 얼마인지 말해 줄 수 없고 cost basis 가 왜 그 값인지 되짚어 줄 수도 없어. Keep 는 이 trade-off 를 알고 받아들였어. 그게 바로 scope 밖이라고 선언한 ledger 기능들이거든. 만약 tax-lot 회계가 진짜로 필요하다면 snapshot 은 틀린 모델이야. 짓기 전에 그걸 알아야 하고. snapshot 을 고른다는 건, 열 가지 질문에 어중간하게 답하는 대신 한 가지 질문에 지독하게 잘 답하기로 정하는 거야.