AI 에이전트로 배부 분석하기
PlaidCloud의 MCP 서버는 배부 모델을 AI 에이전트에 공개하므로, 배부를 실행한 뒤에는 Claude Code, Claude Desktop, Cursor, ChatGPT 등 MCP와 호환되는 모든 클라이언트의 채팅에서 결과를 일상적인 말로 질문할 수 있습니다. 에이전트가 배부 모델을 직접 읽기 때문에 각 비용 항목이 어떻게 구성되고 무엇이 그 항목을 좌우하는지 이미 알고 있습니다.
질문할 수 있는 내용
섹션 제목: “질문할 수 있는 내용”배부가 바뀐 이유
섹션 제목: “배부가 바뀐 이유”가장 흔한 질문입니다. 두 기간을 비교해 변동을 설명하도록 요청합니다.
매출 기준으로 배부된 비용 항목이 1월에서 2월로 넘어오면서 왜 바뀌었나요?
에이전트는 다음을 알려 줍니다.
- 변동의 크기: 이전 값, 이후 값, 그리고 차이.
- 변동 요인: 입력 비용 풀이 늘었는지 줄었는지, 또는 드라이버 구성이 달라졌는지.
- 주요 기여 항목: 가장 크게 움직인 계정, 비용 센터 또는 제품.
한 부분만 자세히 살펴보기
섹션 제목: “한 부분만 자세히 살펴보기”같은 질문을 단일 멤버로 좁히면 더 정확한 분석을 얻을 수 있습니다.
운영 비용 센터만 설명해 주세요.
에이전트는 두 가지 효과를 구분합니다. 전체 풀이 움직여서 생긴 부분과, 풀에서 해당 부분이 차지하는 비중이 바뀌어서 생긴 부분입니다. 예를 들어 운영 부문은 풀에서 더 큰 비중을 가져갔음에도 풀 자체가 줄었기 때문에 감소했다고 설명합니다.
비중이 움직인 것이 원인이라면 에이전트는 그 비중을 나누는 기준이 되는 드라이버를 짚고, 양쪽 시점의 비중을 함께 제시합니다. 예: “이 부분이 풀에서 차지하는 비중의 변화(인원 드라이버를 기준으로 분할되며, 이 부분이 비용 풀에서 차지하는 비중은 26.5%에서 18.2%로 변했습니다)”. 이것이 바로 조치할 수 있는 부분입니다. 비중은 결과이고, 드라이버는 누군가 소유하며 확인할 수 있는 입력이기 때문입니다. 두 수치는 동일한 풀 비중이며, 사용자가 직접 찾아보지 않아도 되도록 명시되어 있습니다. 누구의 비중인지도 함께 밝히는 이유는 이것이 드라이버 열에서의 비중이 아니기 때문이며, 둘은 완전히 다를 수 있습니다. 어떤 부분은 두 해 모두 드라이버에서 완전히 동일한 비중을 유지하면서도 풀에서의 비중은 8포인트 떨어질 수 있으므로, 이 한 쌍을 드라이버의 값으로 읽으면 전혀 움직이지 않은 입력의 가중치를 조정하러 가게 됩니다. 비중이 의미 있는 백분율이 아닌 경우에는 수치 없이 드라이버만 언급합니다. 풀에 서로 상계되는 대변이나 역분개가 포함되면(적자 항목이 흔한 사례입니다) 한 부분이 풀 전체보다 많거나 아예 없는 몫을 가질 수 있으며, “11.1%에서 900.0%“와 같은 비중은 정보를 주기보다 오류처럼 보입니다. 이런 경우에도 드라이버는 여전히 조정 수단이므로 이름은 밝힙니다. 드라이버가 아예 없는 단계에는 언급할 드라이버가 없으므로 문장은 기존과 같이 표시됩니다.
비중에는 해당 풀이 속한 열의 이름이 붙습니다. 각 값 열은 자기 풀에서 배부되므로, 여러 열이 있는 테이블에서는 한 부분이 열마다 비중을 가집니다. 예전에는 이 줄이 “풀 비중”이라고만 표시되었고, 그래서 한 모델에서는 같은 부분의 같은 두 해에 대해 서로 구분할 수 없는 비중 세 개(26.5%에서 18.2%, 25.9%에서 18.1%, 21.9%에서 16.9%)가 출력되었습니다. 이제는 “이 부분이 비용 풀에서 차지하는 비중”, “매출 풀에서 차지하는 비중”, “마진 풀에서 차지하는 비중”처럼 표시됩니다. 단일 열 답변도 열 이름을 명시하는데, 그 경우에도 “풀 비중”만으로는 이 열의 풀인지 모델 전체의 풀인지 알 수 없기 때문입니다. 단계에 읽을 수 있는 열 이름이 없는 경우에는 아무것도 지정하지 않는 대신 기존과 같은 문구로 표시됩니다.
나머지 두 가지 설명에서는 일부러 드라이버를 언급하지 않습니다. 풀 전체가 움직였거나 유입되는 값이 바뀐 경우에는 드라이버가 원인이 아니므로, 이름을 밝히면 잘못된 입력을 가리키게 되기 때문입니다.
값의 출처와 값이 공급하는 대상
섹션 제목: “값의 출처와 값이 공급하는 대상”배부의 계보를 어느 방향으로든 추적할 수 있습니다.
이 비용 항목은 어디에서 오나요?
GL 비용 풀은 하위 어디로 공급되나요?
에이전트는 상위 소스와 드라이버를 나열하거나, 배부와 그 사이의 변환을 포함해 해당 테이블이 공급하는 하위 단계를 모두 나열합니다.
배부를 좌우하는 요소
섹션 제목: “배부를 좌우하는 요소”매출이 드라이버로 사용되나요? 사용된다면 어디에서 사용되나요?
에이전트는 해당 테이블을 드라이버(분할의 기준)로 사용하는 단계와, 입력(분배되는 값)으로 사용하는 단계를 구분해 각각 나열합니다.
변경하면 어떻게 되는지
섹션 제목: “변경하면 어떻게 되는지”미래를 가정한 질문도 할 수 있습니다.
다음 분기에 매출이 100만 증가하면 어떤 비용 항목이 영향을 받나요?
에이전트는 영향을 받는 출력과 각각의 추정 규모를 알려 줍니다. 팬아웃으로 나뉘는 경우에는 각 결과의 현재 풀 비중에 따라 나누므로, 대상별 수치를 합하면 전체 변동과 맞아떨어지며 각 대상이 전체 변동을 그대로 보여 주지 않습니다. 질문을 특정 대상 하나로 한정할 수도 있습니다. 예를 들어 “매출이 100만 달러 늘면 고객 A에는 어떤 영향이 있나요?“라고 물으면 추정치가 해당 부분에만 적용됩니다.
존재하는 배부
섹션 제목: “존재하는 배부”이 프로젝트에는 어떤 비용 배부가 있나요?
에이전트는 배부 모델과 각 모델의 최종 출력 테이블을 나열합니다. 익숙하지 않은 모델을 파악할 때 유용합니다.
답변 이해하기
섹션 제목: “답변 이해하기”모든 설명에는 에이전트가 그 설명을 얼마나 확신하는지가 표시되며, 마찬가지로 중요하게는 확신에 찬 듯한 수치가 오해를 부를 수 있을 때 그 사실도 표시됩니다. 이러한 경고는 세부 내용에 묻히지 않고 쉬운 말로 된 요약 자체에 포함되므로, 수치에 따라 행동하기 전에 먼저 확인할 수 있습니다.
신뢰도 줄은 어떤 분석 기준을 평가하는지 밝힙니다. 답변이 단일 값 열을 다루고 멤버별 분석을 보여 주는 경우, 신뢰도 줄에는 그 분석을 나누는 필드가 표시됩니다. 예를 들어 “lob별 이 분석의 신뢰도: 높음”과 같이 표시되며, 이는 바로 위의 변동 상위 목록 머리글에 쓰인 필드와 같습니다. 답변이 직접 제안한 다음 단계를 따를 때 특히 중요합니다. 같은 수치를 사업 부문별로 나눈 뒤 지점별로 나누면 각각 중간, 높음으로 평가될 수 있으며, 이는 나누는 방식이 달라지면 서로 상쇄되는 멤버가 달라지기 때문입니다. 필드 이름이 없으면 이 둘은 하나의 수치를 두 번 평가한 것으로 읽히고, 두 번째 평가는 “다시 살펴봤는데 괜찮다”로 읽힙니다. 필드 이름이 있으면 서로 다른 두 분석에 대한 두 개의 평가로 읽힙니다.
답변이 여러 열을 다루는 경우에는 필드 이름이 표시되지 않습니다. 분석은 그중 한 열에 대해서만 보여 주기 때문입니다. 평가는 모든 열을 포괄하지만 멤버 목록은 한 열만 다루며 그 열이 무엇인지는 목록의 머리글에 표시됩니다. 두 곳 모두에 필드 이름을 표시하면 세 개의 열에 걸쳐 프로그램별 분석을 평가한다고 해 놓고서, 몇 줄 아래에서는 세 열 중 두 열이 풀 전체만 설명한다고 알리는 모순이 생겼습니다. 이제 이러한 답변은 “이 수치의 신뢰도”로 표시되며, 어떤 열과 어떤 필드의 멤버인지는 변동 상위 목록이 알려 줍니다. 분석을 전혀 보여 주지 않는 답변도 동일하게 표시됩니다.
답변이 여러 값 열을 다루는 경우, 블록에는 그 열들의 관계와 각 열이 어느 값에서 어느 값으로 움직였는지가 표시됩니다. 예전에는 각 줄에 변동과 백분율만 있고 금액이 없어서, margin이 19.9% 감소한 것이 cost의 10.4% 감소, revenue의 11.5% 감소와 나란히 놓이면 마진이 비용의 거의 두 배 속도로 줄어드는 것처럼 읽혔습니다. 실제로는 그렇지 않습니다. 세 열은 정확히 균형을 이루며, margin의 기초 금액은 $53,848,657.50으로 cost의 $401,305,825.54에 비해 훨씬 작으므로 같은 금액이라도 훨씬 큰 백분율이 됩니다. 이 두 사실 모두 화면에 없었고, 기초 금액과 기말 금액이 표시된 유일한 열은 정작 그 금액이 필요하지 않은 열이었습니다. 그래서 이 레버리지를 알아내려면 소수점 첫째 자리로 반올림된 백분율에서 기초 금액을 역산해야 했고, 그 정밀도는 몇 퍼센트 오차 정도에 그쳤습니다. 이제 모든 줄은 변동 전후 두 금액으로 끝납니다. 예: - margin: -$10,701,036.06 (-19.9%), from $53,848,657.50 to $43,147,621.44. 행 위의 한 줄은 열들이 기간의 양쪽 끝에서도, 변동에서도 센트 단위까지 균형을 이룬다고 알리고, 그 균형을 열 중 하나를 기준으로 표현하며, 어느 열이 가장 작은 금액에서 출발하는지 밝힙니다. 예: “이 3개 열은 기간 양 끝에서 센트 단위까지 일치하며 변동도 마찬가지입니다. margin은 revenue에서 cost를 뺀 값과 같습니다. 가장 작은 기초 수준은 margin의 것이므로, 같은 금액이라도 다른 열보다 훨씬 큰 백분율이 됩니다.” 두 주장 모두 바로 아래 행에서 확인할 수 있으며, 이것이 이 주장을 제시하는 이유의 전부입니다.
모델이 어떻게 만들어졌는지는 언급하지 않습니다. 열 중 하나가 나머지로부터 계산되는지는 답변이 알 수 없는 사항이며, 균형을 어떻게 재배열하든 똑같이 참입니다. margin = revenue - cost와 cost = revenue - margin은 같은 세 수치를 설명하므로, 하나를 계산된 열로 지목하면 산술이 뒷받침하지 않는 내용을 주장하는 셈입니다. 균형을 표현하는 기준 열은 발견이 아니라 명시된 선택이며, 가장 작은 금액에서 시작하는 열입니다. 답변은 명시적인 부정도 포함하지 않습니다. 이를 뒷받침할 근거가 화면에 없고, 확인 가능한 균형 옆에 근거 없는 부정이 있으면 그 균형의 신뢰성까지 떨어지기 때문입니다.
같은 수치에 정확한 두 번째 관계가 있으면 블록이 그것도 밝힙니다. 균형은 열들이 어떻게 합산되는지를 알려 주는데, 이것만 받은 독자는 다른 관계를 찾는 것을 멈추게 됩니다. 그래서 순수익에 대한 수익과 그 수익에서 차감되는 비용을 보고하는 은행 모델에서는 자본 비용이 두 기간 모두 자금 조달 비용의 정확히 10분의 4라는 사실이 언급되지 않았고, 하나의 양을 두 번 센 두 줄이 서로 독립된 비용처럼 읽혔습니다. 이제 두 열이 양쪽 끝에서 하나의 비율을 유지하면 블록이 그 비율을 밝히고 두 열이 따라서 같은 속도로 움직였다고 알립니다. 예: “capital_charge와 funding_charge는 양쪽 끝에서 0.4의 일정한 비율을 유지하므로 두 열은 같은 속도로 움직입니다.” 더 넓은 열 그룹이 하나의 비율을 유지하면 그 그룹을 밝힙니다. 예: “3개 열 모두 같은 속도로 움직였으므로 서로 간의 비율은 그대로입니다.” 부호가 바뀌는 구간에서도 비율이 유지된다면 해당 열들은 하나의 속도가 아니라 비례하여 움직인 것입니다. 양수 금액을 기준으로 측정한 상승과 음수 금액을 기준으로 측정한 하락은 크기가 같고 방향이 반대이기 때문입니다. 균형과 마찬가지로, 이들 각각도 아래의 모든 행에 있는 두 금액으로 확인할 수 있습니다.
균형은 명시하되 크기 비교는 생략하는 경우가 있습니다. 어느 열이 음수 금액에서 시작하는 경우(이때는 크기가 가장 작은 열과 값이 가장 작은 열이 서로 다른 열이 되어 아래에 표시된 금액만으로는 “가장 작다”를 판별할 수 없습니다), 가장 작은 기초 금액이 그다음 금액보다 크게 작지 않은 경우, 그리고 옆의 수치가 이미 그 열이 다른 열과 같은 속도로 움직였음을 보여 주는 경우(차이를 먼저 내세우고 그 수치가 곧바로 부정하게 되는 바로 그 경우)입니다. 균형을 이루는 방식이 둘 이상 수치에 들어맞는 경우, 열들의 합이 0이 되는 경우, 센트 단위로 균형이 맞지 않는 경우, 두 열이 같은 금액에서 시작해 균형을 표현할 단일한 가장 작은 열이 없는 경우에는 아무것도 명시하지 않습니다. 마지막 경우에는 모든 두 열 답변이 해당합니다. 두 열이 만족할 수 있는 균형은 a = b와 a = -b뿐이며, 둘 다 두 기초 금액의 크기를 같게 만들기 때문입니다. 단일 값 열을 다루는 답변은 달라지지 않습니다.
첫 요약은 그 수치가 변동이라는 점과 어느 두 기간에 대한 것인지를 밝힙니다. 한 줄 요약은 채팅 답변, 대시보드 타일, 자동화된 단계 등으로 홀로 전달되는 부분이며, 답변이 여러 값 열이나 여러 재결합 브랜치를 다룰 때는 각각의 변동을 interest_income=$6,177,792.16처럼 기간이 어디에도 언급되지 않은 수치로만 나열했습니다. 이렇게 단독으로 읽으면 해당 기간의 기말 잔액으로 오해하기 쉽습니다. 한 열이 다른 열들을 상계한 값인 테이블에서는 이 수치들이 그렇게 읽어도 균형이 맞으므로, 수치를 서로 대조해 본 독자는 다시 확인해 볼 계기 없이 내부적으로는 일관된 잘못된 답을 얻었습니다. 이 한 줄만 받은 독자 세 명이 각자 한 사업 부문이 $3.0m 손실을 봤다고 보고했지만, 실제로는 이미 $12.9m 감소한 상태에서 $3.0m이 더 떨어진 것이었습니다. 이제 이 줄은 수치 앞에 변동의 기준 기간을 먼저 밝히고, 상승한 값에는 부호를 붙입니다. 예: “2024년에서 2025년으로의 변동: interest_income +$6,177,792.16, funding_charge +$6,584,192.90, capital_charge +$2,633,677.18, net_contribution -$3,040,077.92”. 단일 값 열에 대한 답변은 이미 “delta”라고 표시했으며 달라지지 않습니다.
또한 서로 다르게 평가한 열에 대해 하나로 뭉뚱그린 신뢰도를 주지 않습니다. 예전에는 그 요약이 “높음”이라는 단어 하나만 담았는데, 아래 답변에서는 net_contribution이 중간으로 평가되었습니다. 평균은 각 열이 얼마나 움직였는지에 따라 가중되고 요약 열은 가장 작게 움직이는 열이기 때문입니다. 그 줄만 따로 전달되면 대다수의 평가가 사람들이 실제로 조치하는 열의 평가를 덮어쓰게 됩니다. 이제는 그 열을 먼저 밝히면서 평가와 그 이유를 함께 제시하고, 나머지의 평가는 그 뒤에 덧붙입니다. 예: “net_contribution 열은 중간(대체로 정상 — 변동의 10%는 풀 총합의 변화와 풀에서 이 부분이 차지하는 비중의 이동 사이의 상호작용입니다), 나머지 3개 열은 높음”. 이는 아래 답변의 신뢰도 줄과 같은 형태이며 같은 취약한 열입니다. 열들이 일치하는 경우에는 요약이 기존처럼 하나의 수준만 표시합니다.
테이블에 값 열이 여러 개 있으면 그 표시는 각 열이 움직인 정도로 가중한 평균이며, 에이전트가 덜 확신하는 열이 있으면 그 열이 가장 먼저 표시됩니다. 예: “이 수치의 신뢰도: net_contribution 열은 중간(총액 상계), 나머지 3개 열은 높음”. 마지막 수준이 아니라 첫 번째 수준을 읽으세요. 요약 열은 다른 열들의 차이이므로 대개 가장 작게 움직여 그 평균에서 가중치가 가장 낮지만, 답변이 가장 먼저 다루고 사용자가 조치할 가능성이 가장 높은 열입니다. 이름이 표시되는 열은 더 약한 쪽이며, 항상 요약 열인 것은 아닙니다. 에이전트가 사용자를 대신해 검색할 열을 직접 선택한 경우에는 그 열이 에이전트가 덜 확신하는 열인 경우가 많습니다.
더 약한 열이 답변의 대상 열인 경우, 더 높은 평가는 답변이 아니라 나머지 열에 대한 것으로 명시됩니다. 예전에는 “4개 열 전체에서 전반적으로 높음”으로 끝났는데, 수익과 그에 상계되는 비용을 함께 보고하는 테이블에서는 그 나머지 열이 요약 열을 구성하는 요소이므로 평균이 가중하는 변동의 대부분을 차지합니다. 그래서 그 평균은 묻지 않은 열에 대한 안심 문구였습니다. 줄을 끝까지 훑어본 독자는 정작 자신이 가진 단 하나의 수치에 대해 “높음”을 가져갔습니다. 더 약한 열이 답변이 가장 먼저 다루는 열이 아닌 경우(예를 들어 에이전트가 검색 대상으로 직접 선택한 열)에는 그 평가가 사용자가 요청한 열에 대한 것이므로 줄은 여전히 전체 평가로 끝납니다.
열들이 일치하는 경우, 줄은 그 평가가 몇 개 열에 대한 것인지를 밝히며, 열들이 같은 이유를 공유할 때만 이유를 제시합니다. 예전에는 평가 뒤에 아무것도 붙지 않으면 하나의 판정과 하나의 설명으로 읽혔지만, 실제로는 한 열의 설명이 붙은 평균이었습니다. 이제는 “3개 열에 걸쳐 중간”처럼 범위를 밝히고, 모든 열의 이유가 같을 때만 괄호 안에 이유를 적습니다. 열마다 다를 때는 이유를 제시하지 않습니다. 세 열에 대한 평균에 한 열의 이유를 붙이면 사용자에게 보여 주지 않은 열에 대한 주장이 되기 때문입니다. 실제 자동차 모델에서는 margin이 38.0% 감소한 것 옆에 “mixed residual”이 붙었는데, 그 잔차는 0.2% 움직인 cost 열의 것이었습니다. 열별 이유는 여전히 아래 솔직한 한계에 각 열 옆에 표시됩니다. 단일 열 답변은 평균할 대상이 없으므로 기존처럼 표시됩니다.
모든 열을 포괄하는 평가도 명시된 한계가 있는 열은 계속 밝힙니다. 모든 열이 같은 평가를 받으면 더 약한 열이 없지만, 그중 하나가 솔직한 한계에 기술된 한계를 가지고 있을 수 있는데 모든 열을 아우르는 단어 하나만 있으면 아무 열도 그렇지 않은 것처럼 읽힙니다. 실제 은행 모델에서는 이 줄이 네 개 열을 중간으로 평가했는데, 열두 줄 아래에 답변이 가장 먼저 다루는 바로 그 열인 net_contribution의 한계가 있었습니다. 이제 이 줄은 그런 열을 밝히며 끝납니다. 예: “4개 열에 걸쳐 중간, net_contribution 열에는 명시된 한계도 있습니다”. 이렇게 평가와 한계를 함께 읽도록 합니다. 한계 자체는 여기서 반복하지 않습니다. 그것은 수치가 약하다는 뜻이 아니라 변동이 원인들 사이에서 어떻게 나뉘는지에 대한 설명이며, 솔직한 한계에 전문이 그대로 남아 있습니다. 모든 열이 같은 한계를 가진 경우에는 줄이 바뀌지 않고, 대신 분석 블록이 수치 위에 그 사실을 한 번 밝힙니다. 이미 덜 확신하는 열로 지목된 열이 있으면 그 지목이 그대로 유지됩니다.
답변이 이미 원인 사이의 분할이 발견 사항이 아니라고 밝힌 경우, 평가는 무엇을 평가하는지 밝힙니다. 배부는 풀의 크기를 바꾸지 않고 나누므로, 풀 전체 답변에서 “유입되는 값”과 “드라이버” 사이의 분할은 측정된 것이 아니라 그 산술에 의해 강제됩니다. 답변은 솔직한 한계와 추적된 단계에서 이를 두 번 밝힙니다. 그 위의 평가는 예전에 “높음(명확한 기여도)“이라고 표시되었고, 거기서 읽기를 멈춘 독자는 같은 페이지가 아래에서 철회하고 있는 원인을 확정된 것으로 받아들였습니다. 이제는 “3개 열에 걸쳐 높음(명확한 기여도 — 변동 이유가 아니라 산술을 기준으로 평가함)“으로 표시되어, 줄 스스로 그런 읽기를 거부합니다. 평가 자체는 바뀌지 않았습니다. 수치는 여전히 맞아떨어지며 여전히 높게 평가됩니다. 분할이 실제로 측정된 경우와 일부 열만 풀 전체 기준인 경우에는 줄이 기존처럼 표시됩니다.
열들이 이유를 공유하지만 그 이유의 양이 서로 다르게 측정된 경우, 그 이유 옆의 수치는 한 열의 수치가 전체를 대표하는 대신 열들이 측정한 범위로 표시됩니다. 예: “대체로 정상 — 3개 열 각각의 변동 중 가장 낮은 경우 8%, 가장 높은 경우 12%가 … 사이의 상호작용입니다”. 열들이 같은 양을 측정한 경우에는 기존처럼 단일 수치를 표시합니다.
여러 열을 함께 평가할 때, 줄은 답변이 가장 설명이 부족한 열을 중심으로 시작하는지를 밝힙니다. 추적의 각 단계는 해당 열의 변동 뒤에 있는 가장 큰 단일 요인과 그 요인이 변동의 얼마를 설명하는지를 밝힙니다. 이 수치는 답변 끝에 단계당 한 번씩만 나타나고 서로 비교되지 않았습니다. 그래서 한 자동차 모델에서는 답변이 margin으로 시작하고 margin에만 멤버별 분석을 제공했는데, 맨 아래 추적을 보아야만 가장 큰 단일 요인이 비용 변동의 81%, 매출 변동의 79%, 마진 변동의 60%만 설명한다는 것을 알 수 있었습니다. 답변이 기반으로 삼은 수치가 이야기가 가장 덜 맞아떨어지는 것이었던 셈이고, 세 열을 모두 포괄하는 평가 하나를 독자가 그 수치에 적용하게 됩니다. 이제 신뢰도 줄은 이를 밝히며 끝납니다. 답변이 어느 열로 시작하는지, 그 열이 단일 요인으로 가장 적게 설명되는 열이기도 한지, 각 경우에 같은 요인인지, 각 열에 대해 그 요인이 얼마를 설명하는지, 그리고 각 변동의 나머지는 누락된 것이 아니라 다른 요인과 요인 사이의 상호작용이 담당한다는 점입니다. 이는 신뢰도 수준 자체와는 다른 척도이며, 금액이 아니라 각 변동이 요인 사이에서 어떻게 나뉘는지에 관한 것입니다. 편차가 작은 경우, 어느 열의 분할이 공개되지 않는 경우, 또는 두 열이 가장 낮은 값에서 같은 경우에는 아무것도 표시하지 않습니다. 이때는 답변이 가장 잘 설명하지 못하는 열이 없고, 동일한 두 수치 중 하나를 고르는 것이 되기 때문입니다.
여러 배부 브랜치를 재결합하는 테이블도 같은 방식으로 읽습니다. 전체 수준은 각 브랜치가 얼마나 움직였는지로 가중한 브랜치 평균이므로, 기여도가 불안정한 작은 브랜치는 크고 정상적인 브랜치에 밀려 사용자가 가져가는 수치는 평균이 됩니다. 에이전트가 덜 확신하는 브랜치는 그 수치보다 먼저 이름이 표시됩니다. 예: “이 수치의 신뢰도: Allocate Support Costs 브랜치는 중간, 2개 브랜치에 걸쳐 전체적으로 높음”. 또한 브랜치별 분석에서 해당 브랜치의 줄에도 자체 수준이 함께 표시되므로, 마지막 줄이 지목한 브랜치는 목록에서 항상 찾을 수 있습니다. 브랜치가 여러 값 열을 다루면 열 이름도 함께 표시됩니다. 각 브랜치의 줄은 변동 전후의 두 수치도 제시합니다. 예: Allocate Support Costs: -$72,000.00 (from $120,000.00 to $48,000.00). 이렇게 하면 브랜치의 변동을 그 브랜치 자체의 크기에 비추어 판단할 수 있고, 그 금액이 작은 브랜치의 대부분인지 큰 브랜치의 반올림 오차인지를 알 수 없는 단순한 금액으로 읽히지 않습니다. 수치에 주의 사항이 있는 줄에는 · carries a caveat이 표시되며, 이는 옆의 신뢰도 수준과는 별개입니다. 수준은 한 브랜치가 답변 전체와 어떻게 비교되는지를 나타내므로, 모든 브랜치가 같은 문제를 공유하는 경우 어느 것도 두드러지지 않으며, 이때가 바로 분석에 단서를 달 필요가 가장 큰 때입니다. 블록의 모든 수치에 같은 주의 사항이 적용되는 경우, 블록은 수치 위에 이를 한 번만 밝히고 그 주의 사항이 브랜치들을 서로 비교하는 데 영향을 준다고 알립니다. 모든 브랜치에 걸친 의구심을 각각에 대한 별도의 의구심으로 읽으면 금액은 무시하고 순위는 믿게 되기 쉬운데, 그런 주의 사항이 가장 남기지 않을 것 같은 부분이 바로 순위이기 때문입니다. 값 열별 분석도 같은 방식으로 표시됩니다.
열이나 브랜치에 표시된 수준은 항상 답변 전체보다 약함을 의미합니다. 전체 수치와 같거나 그보다 확신이 큰 수준은 표시하지 않습니다. 표시는 주의해야 할 이유이지 안심시키는 신호가 아닙니다.
마지막 줄은 표시보다 한 걸음 더 나아갑니다. 일부 열이나 브랜치가 나머지보다 강하고 가장 약한 그룹이 모두 같은 이유를 가진 경우, 그 그룹이 전체 수준 아래로 내려가지 않고 전체 수준과 같을 뿐이더라도 이름이 표시됩니다. 전체 수준에서는 수준 자체가 새로운 소식이 아니고 이유가 말할 내용의 전부이기 때문입니다. 모든 열이나 브랜치가 전체 수준에 있는 경우에는 어느 것도 이름이 표시되지 않습니다. 줄이 이미 그 모두에 대한 것이기 때문입니다.
같은 규칙이 추적 내부에도 적용됩니다. 답변 끝의 단계별 설명은 예전에 각 단계의 자체 신뢰도를 주의 사항마다 표시했습니다. 그래서 “낮음(부분 기여도)“으로 시작하는 답변이 수치가 있는 블록에서 여덟 줄 아래에 “주의 사항(높은 신뢰도)“을 두 번 표시할 수 있었습니다. 단어는 하나인데 범위가 둘이고 페이지에는 이를 구분하는 것이 없어, 수치를 찾아 훑어보던 독자는 잘못된 쪽을 가져갔습니다. 이제 단계는 답변 전체보다 약한 경우에만 신뢰도 단어를 밝히며, 그렇지 않으면 줄은 “주의 사항: …“으로 표시되고 주의 사항 자체는 달라지지 않습니다.
신뢰도를 낮추는 요인이 둘이면 줄은 둘 다 밝힙니다. 기간별로 불균등하게 채워진 데이터와, 에이전트가 기여도를 산정하지 못한 상위 체인의 일부 때문에 중간으로 유지되는 평가는 예전에 첫 번째만 출력했고, 그래서 레이블만 훑어본 독자는 더 심각한 나머지 절반을 알 수 없었습니다. 이제는 “계정별 이 분석의 신뢰도: 중간(기간 범위 불균등, 부분 기여도)“으로 표시되며, 이는 해당 답변의 첫 요약이 이미 말하던 바와 같습니다.
추적의 “Concentrated:” 줄은 수치를 측정한 열을 밝힙니다. 추적의 각 단계는 값 열 하나를 다루며, 단계의 변동이 한 멤버에 집중되어 있으면 이를 밝힙니다. 예: “branch=REGIONAL = 델타의 70%”. 단계는 줄의 처음에 열 이름을 밝히지만, 여러 열을 다루는 답변에서는 그 위에 출력된 분석이 이를 덮어씁니다. 한 은행 모델에서는 두 단계가 REGIONAL에 70%를 인용했지만 페이지에 있는 유일한 행은 net_contribution이었고, 거기서 REGIONAL은 네 개 중 마지막으로 변동의 약 5분의 1을 차지했습니다. 둘 다 각자의 열에 대해서는 맞았습니다. 이제 이러한 줄은 “funding_charge 델타의 70% — 이는 풀 비중이 바뀐 것이 아니라 그 열 자체의 변동입니다”로 표시되며, 판단은 줄 단위가 아니라 답변 전체에 걸쳐 이루어집니다. 서로 다른 열에 대해 같은 백분율을 인용하는 두 단계는 분석이 관련되지 않아도 같은 혼동이므로, 모든 집중 줄이 열 이름을 밝히거나 하나도 밝히지 않습니다. 단일 열을 다루는 답변과 모든 단계가 분석한 열에 대한 것인 답변은 기존처럼 표시됩니다.
추적의 각 단계는 그 수치가 포괄하는 행을 밝힙니다. 슬라이스로 범위가 지정된 질문은 그 슬라이스에 대해 자체 단계를 실행하고 그 위의 모든 단계는 풀 전체에 대해 실행합니다. 범위는 사용자가 질문한 테이블에 대해 작성되므로 앞선 테이블에는 영향을 주지 않으며, 이 사실을 알리는 것이 없었습니다. 그래서 한 답변의 두 단계가 -$9,321,592.41과 -$16,235,106.82를 보여 주면서, 두 번째가 첫 번째가 제외한 행을 포괄한다는 것을 알 방법이 없었고, 이는 가장 자연스러워 보이지만 아무것의 비중도 아닌 나눗셈을 유도합니다. 이제 단계는 범위가 다른 곳에서 대상 행을 표시합니다. 범위가 지정된 단계에는 (entity=DE), 그 위 단계에는 (all entity values)가 붙으며, 체인 전체가 같은 행을 사용했다면 아무것도 추가되지 않습니다. 특이한 쪽만이 아니라 양쪽 모두 표시되는데, 한 줄에만 있는 메모는 그 줄에 대한 추가 사실처럼 읽히고 양쪽에 같은 메모가 있으면 대비로 읽히기 때문입니다.
“Concentrated:” 수치는 어느 단계에 속하는지 밝힙니다. 한 답변의 두 단계가 각각 같은 멤버에 집중되고 반올림된 백분율도 같은 경우, 두 줄은 동일하게 출력되었습니다. 변동이 $6.9m 차이 나는데도 “account=600000 = 델타의 64%“가 두 번 나온 식입니다. 각 줄은 자기 단계에 대해서는 맞았지만, 함께 놓으면 하나의 발견을 반복한 것처럼 읽히고, 같은 백분율이 나왔다는 사실이 확인해 보라는 신호를 오히려 없앱니다. 이제 이러한 줄은 “1단계에서 델타의 64%“로 표시되어 테이블이 아니라 단계를 밝힙니다. 슬라이스로 범위가 지정된 단계는 해당 테이블의 합계를 공유하지 않으므로, 테이블을 밝히면 백분율을 계산한 기준이 아닌 기준을 가리키게 됩니다. 이 표시는 서로 구분해야 할 이러한 줄이 둘 이상인 답변에 나타나며, 추적과 첫 요약 모두에 동일하게 적용됩니다.
풀 보존 안내는 산술이 강제하는 절반을 밝히고 나머지는 측정합니다. 배부는 나누는 풀의 크기를 바꿀 수 없으므로, 단계의 그룹 합계는 드라이버에 변동을 사실상 전혀 귀속시키지 않습니다. 그 절반은 고정이므로 안내는 이제 변동의 ~0%가 드라이버 합계로 간다고 밝힙니다. 나머지는 유입되는 값에 대응하는 “~100%“로 주장되었지만 이는 강제되는 것이 아닙니다. 두 요인이 상호작용하는 경우 유입되는 값에 귀속되는 몫은 눈에 띄게 전체보다 적으며, 한 답변은 82%를 보고하는 자신의 단계 위에 그 주장을 담고 있었습니다. 안내는 이제 나머지를 유입되는 값과 두 요인 사이의 상호작용으로 나뉜다고 설명하며, “~100%“는 단계가 그것을 측정한 경우에만 밝힙니다. 안내의 목적은 달라지지 않았습니다. 이 분할은 어떤 멤버에 대한 발견이 아니라 배부가 풀을 보존하는 방식의 속성이라는 점을 알리고, 멤버 간 이동을 보려면 그 단계의 자체 테이블을 보도록 안내합니다.
또한 “~100%”를 밝히는 단계는 이제 자체 줄에서 그것이 산술이라고 밝힙니다. 단계가 풀 전체를 다루고 유입되는 값이 변동 전부를 차지하는 경우, 추적 줄에는 “dominant: the value coming in explains 100% of the move”라고 표시되었습니다. 이는 발견처럼 쓰인 문장이며, 회의적인 독자가 계산 과정처럼 보여서 훑어보는 블록에 놓여 있었습니다. 이를 철회하는 안내는 한 섹션 떨어져 있었고, 수치 아래에 그 짧은 형태를 둔 단계는 한 종류뿐이었습니다. 다른 모든 단계의 줄은 분할이 “풀 전체를 설명한다”고만 말했는데, 이는 범위에 대한 안내처럼 읽힙니다. 네 개 열을 다루는 은행 답변에서는 같은 100%가 네 번 나타났지만 기계적이라고 불린 것은 한 번뿐이어서, 표시된 단계만 유일하게 의심스러운 것처럼 읽혔습니다. 이제 이러한 모든 단계 아래의 줄은 “풀 전체에만 해당 — 이 분할은 드라이버에 대한 발견이 아니라 산술입니다. 주요 이동을 보려면 멤버로 필터링하세요”로 표시됩니다. 백분율은 밝히지 않습니다. 같은 줄이 답변이 분할을 아예 공개하지 않는 경우나 첫 요약에서 다른 열의 수치 옆에도 출력되기 때문입니다. 풀 총합과 멤버의 비중이 모두 실제로 움직이는, 하나의 멤버로 좁혀진 질문처럼 진짜 주도 요인을 측정한 단계는 달라지지 않습니다.
다르게 나올 수 없는 분할은 더 이상 발견으로 답변을 시작하지 않습니다. 배부는 풀의 크기를 바꾸지 않고 나누므로, 전체 그룹을 다루는 답변에서는 변동 뒤의 요인 간 분할이 유입되는 값에 100%, 드라이버 합계에 0%로 표시됩니다. 이는 모든 배부, 모든 기간의 모든 답변에서 마찬가지입니다. 이는 사용자의 데이터에 대해 아무것도 말해 주지 않는데도 “Dominant:”라는 단어와 함께 첫 요약의 맨 앞에 놓였고, 그곳은 독자가 발견을 찾는 자리입니다. 답변은 이후 주의 사항과 솔직한 한계에서 두 번 이를 철회했지만, 그 내용이 전달될 가능성이 전혀 없는 훨씬 아래 위치였습니다. 이런 페이지를 받은 독자는 이를 측정값으로 읽고 드라이버가 움직이지 않았다고 결론지었으며, 드라이버 구성에 대한 조사를 취소했을 것입니다. 그러나 바로 다음 줄은 풀에서의 비중이 실제로 64.8%에서 70.3%로 이동한 멤버를 밝히고 있었습니다. 이제 해당 줄은 “1단계의 요인 분할은 달라질 수 없습니다. 배부는 분배하는 총합을 보존하므로, 무엇이 움직였든 유입되는 값에 100%, 드라이버 합계에 0%로 읽힙니다.”로 표시됩니다. 두 수치는 여전히 출력되므로 분할을 공개하지 않은 답변과 이 답변을 구분할 수 있으며, 두 요인이 실제로 상호작용하여 분할이 전체보다 적게 측정된 단계는 자체 수치를 유지하고 계속 발견으로 읽힙니다.
비중 이동 수치는 그것이 이동한 두 비중을 함께 보여 줍니다. 멤버가 “풀에서의 비중 이동으로” 변동의 대부분을 차지한다고 지목되는 경우, 그 수치는 풀에서의 비중이 아니라 금액 변동 전체에서의 비중입니다. 이 둘은 서로 다른 것인데 전자만 출력되었습니다. 답변은 그 수치가 아닌 것에 대해서는 세 번이나 말했지만(“이것은 풀에서의 비중 이동이며 그 멤버 자체의 변동이 아닙니다”) 그것이 무엇인지는 한 번도 말하지 않았기 때문에, “비중이 움직였다”와 “변동의 71%“를 연결해 주는 것이 없었습니다. 두 척도가 비슷하게 나온 경우에는 이것이 오히려 오해를 불렀습니다. 한 보험 모델에서 인용된 수치는 변동의 11.7배, 해당 멤버 자체의 변동은 그 12.3배로 5퍼센트밖에 차이 나지 않고 페이지에서도 바로 옆에 있었는데, 이는 둘을 구분하는 경고가 사소한 트집이라고 가르치는 결과가 됩니다. 이제 이러한 줄은 쌍을 함께 제시합니다. 예: “풀에서의 비중 이동으로, 26.5%에서 18.2%”. 멤버의 이동이 전체 변동보다 클 때 사용하는, 백분율을 전혀 출력하지 않는 버전에도 이제 이것이 추가되어 가장 도움이 되는 곳이 됩니다. 지금까지는 그 문장에 숫자가 전혀 없었기 때문입니다. 풀이 비교 구간의 한쪽 끝에서는 양수이고 다른 쪽 끝에서는 음수인 경우, 두 수치는 무엇의 비중도 아니므로 출력하지 않고 생략합니다.
“결과 항목 기준 미만”은 이제 그 기준을 밝힙니다. 분석 기준을 지정하지 않고 질문하면 에이전트는 사용 가능한 차원을 검색하고, 보고할 만큼 강한 것이 없을 때도 찾은 가장 근접한 것을 알려 줍니다. 예: “branch는 그 열 변동의 약 45%에 해당하는 비중 이동을 설명하며, 결과 항목 기준 미만입니다”. 사용자는 수치가 검사를 통과하지 못했다는 것만 알고 그 검사가 무엇인지는 알 수 없었으므로, 근접한 실패인지 전혀 가깝지 않은지 구분할 수 없었습니다. 결과 항목이 불확실하기 때문에 존재하는 유일한 종류의 답변에서, 그 문장이 유도하는 판단 전체를 내릴 수 없었던 것입니다. 이제는 “결과 항목에 필요한 60% 미만”으로 표시됩니다. 임계값은 고정되어 있지 않으며, 검토한 차원의 수에 따라 60%에서 80%까지 올라갑니다. 따라서 더 많은 차원을 검색한 답변은 더 높은 값을 인용합니다. 후보의 수치가 전체 변동보다 큰 경우에는 백분율 대신 배수로 표시하며 임계값은 인용하지 않습니다. “11.7×” 옆에 백분율 기준이 놓이면 스스로 모순되기 때문입니다.
추적은 병렬 브랜치를 브랜치로 번호 매기고, “단계”는 깊이에만 사용합니다. 답변 끝의 단계별 설명은 모든 것을 같은 방식으로 번호 매겼고, 그 번호는 모델의 형태에 따라 서로 다른 두 가지를 의미했습니다. 체인을 추적한 답변에서는 “2단계”가 “1단계”에 공급했는데, 이는 실제로 한 단계 상위입니다. 여러 배부 브랜치를 재결합하는 테이블을 다루는 답변에서는 “1단계”부터 “4단계”가 나란히 놓인 네 개의 브랜치로, 재결합될 뿐 서로 닿지 않습니다. 첫 번째 유형의 답변을 본 독자는 두 번째를 네 단계 체인으로 오해하여 존재하지 않는 계보를 그렸습니다. 한 답변은 같은 두 테이블에 대해 여섯 줄 간격으로 한계에서는 “브랜치 1, 2”라고, 추적에서는 “1단계, 2단계”라고 두 단어를 모두 사용했습니다. 이제 병렬 브랜치는 “4개 중 브랜치 2”로 표시되며, 답변의 나머지 부분이 이미 사용하던 것과 같은 번호 매김입니다. “단계”는 한 단계가 실제로 다른 단계에 공급하는 경우에만 나타납니다. 브랜치가 여러 값 열을 다루면 번호는 하나를 유지하고, 줄은 각 줄에 표시된 열 이름으로 구분합니다. 브랜치 하나만 재결합하는 테이블은 개수 없이 “브랜치 1”로 표시됩니다. 하나라는 개수는 개수가 아니기 때문입니다. 체인을 추적하는 답변은 달라지지 않습니다.
각 브랜치는 두 곳에서 같은 방식으로 이름이 표시되며, 답변은 브랜치들이 서로 어떤 관계인지 밝힙니다. 브랜치별 수치는 브랜치를 만드는 단계의 이름(S1_cost_line_rev)으로 표시했고, 아래의 단계별 설명은 같은 브랜치를 그 단계가 쓰는 테이블의 이름(cost_line_rev)으로 표시했으며, 페이지의 어느 것도 이 둘이 같은 브랜치라고 알려 주지 않았습니다. 단계 이름에 테이블 이름이 우연히 들어 있는 경우에는 두 이름이 서로 참조하는 것처럼 보일 뿐이고, 그렇지 않은 경우, 예를 들어 Alloc_u867_minor와 u867_branch_minor는 공통 접두사가 없어 짝을 맞추는 것이 추측에 불과합니다. 이제 모든 브랜치 수치가 둘 다 표시됩니다. 예: “Alloc_u867_minor (writes u867_branch_minor)”. 단계와 테이블 이름이 같은 경우에는 두 번째 언급이 필요하지 않으므로 생략합니다. 첫 줄은 구조도 밝힙니다. 예: “이 2개 브랜치는 합집합으로 들어가는 별도의 경로이며 서로 공급하지 않습니다”. “재결합”은 이를 단언하는 페이지의 유일한 단어였고, 제목만으로 모델을 그려 보라고 요청받은 독자는 체인을 그렸습니다. 브랜치 수치가 결합 합계와 일치하는 경우에는 줄이 그것도 밝히며, 일치하지 않는 경우에는 이전처럼 부족분을 두 수치와 함께 솔직한 한계에 밝힙니다.
모든 답변은 사용자가 전달하는 줄에서 비교하는 두 기간을 밝힙니다. 수치는 센트 단위까지 인용되었지만 어디에도 붙어 있지 않았습니다. 어떤 답변도 날짜, 분기, 연도를 어디에도 밝히지 않아서 수치를 제출 서류, 시산표 또는 전년도 기록에 연결할 수 없었고, 연속된 기간에 대한 두 답변이 같은 기간에 대한 두 답변과 페이지에서 구분되지 않았습니다. 한 세금 답변은 $25,999,193.60에서 끝나고 다음 답변은 거기서 시작하는데, 어느 쪽 페이지에도 그 이유를 말해 주는 것이 없었습니다. 이제 첫 단락에 “비교 기간: 2024년 → 2025년”이 표시되며, 옆의 “from $X to $Y” 쌍과 같은 순서로 나열되어 각 수치가 기간에 연결되고 어느 것이 어느 것인지 직접 알아내지 않아도 됩니다. 질문이 단일 레이블이 아니라 날짜 범위를 사용한 경우에는 범위를 풀어서 표시하고, 에이전트가 기간을 신뢰성 있게 밝힐 수 없는 경우(답변의 단계들이 모두 같은 기간을 사용하지 않은 드문 경우)에는 잘못된 기간을 밝히는 대신 아무것도 표시하지 않습니다.
통화는 별개의 문제이며 이 기능은 이를 다루지 않습니다. PlaidCloud는 모델이 보유한 금액을 보고할 뿐 그 통화나 환산 기준은 알지 못하므로, 수치는 통화 단위 표시 없이 표시됩니다. 여러 관할권에 걸친 모델이거나 제출 서류에 공급하는 모델처럼 이것이 중요한 경우에는 기능 통화를 사용자가 답변 옆에 직접 기록하세요.
답변이 단일 수치를 중심으로 시작하는 경우, 첫 줄은 변동 비율뿐 아니라 변동 전후의 수준도 밝힙니다. 예: it fell 7.2% (from $26,121,744.14 to $24,229,133.70). 각 답변이 시작과 끝을 밝히므로, 연속된 기간에 대한 같은 슬라이스의 두 질문은 이어집니다. 한 답변의 기말 수치가 다음 답변의 기초 수치가 됩니다. 함께 인용되는 변동은 출력된 두 수치의 차이이므로, 한쪽에서 다른 쪽을 빼면 답변이 밝힌 수치를 얻을 수 있습니다. 2026년 9월까지는 자체의 정확한 합계에서 반올림했으며, 변동이 큰 경우 옆의 두 수준과 1센트 차이가 날 수 있었습니다. 세 수치가 각각 반 센트 이내로 맞는데도 어느 것이 어긋났는지 알려 주는 것이 없었습니다.
수치가 양쪽 끝에서 0보다 작은 경우, 첫 줄은 방향이 아니라 잔액의 크기를 설명합니다. “감소”는 부호가 있는 수치에 대해서는 맞지만 대부분이 떠올리는 양에 대해서는 반대이므로, 깊어지는 손실이 개선되는 것처럼 읽혔습니다. net_contribution fell 23.5% (from -$12,917,012.01 to -$15,957,089.93)은 300만 달러 악화된 것인데, 손실 줄을 훑어보는 독자가 반대 의미로 받아들이는 단어로 알려진 것입니다. 이제 이 줄은 net_contribution went further below zero — the negative balance grew 23.5%로 표시되고 같은 두 수치가 뒤따르며, 반대의 경우는 “0쪽으로 되돌아갔습니다 — 음수 잔액이 줄었습니다”로 표시됩니다. 백분율은 바뀌지 않습니다. 양쪽 끝에서 음수인 수치에서는 변동한 백분율이 잔액이 늘거나 줄어든 백분율과 정확히 같습니다. 답변은 여전히 그것이 좋은지 나쁜지는 말하지 않습니다. 어느 쪽이 좋은지는 열에 따라 다르며 그것은 사용자만 알기 때문입니다. 0을 넘는 수치는 읽는 방법이 하나뿐이므로 일반적인 방향 단어를 유지합니다.
첫 줄에서 큰 증가와 감소가 서로 상쇄된다고 보고하는 답변도 그 쌍을 밝힙니다. 예: “순액은 거의 변하지 않았지만(3.7%, $85,472,090.25에서 $88,668,890.26으로) 이는 위아래로 큰 상쇄 움직임을 숨기고 있습니다”. 이 두 수치는 순액이 아니라 풀의 것이므로, 이 줄의 요점을 완화하는 대신 더 분명하게 만듭니다. $85.5M 풀 안에서 $3.2M의 움직임은 눈에 띄게 미미한 것인 반면, “거의”라는 말만으로는 답변이 보여 주지 않은 기준에 대한 판단이었습니다. 이 줄은 여전히 순액이 일어난 일을 과소평가한다고 알리고 여전히 단일 멤버로 안내합니다. 실질적인 변동이 없다고 보고하는 답변도 같은 이유로 같은 쌍을 포함합니다.
여러 배부 브랜치를 재결합하는 테이블을 다루는 답변은 그 테이블 자체의 합계로 시작합니다. 예전에는 재결합된 테이블에는 밝힐 단일 합계가 없다는 이유로 개수와 방향만으로 시작했습니다. 예: “4개 재결합 브랜치에 걸쳐 4개 모두 감소했습니다”. 그러나 합계는 있습니다. 실제 테이블이므로 에이전트가 그 합계를 테이블에서 바로 읽습니다. 그래서 줄은 “결합 합계가 58.0% 감소했습니다($34,621,164.20에서 $14,535,705.89로). 4개 재결합 브랜치에 걸쳐 4개 모두 감소했습니다”로 표시되며, 전년 대비 비교도 다른 모든 형태와 마찬가지로 이러한 답변에서 처리됩니다. 합계는 브랜치를 더해서가 아니라 테이블에서 읽습니다. 재결합에 둘 이상의 경로로 도달하는 브랜치는 분석에는 한 번 나열되지만 테이블에서는 두 번 이상 계산되기 때문입니다. 브랜치 수치가 테이블 자체의 변동과 일치하지 않는 경우, 답변은 합산되지 않는 목록을 직접 더하게 하는 대신 이를 밝히고 두 수치를 모두 제시합니다. 예: “표시된 브랜치 수치($12,231,623.56)는 결합 변동 $25,082,057.48을 설명하지 못합니다”. 합계를 실제로 읽을 수 없는 경우에는 첫 줄이 기존처럼 표시되며, 답변은 어떤 조건이 이를 막았는지 밝힙니다. 브랜치가 서로 다른 값 열을 배부하거나, 재결합된 테이블에 합계를 내려는 열이 없는 경우입니다.
그 첫 줄은 답변의 평가와, 기여도를 산정한 브랜치가 남기는 부분도 담습니다. 이 줄은 답변에서 홀로 전달되는 부분이며, 예전에는 결합 변동과 개수(“2개 증가, 2개 산정 불가”)를 제시하고 평가와 차이의 크기는 그 아홉 줄 아래에 있었습니다. 이것만 읽으면 깔끔한 성장 이야기이고, “2개 산정 불가”는 측정하기에 너무 작은 두 브랜치로 읽힙니다. 이것이 발견된 답변에서는 그 둘이 더 큰 절반이었습니다. 이제 줄은 “…4개 재결합 브랜치에 걸쳐 2개는 증가했고 2개는 측정할 수 없었습니다. 기여도를 산정한 2개 브랜치는 $25,082,057.48의 변동 중 $12,850,433.92를 설명하지 못한 채 남깁니다. 이 차이는 뺄셈의 결과입니다. 측정되지 않은 브랜치가 만들 수도 있고, 테이블이 두 번 이상 계산하는 행이 만들 수도 있습니다. 겉보기 변동이 브랜치 사이에서 어떻게 나뉘는지에 대한 신뢰도는 낮음. 실제로 일어났는지 여부는 평가하지 않습니다.“로 표시됩니다. 줄 뒤에 올 수 있는 경고, 즉 변동이 아직 로드가 끝나지 않은 기간의 부산물일 수 있다는 경고는 별개의 우려이고, 후행 절로 표시되면 독자가 이를 차이를 해명하는 것으로 받아들였기 때문에 차이는 독립된 문장으로 표시됩니다. 설명된 금액이 아니라 남은 금액을 제시하는 이유는, 설명된 수치만 본 독자가 “절반 정도는 설명되었다”고 받아들이고 뺄셈을 하지 않았기 때문입니다. 평가는 그것이 포괄하는 대상을 밝히고 변동이 실제로 일어났는지는 평가하지 않는다고 분명히 밝히는 별개의 마지막 문장입니다. 예전에는 수치 옆 괄호 안에 “attribution is low confidence”로 있었고, 독자들은 이를 수치 자체에 대한 판정으로 받아들였습니다. 이 평가는 페이지의 다른 모든 곳과 마찬가지로 높음 미만인 경우에만 표시되므로, 모든 브랜치가 보고되고 높음으로 평가된 답변은 이전과 똑같이 표시됩니다. 남은 금액은 뺄셈의 결과이며, 줄은 그렇게 밝힙니다. 홀로 읽으면 측정할 수 없었던 브랜치의 개수와 남은 금액이 한 절 간격에 있어서, 독자들은 측정할 수 없었던 브랜치가 곧 누락된 금액이라고 받아들였습니다. 그럴 수도 있지만, 재결합에 둘 이상의 경로로 도달하는 브랜치는 행이 두 번 계산되어 같은 금액을 키우며, 둘 중 어느 쪽이 그 금액을 만들었는지는 답변이 알 수 없습니다. 그래서 줄은 둘 다 밝히고 어느 쪽에도 순위를 매기지 않으며, 그 아래의 한계 안내도 측정할 수 없었던 브랜치를 이유로 제시하지 않고 똑같이 합니다.
전체 변동이 두 기간 사이의 행 부족분의 크기와 같은 경우, 답변은 첫 줄에서 그렇게 밝힙니다. 두 기간은 보유한 행 수가 크게 다를 수 있으며, 가장 흔하게는 나중 기간의 로드가 아직 끝나지 않았기 때문입니다. 답변은 항상 이에 대해 경고해 왔습니다. 그러나 이를 확정하는 유일한 비교, 즉 두 비율을 나란히 놓는 것은 하지 않았습니다. 실제 모델에서 독일 비용이 왜 감소했는지 묻자 “58.0% 감소했습니다”가 반환되었는데, 기간들이 각각 1,755행과 754행을 보유했고 금액도 거의 정확히 같은 비율로 감소했습니다. 그러므로 58% 전체가 절반만 로드된 기간과 일치했으며, 경고는 “이 변동의 일부는 불완전한 데이터를 반영할 수 있습니다”라고 말했습니다. 전부일 수도 있는 것에 대한 얼버무림입니다. 이제 솔직한 한계 안내는 “나중 기간은 이전 기간 행의 43%를 보유하고 있고, 여기에 보고된 변동은 그 값을 이전 기간의 42%로 남깁니다. 거의 같은 비율이므로, 이 변동은 행 부족분만으로 나타날 수 있는 것입니다”로 표시되며, 첫 줄도 같은 경고를 담습니다. 예전에는 $20m 감소를 밝히는 재결합 브랜치 답변에 경고가 전혀 없었습니다.
두 비율이 같다고 하지 않고 거의 같다고 하는 이유는, 그 표현의 근거가 되는 검사가 몇 퍼센트포인트의 차이를 허용하기 때문입니다. 50%와 45%가 나란히 출력되었을 때 “같은 비율”은 자기 수치와 모순되는 문장이 됩니다.
이제 그 경고는 수치 뒤가 아니라 줄의 맨 앞에 옵니다. Short answer:는 첫 번째 절까지만 읽고 멈추므로, 변동을 밝힌 뒤에 단서를 다는 줄은 단서 없이 전달되었습니다. 첫 쉼표에서 잘리면 센트 단위까지 인용된 감소만 전달된 것입니다. 이제는 “이것은 변동이 아닐 수도 있습니다”로 시작하며, 비교의 어느 쪽 끝이 부족한지 그 역할과 레이블로 함께 밝힙니다. 예: “나중 기간(2025)의 로드가 부족했습니다”. 그리고 표나 로드를 뜻할 수도 있는 “나중 기간”이 아니라 이름이 밝혀진 그 기간을 확인하도록 요청하며 끝납니다. 재결합된 여러 브랜치가 모두 같은 방향으로 움직인 경우에는 짧은 로드가 모든 브랜치에 동시에 일으키는 현상이므로 이들이 일치한다고 해서 확증으로 받아들이면 안 된다는 점도 덧붙입니다. 일치는 부족분 자체가 만들어 내는 결과입니다. 변동의 일부를 산정할 수 없는 경우, 남은 금액을 밝히는 문장은 경고 자체의 조건을 따릅니다. 예: “2024가 완전히 로드된 경우에만 기여도를 산정한 1개 브랜치가 … 를 남깁니다”. 이 문장만 따로 인용하면 확정된 금액처럼 읽혀서 그 위의 경고를 약화시켰습니다.
이것이 어느 쪽인지를 확정하지 않는다는 점을 분명히 밝힙니다. 이 척도에서는 불완전하게 로드된 기간과 그 크기의 실제 감소가 동일하게 보이므로, 답변은 변동이 실제가 아니었다고 말하는 대신 로드를 확인하도록 요청합니다. 금액이 행과 함께 움직이지 않은 경우에는 답변이 그것도 알려 줍니다. 예전에는 마찬가지로 알 수 없었던 안심시키는 쪽입니다. 그리고 답변의 어느 부분이든 균등하게 채워진 기간 쌍을 다루는 경우, 첫 줄은 그대로 둡니다. 건강한 브랜치에서 11.1% 증가한 재결합 테이블이 있고, 그 옆에 감소가 전적으로 달력 때문인 작은 브랜치가 있다면, 증가를 그대로 밝히고 약한 브랜치는 그것이 속한 솔직한 한계에서 밝힙니다.
합계가 0을 넘어 거절하는 답변은 이제 0을 넘은 두 수치를 보여 줍니다. 배분할 단일 변동이 없다는 것이 거절하는 이유의 전부이지만, 양쪽 끝의 금액은 있는데 예전에는 둘 다 출력하지 않았습니다. 그러한 페이지의 유일한 기간 수치 쌍은 테이블 전체의 것이었고 둘 다 양수였으므로, 합계가 음수가 되었다는 주장을 확인하려는 독자는 페이지가 그 주장과 모순된다는 것을 발견했습니다. 그리고 답변은 두 기간을 별개의 수치로 읽으라는 말로 끝났는데, 그 두 수치가 바로 숨기고 있던 것이었습니다. 이제 줄은 “기여도 산정 불가(부호 반전) — 이 슬라이스는 $45,031,369.24에서 -$20,776,630.76으로 변했습니다”로 표시되며, 그 쌍이 질문한 슬라이스의 것인지 열 전체의 것인지를 밝혀 다른 곳에 출력된 테이블 전체의 쌍으로 오해하지 않도록 합니다. 첫 요약은 여전히 수치를 인용하지 않습니다. 수치로 시작하는 답변은 스스로 거절하고 있는 바로 그 일을 하는 것이기 때문입니다.
답변이 거절하는 경우, 제안되는 다음 단계는 답할 수 없었던 대상에 관한 것입니다. 거절된 답변은 추적이 어디에서 멈췄는지와 그에 대해 무엇을 할지를 알려 주는데, 예전에는 이 둘이 어긋났습니다. “요청하신 대로는 답할 수 없습니다. 예상되는 배부 열이 결과 테이블에 없습니다. cost_pool을 대상으로 직접 추적하세요.” 두 절 모두 사실이었지만 두 번째 절은 첫 번째와 관계가 없었습니다. 제안이 실제로 멈춘 단계가 아니라 에이전트가 체인 어디에서든 알아차린 모든 것에서 선택되었기 때문에, 이를 따르면 잘못된 곳에서 쿼리를 소모했습니다. 이제 제안은 멈춘 단계에서 나옵니다. 배부 열이 없으면 해당 테이블의 열을 확인하도록, 구축되지 않은 입력 풀이 있으면 그것을 구축하는 워크플로를 실행하도록 안내합니다. 구체적으로 제안할 것이 없는 경우에도 답변은 아무것도 주지 않는 대신 가장 가까운 유용한 제안을 전달하며, 이것이 다른 단계에 관한 것임을 분명히 밝힙니다.
거절된 답변은 쉬운 말로 스스로를 설명합니다. 기간 열을 지정하지 않고 테이블에 대해 질문하고 에이전트가 열을 스스로 알아낼 수 없었던 경우, 예전에는 마치 의미가 있는 것처럼 내부 코드를 인용해 반환했습니다. “auto-detect returned ‘no_candidates’”. 이제는 무슨 일이 있었고 무엇을 해야 하는지 알려 줍니다. “기간 열이 지정되지 않았고 테이블의 어떤 열도 기간 열처럼 보이지 않습니다. temporal_filter.column을 명시적으로 전달하세요.” 둘 이상의 열이 똑같이 유력해 보이는 경우에는 그 열들을 나열하므로 답변 안에 해결 방법이 들어 있습니다. 전년 대비 비교를 건너뛴 이유를 설명하는 안내도 같은 방식으로 표시됩니다. 어떤 질문이 성공하는지는 달라지지 않았으며, 실패한 질문이 알려 주는 내용만 달라졌습니다.
신뢰도의 기반이 되는 기여도 품질은 다음과 같습니다.
- 정상(Clean) — 변동이 드라이버에 완전히 귀속되었습니다. 특정 계정으로 범위가 지정된 필터링된 배부도 여기에 포함됩니다. 필터가 자동으로 적용되므로 기여 항목은 정확히 범위 안의 행입니다.
- 부분(Partial) — 에이전트는 무엇이 어디에서 바뀌었는지 보여 줄 수 있고 합계와 주요 기여 항목도 올바르지만, 왜 바뀌었는지는 스스로 완전히 귀속시킬 수 없습니다. 에이전트가 그 이유와 다음에 무엇을 질문해야 하는지 알려 줍니다.
답변에 첨부되어 표시될 수 있는 경고는 다음과 같습니다.
-
아직 끝나지 않은 현재 기간을 대상으로 측정한 전년 대비 비교, 또는 비교할 전년도 데이터가 없는 경우. 이 경우에는 변동이 정상이라고 하는 대신 기준선이 없다고 알립니다.
전년도가 있는 경우, 답변은 비교의 두 측면을 모두 제시합니다. 변동이 정상, 상승 또는 극단 중 무엇이었는지, 그리고 크기를 비교한 결과입니다. 예: “크기는 정상 — 절대값 기준으로 작년 변동의 62% 크기, 2024 → 2025 +$6,183,330.15 변동”. 이는 증가폭이 그 전보다 작았다는 의미입니다. 단어만으로는 이상 징후인지 여부에 답하고, 크기는 여전히 가속하고 있는지에 답하는데, 대개 묻고 싶은 것은 후자입니다. 판정은 무엇에 대한 판정인지를 단어 자체에 담습니다. 이는 한 가지, 즉 이번 기간의 변동이 지난 기간의 변동에 비해 통화 기준으로 얼마나 컸는지를 평가하는데, 예전에는 단순히 “정상”으로 표시되고 판정 대상은 여러 절 뒤에 있었습니다. 그래서 줄을 훑어보던 독자는 그 단어에서 멈추고 답변 전체에 대한 판정으로 받아들였습니다. “절대값 기준”이 들어간 이유는 같은 줄에 변동 백분율도 있고, 이 비교는 비율이 아니라 금액 사이의 비교이기 때문입니다. 크기만 비교하므로, 두 기간이 반대 방향으로 움직인 경우 답변은 이것도 알립니다. 예: “크기는 정상, 방향은 반대”. 이 말은 다섯 절 뒤가 아니라 백분율 앞에 오는데, 이미 “정상”을 읽은 독자는 뒤에 있는 내용까지 읽지 않기 때문입니다.
그 뒤의 문장은 이전 기간 자체의 성장률을 밝힙니다. 통화 기준으로 두 변동의 크기를 비교하면 속도에 대해서는 아무것도 알 수 없습니다. 31.2% 성장한 뒤 14.7% 성장한 수치는 이전 속도의 절반 미만으로 둔화되었지만, 위의 비교는 통화 기준으로는 그렇기 때문에 여전히 그 변동을 “크기는 정상”이라고 부릅니다. 이런 답변을 받은 독자는 “평소와 같다”고 받아들였습니다. 이제 답변은 판정 뒤에 “2024 → 2025 변동은 해당 기간 기초 수준의 31.2%였습니다”를 덧붙이며, 이를 받은 독자는 해당 기간을 감속으로 설명합니다. 이 문장은 일부러 이전 비율만 제시합니다. 이번 기간의 비율은 이미 줄 맨 앞에 있고, 둘을 나란히 놓으면 하나를 다른 하나로 나누고 싶어지는데, 이는 판정 옆의 백분율과 다른 답을 주기 때문입니다. 그 백분율은 금액을 비교하는 것이고 기준이 그 아래에서 커졌기 때문입니다. 판정 자체는 달라지지 않으며, 이전 기간을 지정할 수 없는 경우에는 이 문장이 생략됩니다.
비교는 두 기간이 실제로 1년 떨어져 있는 경우에만 전년 대비로 표시됩니다. 연속된 두 달 또는 연속된 두 분기의 비교도 연간 비교와 마찬가지로 1년 전 같은 기간과 대조하여 측정되지만, 이를 “전년 대비”라고 부르면 변동 자체가 1년에 걸쳐 있다고 말하는 셈인데 그렇지 않습니다. 이러한 답변은 “1년 전 대비”라고 표시하고 해당 기간을 밝힙니다. 측정은 달라지지 않으며, 레이블이 하는 주장만 달라졌습니다.
절반만 로드된 기간을 대상으로 측정한 전년 대비 판정은 그렇다고 밝힙니다. 답변이 두 기간의 채워진 정도가 고르지 않고 금액이 행 부족분과 보조를 맞추어 움직였다고도 경고하는 경우, 그 판정은 변동이 실제인지에 대한 두 번째 의견이 아닙니다. 분자가 의심받는 변동 그 자체인 비율이기 때문에, 로드가 끝나지 않은 기간은 답변이 경고하는 바로 그 이유로 판정을 “정상” 쪽으로 끌어당깁니다. 이제 답변은 어느 쪽인지 밝힙니다. “이 판정은 이 답변에 보고된 변동으로 계산되므로, 그 변동이 실제인지에 대한 독립적인 검증이 아닙니다”. 그러므로 “정상적인 전년 대비” 판독을 위의 로드 경고를 해소하는 것으로 받아들일 수 없습니다. 판정 자체는 실제 측정이며 계속 제공됩니다.
작년 자체의 변동이 그 기간과 함께 밝혀지며, 배수보다 먼저 읽을 가치가 있습니다. 비교는 그 기준이 되는 해만큼만 의미가 있으며, 큰 증가와 감소가 거의 상쇄된 해는 순액이 0에 가까워지므로 그다음 해가 평범한 해여도 매우 큰 배수로 나올 수 있습니다. 실제 보험 모델에서는 멤버별 변동이 양방향으로 각각 약 2,200만 달러였던 전년도의 순액이 +$1,792,719.72였기 때문에, 평범한 다음 해가 “극단 — 1325%“로 읽혔습니다. 배수가 무엇을 기준으로 측정되었는지 밝히면 큰 변동과 작은 비교 기준을 구분할 수 있습니다. 두 금액이 모두 줄에 있으므로 그 사이의 백분율을 검증할 수 있습니다. 이제 그 금액도 자체 기간을 함께 표시합니다. 예: “2024 → 2025 변동 +$1,792,719.72”. 따라서 백분율이 나누는 수치를 “작년”이라는 말이 아니라 특정 연도로 추적할 수 있습니다. 두 값의 차이가 너무 커서 비율을 인용할 가치가 없는 경우에도 그 변동과 방향은 제공되며, 이것이 가장 중요한 경우입니다.
전년 대비 비교를 할 수 없는 경우, 답변은 조용히 넘어가지 않고 그렇다고 밝힙니다. 비용, 매출, 마진처럼 여러 측정값을 한 번에 배부하는 단계가 기록한 테이블은 변동을 맥락 속에 놓아 주는 두 가지 비교, 즉 1년 전 같은 변동과의 비교와 최근 기간과의 비교를 모두 받지 못합니다. 각각은 단일 측정값을 다루는 답변을 위해 만들어졌으며, 세 개 중 하나만 마치 답변인 것처럼 보고하면 아예 실행하지 않는 것보다 나쁘기 때문입니다. 지금까지는 이것이 침묵으로 처리되었으므로, “마진이 왜 줄고 있나요?“에 대한 답변에는 감소, 분석, 단계별 설명이 있었고, 그 크기의 감소가 정상인지 알려 주는 유일한 검사가 실행된 적이 없다는 암시는 없었습니다. 이제 “이 답변은 이 정도 크기의 변동이 여기서 이례적인지 여부를 알려 주지 않습니다”라고 표시하고 누락된 두 비교를 모두 밝히며, 하나의 단계가 모든 측정값을 생성하므로 대신 요청할 단일 측정값 답변이 없다고 알립니다. 독자가 달리 시도하게 될 재실행이 바로 그것입니다. 위의 어떤 수치도 철회되지 않는다고 밝히며 끝납니다. 금액은 정확하고 누락된 것은 맥락뿐이며, 솔직한 한계 아래의 안내는 그렇지 않으면 옆의 수치에 대한 의구심으로 읽히기 때문입니다. 같은 문장이 더 좁은 두 경우도 다룹니다. 1년 전으로 거슬러 갈 수 없는 기간(가능한 기간 형식을 밝힙니다)과, 자체 결합 합계를 읽을 수 없는 재결합 테이블(이 경우 비교가 합계와 함께 사라집니다)입니다.
-
아래에 멤버 수준의 재편을 숨기고 있는 전체 그룹 합계.
-
요인들이 함께 움직여서 대표 백분율만으로는 신뢰할 수 없는 슬라이스.
-
기여도를 산정한 항목들이 보고된 합계로 다시 합산되지 않는 변동.
-
대상별 영향을 단순히 합산할 수 없는 가정 분석(what-if).
결과가 부분적이면 안내는 대개 위의 슬라이스 세부 분석을 가리키며, 이는 단일 멤버에 대한 실제 분해를 제공합니다.
에이전트가 분석 기준을 대신 선택하는 경우
섹션 제목: “에이전트가 분석 기준을 대신 선택하는 경우”필드를 지정하지 않으면 에이전트는 가능한 모든 필드를 시도해 가장 강한 것을 보고하며, 이제는 얼마나 더 강한지도 알려 주면서 두 번째로 점수가 높았던 필드의 이름을 밝힙니다. 예: “해당 척도에서 account는 다음 후보인 line의 약 2.0배 점수를 받았습니다”. 이 차이는 지배적인 드라이버 하나와, 그중 가장 큰 것을 택한 세 가지 그럴듯한 이야기를 구분해 주므로, 에이전트가 고른 필드에 따라 조치하기 전에 읽어 볼 가치가 있습니다. 일부러 두 번째 백분율이 아니라 비교로 제시하는데, 서로 다르게 측정한 두 백분율을 나란히 놓는 것이 이 답변들이 가장 피하려고 애쓰는 혼동이기 때문입니다. 점수를 매길 수 있는 필드가 하나뿐인 경우에는 존재하지 않는 차순위를 언급하는 대신 그렇다고 밝힙니다.
때로는 이긴 필드가 없습니다. 둘 이상이 너무 가까운 점수를 받아 구분할 수 없는 경우, 에이전트는 어느 것도 적용하지 않고 그렇다고 밝히며, 이제는 그 필드들의 이름도 밝힙니다. 각 필드는 가장 강한 멤버와 그 멤버 자체의 수치가 얼마나 움직였는지를 열 전체의 변동과 함께 제시하므로, 무작정 고르는 대신 동률인 이야기들을 비교할 수 있습니다. 예: “후보는 program=I4와 account=WARRANTY입니다 … program=I4는 -$40,680,000.00, account=WARRANTY는 -$32,270,411.54 움직였고, 열 전체는 -$16,590,844.99 움직였습니다”. 이 금액들은 해당 멤버 자체의 변동이며, 필드의 점수를 매긴 기준은 풀에서의 비중 이동입니다. 두 척도는 서로 다르며 답변은 어느 것이 어느 것인지 밝힙니다. 또한 후보들은 풀을 나누는 것이 아니라 서로 겹치므로 그 수치들은 하나의 합계의 일부가 아닙니다. 위의 예에서 이들은 열 자체의 변동의 네 배가 넘으며, 이를 합하면 아무것도 설명되지 않습니다. 동률인 필드마다 하나씩의 제안과 함께, 답변은 둘 중 두 개를 동시에 사용해 변동을 분해해 보도록 제안합니다. 검색에서 점수를 매기지 않은 관점인 교차 집계이므로, 발견이 아니라 실행해 볼 것으로 제안됩니다.
멤버 테이블이 모든 멤버가 아니라 가장 크게 움직인 항목만 보여 주는 경우, 이제 변동 중 실제로 페이지에 있는 부분이 얼마나 되는지도 밝힙니다. “account, sales_document별 상위 변동 항목(가장 큰 항목만 표시)“이라는 제목과 “account별 모든 변동 항목”이라는 제목은 비슷해 보이지만 비중은 완전히 다릅니다. 후자는 변동과 정확히 합산되고, 전자는 그중 작고 뒤섞인 일부일 수 있습니다. 한 모델에서는 어느 것도 $110,000에 못 미치는 20개 행이 $9,321,592.41의 감소 아래에 있었고 합계는 $169,230.35(13개 감소, 7개 증가)였습니다. 그래서 테이블은 감소의 잡음 섞인 그림처럼 읽혔지만 실제로는 2퍼센트도 안 되는 부분을 설명하고 있었고, “(가장 큰 항목만 표시)“가 경고의 전부였습니다. 이제 테이블은 행 위에 한 줄을 표시합니다. 표시된 행 중 몇 개가 각 방향으로 움직였는지, 그 크기의 합, 상계한 순액, 변동 자체의 크기, 그리고 그 차이는 표시되지 않은 멤버에 있다는 내용입니다. 이 줄은 행 위에 있으므로 복사할 때 함께 따라갑니다.
두 합계를 모두 제시하는 이유는 어느 한쪽만 있으면 다른 쪽으로 읽히기 때문입니다. 증가와 감소가 상쇄된 뒤 행들의 합계인 순액만 있으면 “이것들은 잡음이니 무시하라”로 읽히는데, 크기의 합이 그 금액의 다섯 배라면 이는 틀린 것입니다. 총액만 있으면 순액으로 읽혀 테이블이 담고 있는 것을 과장합니다. 두 연산을 따로 명명하는 것이 둘을 구분해 줍니다. 백분율은 제시하지 않으며, 이는 누락이 아니라 의도입니다. 표시된 행은 변동에 반하여 움직이거나 변동을 초과할 수 있으므로, 변동에서 차지하는 몫은 음수가 되거나 100퍼센트를 넘거나 0으로 반올림되어 사라질 수 있는 수치이며, 같은 사실이라도 경우마다 다른 표현이 필요합니다. 변동 옆에 출력된 두 금액은 한눈에 질문에 답하며 모든 결과에서 하나의 의미를 가집니다. 모든 멤버를 보여 주는 테이블은 영향을 받지 않습니다. 정의상 이미 변동과 합산되고 제목이 그렇게 밝히기 때문입니다.
테이블이 모든 멤버를 보여 주는 경우 행은 정의상 변동과 합산되지만, 각 행은 표시를 위해 센트 단위로 반올림되고 변동 자체는 한 번만 반올림되므로, 큰 변동에서는 직접 더한 열이 답변이 시작하는 수치와 1센트 차이가 날 수 있습니다. 그 1센트는 오류가 아닌데도 페이지의 어떤 내용도 어느 쪽인지 알려 주지 않았으므로, 테이블을 확인하는 행위가 오히려 불이익을 받았습니다. 두 수치가 다른 경우 테이블은 이제 행 위에 한 줄을 표시하여 두 수치(행의 합계와 변동 자체)를 제시하고 그 차이가 해당 반올림이라고 밝힙니다. 합계를 맞추기 위해 조정하는 것은 없습니다. 열 합계를 맞추려고 행을 1센트 조정하지 않으므로 모든 행은 여전히 원본과 정확히 일치하고, 행을 하나씩 확인하는 수치는 여전히 맞습니다.
멤버 테이블은 순위로 읽힙니다. 멤버 목록의 용도가 그것이기 때문입니다. 그래서 두 행이 같은 금액을 보여 주면 먼저 출력된 행이 더 큰 문제로 읽힙니다. 그렇지 않습니다. 둘을 구분하는 것은 없으며 둘 중 어느 것이 먼저 오는지는 아무 의미가 없습니다. 한 자동차 모델에서는 두 비용 센터가 각각 -$1,738,461.53 움직였는데, 페이지에는 이것이 진짜 1위와 2위가 아니라는 것을 독자가 알 방법이 없었습니다. 이제 행들이 같은 금액을 보여 주는 경우, 테이블은 행 위에 그 행들의 이름을 밝히고 같은 금액으로 표시되므로 그 사이의 순서는 순위가 아니라고 알립니다. 일부러 표시된이라고 하는데, 비교는 출력된 수치를 센트 단위로 비교한 것이기 때문이며, 그 줄 바로 아래에 이 수치가 반올림되었다고 알리는 줄이 올 수 있습니다. 순서가 어떻게 정해졌는지는 말하지 않습니다. 답변이 항상 확인할 수 있는 것이 아니기 때문입니다. 전혀 움직이지 않은 멤버는 이렇게 설명하지 않습니다. 두 개의 아무것도 아닌 것 사이에는 부인할 순위가 없기 때문이며, 테이블이 모든 멤버를 보여 주는 경우에는 이들이 더 이상 목록에 나타나지 않습니다. “account별 모든 변동 항목”이라는 제목 아래에서는 두 기간에서 동일한 두 계정이 $0.00 행으로 페이지에 나타났는데, 독자가 통째로 복사할 가능성이 가장 높은 블록이었습니다. 테이블이 가장 크게 움직인 항목만 보여 주는 경우에는 그 행이 남는데, 그때 $0.00 행은 순위가 움직인 항목의 맨 아래에 도달했음을 알려 주기 때문입니다. 수치는 달라지지 않습니다. 어떤 행도 재정렬되거나 조정되지 않으며, 행은 여전히 변동과 합산됩니다.
테이블이 가장 크게 움직인 항목만 보여 주고 그 경계가 동률에 걸린 경우, 답변은 마지막으로 표시된 항목만큼 큰 멤버가 제외되었다고도 알립니다. 동률이 순서뿐 아니라 어느 멤버가 보이는지까지 바꾸는 경우이며, 행을 더 요청하면 볼 수 있습니다.
값 열이 여러 개인 테이블에서 답변이 출력하는 멤버 테이블은 에이전트가 검색한 열에 대한 것이며, 이는 답변이 시작하는 열과 다릅니다. 제목은 그렇게 밝혔고 그것이 전부였습니다. 한 자동차 모델에서는 답변이 마진이 $10,701,036.06 감소했다고 시작했는데 페이지의 유일한 테이블은 “program별 모든 변동 항목 — cost”라는 제목이었고 맨 위에 -$40,680,000.00의 프로그램이 있었습니다. 제목의 네 글자가 비용 수치와 마진 질문을 구분했을 뿐이어서, 맨 위의 행이 감소의 원인으로 읽혔고 그 크기의 네 배에 달하는 수치를 담고 있었습니다. 이제 테이블이 스스로 밝히며, 복사할 때 함께 따라가도록 행 위에 표시합니다. “이 수치는 cost 수치입니다. 답변은 margin을 중심으로 시작하며, margin에서 가장 큰 변동 항목은 여기 맨 위의 것과 반드시 같지 않습니다.” 문구는 순서가 다를 수 있다고 말하기 전에 수치가 무엇인지를 먼저 밝히는데, 순위가 다를 수 있다는 것을 알아도 맨 위 행을 원인으로 읽는 것을 막지는 못하기 때문입니다. 분석 기준을 직접 지정하면 각 열이 자체 테이블을 가지며 둘은 항상 일치하므로 이러한 줄은 나타나지 않습니다.
답변이 변동 뒤의 주도 요인을 밝히고 백분율을 제시하는 경우, 예를 들어 “이 슬라이스의 풀 비중 이동 … 이 변동의 73%를 설명합니다”라면, 멤버 테이블은 이제 그 수치가 자기 행의 비중이 아니라고 밝힙니다. 둘은 같은 변동을 서로 다른 축에서 자른 것입니다. 하나는 변동 뒤의 요인들 사이에서 나누고 다른 하나는 멤버들 사이에서 나누며, 어느 쪽도 다른 쪽의 일부가 아닙니다. 두 수치 모두 맞으므로 독자는 그 연결을 찾게 됩니다. 한 세금 모델에서는 독자가 73%를 쫓아 55.6%, 23.9%, 12.7%, 7.8%의 네 계정을 살펴보았지만, 그 조합으로 73%가 되는 것은 없었는데 애초에 없기 때문입니다. 이제 테이블은 행 위에, 복사할 때 함께 따라가도록 다음과 같이 표시합니다. “이 행들은 account별로 나눈 변동입니다. 이 변동에 대해 밝힌 요인 백분율은 어느 요인이 움직였는지라는 다른 질문에 답하는 것이므로, 여기 어떤 행도 그 백분율의 일부가 아닙니다.” 요인 백분율이 100% 미만이고 표시된 행이 변동 전체를 설명하는 경우에만 나타납니다. 100%에서는 찾아볼 나머지가 없으며, 테이블이 가장 크게 움직인 항목만 보여 주는 경우에는 이미 행이 변동과 합산되지 않는다고 밝히고 있기 때문입니다. 수치는 달라지지 않습니다.
값 열이 여러 개인 테이블에서 에이전트가 제안하는 분석은 에이전트가 검색한 열이 아니라 답변이 시작하는 열에 대해 답하며, 둘이 항상 같은 것은 아닙니다. 한 모델에서는 이야기가 cost에서 발견되었는데 제안된 분석은 margin에 대한 것으로 돌아왔습니다. 다른 열이고, 다른 프로그램이 선두이며, 맨 위 수치는 자릿수가 하나 작았습니다. 둘 다 올바랐습니다. 이제 제안은 두 열을 모두 밝히고, 백분율뿐 아니라 선두 멤버도 다를 수 있다고 경고하므로, 예상 밖의 이름으로 시작하는 목록이 모순으로 읽히지 않습니다. 답변이 단일 열을 다루는 경우에는 둘이 같으므로 이러한 경고가 나타나지 않습니다.
가장 강한 멤버의 이동이 순변동 전체보다 큰 경우, 즉 큰 증가와 감소가 상쇄되는 풀에서는 흔한 경우로, 답변은 터무니없는 백분율 대신 그 크기를 배수로 제시합니다. 예: “비중 이동 기준으로 순변동 전체를 넘어서(11.7×)”. 그조차 합리적으로 표현할 수 없는 경우에는 두 측정값이 눈에 띄게 다를 것이라고 약속하지 않고 두 측정값이 무엇인지 설명합니다.
경고도, 그 옆의 제안도 이제 해당 분석에서 멤버의 백분율이 인용된 수치와 다를 것이라고 약속하지 않습니다. 어떤 답변에서도 멤버 테이블은 멤버별 백분율을 출력하지 않으며 행은 금액이므로, 경고가 만들어 낸 비교는 아예 수행할 수 없었습니다. 그것을 따라가 보면 금액 수치만 나올 뿐 경고를 확인할 대상이 없으므로, 페이지의 나머지 부분도 당연히 에누리해서 보게 됩니다. 이제 둘 다 두 척도가 무엇인지만 밝히고 그쳐 줍니다. 인용된 수치는 멤버의 풀 비중 이동이고, 분석은 각 멤버 자체의 변동을 보고합니다.
모든 답변은 가장 도움이 될 가능성이 높은 순서로 권장 다음 단계로 끝납니다. 답변이 큰 증가와 감소가 상쇄되고 있다고 경고하는 경우, 첫 번째 제안은 질문을 변동 뒤의 단일 멤버, 즉 전체 변동에 비해 자체 증가 또는 감소가 가장 큰 멤버로 좁히는 것이며, 이를 실행하면 그 멤버 자체의 변동이 나오고 대개 경고도 해소됩니다. 필드를 지정하지 않은 경우 에이전트가 하나를 선택했는데, 단일 열을 다루는 답변에서는 선택한 필드가 위의 멤버 테이블이 이미 그룹화한 기준 필드이므로 그 필드로 변동을 분해해 보라는 제안은 같은 테이블을 반환했습니다. 더 나쁘게는 그 옆의 안내가 수치가 읽고 있는 수치와 일치하지 않을 것이라고 경고했는데 정확히 일치했고, 이는 다른 제안도 에누리해서 보게 만듭니다. 그 제안은 더 이상 하지 않습니다. 검색에서 두 번째 필드의 점수를 매긴 경우, 답변은 대신 그 필드를 제안합니다. 같은 변동을 다른 방식으로 자른 것이므로 아직 가지고 있지 않은 관점입니다. 이는 마진이 표시되는 모든 곳에서 마진이 밝히는 차순위와 같아서 두 곳이 서로 다른 필드를 밝히는 일이 없습니다. 점수가 매겨진 다른 것이 없는 경우 제안은 생략됩니다. 제안을 생략하면 답변에 다음 단계가 전혀 남지 않는 경우에만 유지되는데, 다른 필드를 시도해 보라고 하면서 아무것도 제안하지 않는 답변은 모호한 제안보다 나쁘기 때문입니다. 그리고 원래 제안을 실행하면 실제로 다른 열이 보고되는 경우에는 유지됩니다. 검색이 동률로 끝난 경우, 제안은 동률인 각 필드를 따로 다루고 그 뒤에 둘을 함께 사용해 변동을 분해하는 제안을 하나 더 포함하며, 이를 마지막에 두어 단일 필드 제안이 순서를 유지합니다.
여러 값 열을 다루는 답변은 한 멤버로 좁혀 보도록 제안합니다. 변동 상위 목록은 한 열을 멤버별로 분해하며, 다른 열은 슬라이스 전체에 대해 보고됩니다. 그래서 이런 페이지가 알려 줄 수 없는 한 가지는 단일 멤버가 모든 열에 걸쳐 무엇을 했는지입니다. 예를 들어 어느 브랜치가 자금 조달 비용 감소의 대부분을 차지했는지, 그리고 같은 시기에 그 브랜치의 이자 수익이 어떻게 움직였는지입니다. 이제 답변은 그 목록의 한 멤버를 지정하는 target_filter를 제안하고, 위의 행들이 한 열을 다룬다고 알립니다. 목록을 나누는 필드의 이름은 밝히지 않지만, 행 위의 제목은 밝힙니다. 작성자가 입력한 필드 이름이 본문에 들어가면 다른 주의 사항이 말해야 하는 키워드와 철자가 같아질 수 있고, 그러면 그 주의 사항이 빠진 페이지에서도 해당 주의 사항이 정상으로 검증되기 때문입니다. 이미 더 강한 이유로 좁히도록 제안하는 경우, 즉 풀 전체를 설명하는 수치이거나 증가와 감소가 상쇄되는 경우에는 기존 제안을 유지합니다. 이전에는 발견을 밝혔지만 다른 제안이 없는 답변이 실행할 것이 아무것도 없는 상태로 마지막 줄에서 끝났습니다.
추적이 멈춘 테이블을 둘 이상의 단계가 기록하는 경우, 하나를 선택하라는 제안은 선택이 무엇을 하는지 밝힙니다. 답변은 해당 테이블에 기록하는 활성화된 단계를 각각 붙여 넣을 ID와 함께 나열하며, 하나를 실행하면 추적이 그 단계를 거쳐 계속됩니다. 변동을 그 단계로 좁히지는 않습니다. 단계들의 행이 겹치는 경우 반환되는 수치는 모든 단계를 포괄하며, 반환된 답변이 그렇다고 밝힙니다. 행이 겹칠 수 있다는 점이 답변이 사용자 대신 단계를 선택하지 않는 이유입니다. 이 제안은 예전에는 변동을 지정한 단계에 구체적으로 귀속시킨다고 스스로를 설명했는데, 같은 페이지의 한계가 이를 부정했습니다. 추적의 해당 단계를 설명하는 줄은 이제 하나가 만들 수 있다는 것이 아니라 활성화된 단계가 둘 이상 이 테이블을 생성한다고 밝힙니다.
그 경고는 적용한 검사를 밝히므로 사용자가 직접 확인할 수 있습니다. 경고는 한 멤버의 변동, 그 멤버의 풀 비중 이동 또는 한 요인의 기여가 순변동 전체보다 최소 4분의 1 이상 클 때 나타납니다. 하나가 아니라 세 가지 척도를 쓰는 이유는 멤버의 풀 비중이 멤버 자체가 움직이는 것의 몇 배로 움직일 수 있기 때문이며, 멤버만 명시하는 규칙은 확인할 수는 있어도 이러한 답변에서는 틀립니다. 예전에는 이를 “최상위 변동 항목 하나만으로 순델타를 초과한다”라고 설명했는데, 이는 에이전트가 사용하는 검사와 다르고 더 느슨한 검사였습니다. 그래서 문자 그대로 받아들여 다음 답변에서 확인해 본 독자는 규칙이 깨진 것으로 보았습니다. 순변동보다 크지만 4분의 1에는 못 미치는 변동은 이 경고가 존재하는 이유인 상쇄 변동이 아니라 가벼운 초과이며, 이러한 답변은 경고 없이 실질에 따라 평가됩니다.
경고는 이어서 측정값을 제시하므로, 답변이 그 4분의 1을 실제로 얼마나 넘었는지 알 수 있습니다. 예: “여기서 account=LAE는 +$22,067,919.71 움직였으며, 순변동 전체인 +$1,792,719.72보다 큽니다.” 임계값은 하한선이고 경고가 발동하는 보고는 대개 그보다 훨씬 위에 있습니다. 순변동의 12배인 보험 모델도 1.5배인 모델과 수치를 밝히지 않으면 똑같이 읽힙니다. 두 수치 모두 부호를 포함하며 비교는 크기 기준이므로, 증가한 합계 안에서 감소한 멤버는 실제 그대로 상쇄 움직임으로 읽힙니다. 경고를 일으킨 것이 단일 멤버 자체의 변동이 아니라 풀 비중 이동이나 한 요인의 기여였던 경우에는 문장이 그 척도를 대신 밝히며 수치는 인용하지 않습니다. 그 수치는 답변의 다른 곳에 이미 밝혀져 있거나 다른 수치 옆에 놓여 모순으로 읽힐 수 있기 때문입니다.
집중된 멤버를 밝히는 줄은 변동이 다른 곳의 반대 움직임으로 상쇄되었다고 밝히며, 더 이상 그 정도를 특징짓지 않습니다. 예전에는 “다른 곳에서 일부 상쇄”로 표시되었는데, 이 한 단어가 몇 퍼센트에서 90% 이상까지 모든 경우를 포괄했습니다. 한 계정이 $22,067,919.71 움직였고 전체 순변동이 $1,792,719.72인 보험 모델에서는 반대 움직임이 그 계정 증가의 10분의 9 이상을 상쇄했으며, “일부”는 독자에게 실제 일어난 일과 거의 반대로 전달했습니다.
재결합된 여러 브랜치에 걸친 답변은 그중 따라갈 브랜치를 하나 제안합니다. 에이전트는 브랜치가 만나는 지점을 지나서까지 질문을 추적하지 않으므로, 이곳이 사용자에게 추적을 넘기는 지점입니다. 에이전트는 브랜치와, 이를 이어서 단독으로 추적할 테이블을 지명합니다. 제안되는 브랜치는 이름을 밝힐 수 있고 기여도를 산정한 브랜치 중 가장 크게 움직인 것이며, 어느 것도 산정하지 못한 경우에는 단순한 거절을 유지합니다. 이 이유로 자신이 가장 크다고 설명하지는 않습니다. 위의 브랜치별 목록이 이미 모든 브랜치의 변동을 보여 주므로 순위는 사용자가 직접 볼 수 있기 때문입니다.
현재 제한 사항
섹션 제목: “현재 제한 사항”- 테이블과 기간을 지정하세요. “
cost_line_rev가 2025-01에서 2025-02로 왜 바뀌었나요?“는 “비용이 왜 바뀌었나요?“보다 더 명확한 답변을 얻습니다. - 타당성을 확인할 수 있는 변동이 있는 실제 이전 기간과 이후 기간을 선택하세요.
- 에이전트가 잘못된 테이블을 분석하는 경우, 추측하지 않도록 프로젝트와 테이블을 명시적으로 지정하세요.
다음 단계
섹션 제목: “다음 단계”- AI 코딩 에이전트 연결 — MCP를 통해 에이전트를 워크스페이스에 연결합니다
- 배부 결과 — 결과 테이블에 포함된 내용
- 배부 문제 해결 — 조정이 실패하는 경우