arm-ka-docs/model/diagrams/part10_quality_metrics.svg
Andrey Epifancev 2fee6a3b6e docs(#202): DBML v5.25 — факты качества первички (AURORA-1759)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 14:02:35 +04:00

551 lines
70 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.47.0 (20210316.0004)
-->
<!-- Title: dbml Pages: 1 -->
<svg width="1662pt" height="5916pt"
viewBox="0.00 0.00 1661.86 5916.01" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 5912.01)">
<title>dbml</title>
<!-- document_type -->
<g id="document_type" class="node">
<title>document_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1224.65" cy="-2909.22" rx="260.84" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1042.65,-3029.22 1042.65,-3089.22 1407.65,-3089.22 1407.65,-3029.22 1042.65,-3029.22"/>
<polygon fill="none" stroke="#29235c" points="1042.65,-3029.22 1042.65,-3089.22 1407.65,-3089.22 1407.65,-3029.22 1042.65,-3029.22"/>
<text text-anchor="start" x="1053.52" y="-3050.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1042.65,-2969.22 1042.65,-3029.22 1407.65,-3029.22 1407.65,-2969.22 1042.65,-2969.22"/>
<polygon fill="none" stroke="#29235c" points="1042.65,-2969.22 1042.65,-3029.22 1407.65,-3029.22 1407.65,-2969.22 1042.65,-2969.22"/>
<text text-anchor="start" x="1114.9" y="-2990.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;BALANCE &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1042.65,-2909.22 1042.65,-2969.22 1407.65,-2969.22 1407.65,-2909.22 1042.65,-2909.22"/>
<polygon fill="none" stroke="#29235c" points="1042.65,-2909.22 1042.65,-2969.22 1407.65,-2969.22 1407.65,-2909.22 1042.65,-2909.22"/>
<text text-anchor="start" x="1125.58" y="-2930.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;INCOME &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1042.65,-2849.22 1042.65,-2909.22 1407.65,-2909.22 1407.65,-2849.22 1042.65,-2849.22"/>
<polygon fill="none" stroke="#29235c" points="1042.65,-2849.22 1042.65,-2909.22 1407.65,-2909.22 1407.65,-2849.22 1042.65,-2849.22"/>
<text text-anchor="start" x="1155.79" y="-2870.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OSV &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1042.65,-2789.22 1042.65,-2849.22 1407.65,-2849.22 1407.65,-2789.22 1042.65,-2789.22"/>
<polygon fill="none" stroke="#29235c" points="1042.65,-2789.22 1042.65,-2849.22 1407.65,-2849.22 1407.65,-2789.22 1042.65,-2789.22"/>
<text text-anchor="start" x="1085.58" y="-2810.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DISCLOSURE &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1042.65,-2729.22 1042.65,-2789.22 1407.65,-2789.22 1407.65,-2729.22 1042.65,-2729.22"/>
<polygon fill="none" stroke="#29235c" points="1042.65,-2729.22 1042.65,-2789.22 1407.65,-2789.22 1407.65,-2729.22 1042.65,-2729.22"/>
<text text-anchor="start" x="1133.58" y="-2750.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OTHER &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1041.15,-2728.22 1041.15,-3090.22 1408.15,-3090.22 1408.15,-2728.22 1041.15,-2728.22"/>
</g>
<!-- recognition_pipeline -->
<g id="recognition_pipeline" class="node">
<title>recognition_pipeline</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1224.65" cy="-1309.22" rx="307.68" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="1009.65,-1339.22 1009.65,-1399.22 1440.65,-1399.22 1440.65,-1339.22 1009.65,-1339.22"/>
<polygon fill="none" stroke="#29235c" points="1009.65,-1339.22 1009.65,-1399.22 1440.65,-1399.22 1440.65,-1339.22 1009.65,-1339.22"/>
<text text-anchor="start" x="1020.64" y="-1360.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;recognition_pipeline &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1009.65,-1279.22 1009.65,-1339.22 1440.65,-1339.22 1440.65,-1279.22 1009.65,-1279.22"/>
<polygon fill="none" stroke="#29235c" points="1009.65,-1279.22 1009.65,-1339.22 1440.65,-1339.22 1440.65,-1279.22 1009.65,-1279.22"/>
<text text-anchor="start" x="1140.67" y="-1300.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;tabular &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1009.65,-1219.22 1009.65,-1279.22 1440.65,-1279.22 1440.65,-1219.22 1009.65,-1219.22"/>
<polygon fill="none" stroke="#29235c" points="1009.65,-1219.22 1009.65,-1279.22 1440.65,-1279.22 1440.65,-1219.22 1009.65,-1219.22"/>
<text text-anchor="start" x="1146.02" y="-1240.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;image &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1008.15,-1218.22 1008.15,-1400.22 1441.15,-1400.22 1441.15,-1218.22 1008.15,-1218.22"/>
</g>
<!-- quality_outcome -->
<g id="quality_outcome" class="node">
<title>quality_outcome</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1224.65" cy="-5496.22" rx="429.43" ry="299.63"/>
<polygon fill="#29235c" stroke="transparent" points="923.65,-5646.22 923.65,-5706.22 1526.65,-5706.22 1526.65,-5646.22 923.65,-5646.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5646.22 923.65,-5706.22 1526.65,-5706.22 1526.65,-5646.22 923.65,-5646.22"/>
<text text-anchor="start" x="1046.42" y="-5667.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;quality_outcome &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="923.65,-5586.22 923.65,-5646.22 1526.65,-5646.22 1526.65,-5586.22 923.65,-5586.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5586.22 923.65,-5646.22 1526.65,-5646.22 1526.65,-5586.22 923.65,-5586.22"/>
<text text-anchor="start" x="1039.37" y="-5607.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;AUTO_CONFIRMED &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="923.65,-5526.22 923.65,-5586.22 1526.65,-5586.22 1526.65,-5526.22 923.65,-5526.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5526.22 923.65,-5586.22 1526.65,-5586.22 1526.65,-5526.22 923.65,-5526.22"/>
<text text-anchor="start" x="1092.71" y="-5547.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CONFIRMED &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="923.65,-5466.22 923.65,-5526.22 1526.65,-5526.22 1526.65,-5466.22 923.65,-5466.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5466.22 923.65,-5526.22 1526.65,-5526.22 1526.65,-5466.22 923.65,-5466.22"/>
<text text-anchor="start" x="1115.79" y="-5487.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DELETED &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="923.65,-5406.22 923.65,-5466.22 1526.65,-5466.22 1526.65,-5406.22 923.65,-5406.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5406.22 923.65,-5466.22 1526.65,-5466.22 1526.65,-5406.22 923.65,-5406.22"/>
<text text-anchor="start" x="1079.35" y="-5427.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;SUPERSEDED &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="923.65,-5346.22 923.65,-5406.22 1526.65,-5406.22 1526.65,-5346.22 923.65,-5346.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5346.22 923.65,-5406.22 1526.65,-5406.22 1526.65,-5346.22 923.65,-5346.22"/>
<text text-anchor="start" x="970.92" y="-5367.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DELETED_AFTER_CONFIRM &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="923.65,-5286.22 923.65,-5346.22 1526.65,-5346.22 1526.65,-5286.22 923.65,-5286.22"/>
<polygon fill="none" stroke="#29235c" points="923.65,-5286.22 923.65,-5346.22 1526.65,-5346.22 1526.65,-5286.22 923.65,-5286.22"/>
<text text-anchor="start" x="934.48" y="-5307.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;SUPERSEDED_AFTER_CONFIRM &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="922.15,-5285.22 922.15,-5707.22 1527.15,-5707.22 1527.15,-5285.22 922.15,-5285.22"/>
</g>
<!-- quality_cause -->
<g id="quality_cause" class="node">
<title>quality_cause</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1224.65" cy="-4921.22" rx="359.83" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="972.65,-5041.22 972.65,-5101.22 1477.65,-5101.22 1477.65,-5041.22 972.65,-5041.22"/>
<polygon fill="none" stroke="#29235c" points="972.65,-5041.22 972.65,-5101.22 1477.65,-5101.22 1477.65,-5041.22 972.65,-5041.22"/>
<text text-anchor="start" x="1065.09" y="-5062.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;quality_cause &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="972.65,-4981.22 972.65,-5041.22 1477.65,-5041.22 1477.65,-4981.22 972.65,-4981.22"/>
<polygon fill="none" stroke="#29235c" points="972.65,-4981.22 972.65,-5041.22 1477.65,-5041.22 1477.65,-4981.22 972.65,-4981.22"/>
<text text-anchor="start" x="1052.68" y="-5002.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;SERVICE_ERROR &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="972.65,-4921.22 972.65,-4981.22 1477.65,-4981.22 1477.65,-4921.22 972.65,-4921.22"/>
<polygon fill="none" stroke="#29235c" points="972.65,-4921.22 972.65,-4981.22 1477.65,-4981.22 1477.65,-4921.22 972.65,-4921.22"/>
<text text-anchor="start" x="1087.37" y="-4942.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OUR_ERROR &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="972.65,-4861.22 972.65,-4921.22 1477.65,-4921.22 1477.65,-4861.22 972.65,-4861.22"/>
<polygon fill="none" stroke="#29235c" points="972.65,-4861.22 972.65,-4921.22 1477.65,-4921.22 1477.65,-4861.22 972.65,-4861.22"/>
<text text-anchor="start" x="1031.38" y="-4882.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CLIENT_DOCUMENT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="972.65,-4801.22 972.65,-4861.22 1477.65,-4861.22 1477.65,-4801.22 972.65,-4801.22"/>
<polygon fill="none" stroke="#29235c" points="972.65,-4801.22 972.65,-4861.22 1477.65,-4861.22 1477.65,-4801.22 972.65,-4801.22"/>
<text text-anchor="start" x="983.37" y="-4822.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;WITHOUT_PARTICIPATION &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="972.65,-4741.22 972.65,-4801.22 1477.65,-4801.22 1477.65,-4741.22 972.65,-4741.22"/>
<polygon fill="none" stroke="#29235c" points="972.65,-4741.22 972.65,-4801.22 1477.65,-4801.22 1477.65,-4741.22 972.65,-4741.22"/>
<text text-anchor="start" x="1144.22" y="-4762.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;AS_IS &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="971.15,-4740.22 971.15,-5102.22 1478.15,-5102.22 1478.15,-4740.22 971.15,-4740.22"/>
</g>
<!-- quality_failure_kind -->
<g id="quality_failure_kind" class="node">
<title>quality_failure_kind</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1224.65" cy="-219.22" rx="299.63" ry="214.92"/>
<polygon fill="#29235c" stroke="transparent" points="1014.65,-309.22 1014.65,-369.22 1434.65,-369.22 1434.65,-309.22 1014.65,-309.22"/>
<polygon fill="none" stroke="#29235c" points="1014.65,-309.22 1014.65,-369.22 1434.65,-369.22 1434.65,-309.22 1014.65,-309.22"/>
<text text-anchor="start" x="1025.48" y="-330.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;quality_failure_kind &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1014.65,-249.22 1014.65,-309.22 1434.65,-309.22 1434.65,-249.22 1014.65,-249.22"/>
<polygon fill="none" stroke="#29235c" points="1014.65,-249.22 1014.65,-309.22 1434.65,-309.22 1434.65,-249.22 1014.65,-249.22"/>
<text text-anchor="start" x="1052.18" y="-270.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;SERVICE_ERROR &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1014.65,-189.22 1014.65,-249.22 1434.65,-249.22 1434.65,-189.22 1014.65,-189.22"/>
<polygon fill="none" stroke="#29235c" points="1014.65,-189.22 1014.65,-249.22 1434.65,-249.22 1434.65,-189.22 1014.65,-189.22"/>
<text text-anchor="start" x="1117.09" y="-210.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;TIMEOUT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1014.65,-129.22 1014.65,-189.22 1434.65,-189.22 1434.65,-129.22 1014.65,-129.22"/>
<polygon fill="none" stroke="#29235c" points="1014.65,-129.22 1014.65,-189.22 1434.65,-189.22 1434.65,-129.22 1014.65,-129.22"/>
<text text-anchor="start" x="1123.29" y="-150.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;NO_ACK &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1014.65,-69.22 1014.65,-129.22 1434.65,-129.22 1434.65,-69.22 1014.65,-69.22"/>
<polygon fill="none" stroke="#29235c" points="1014.65,-69.22 1014.65,-129.22 1434.65,-129.22 1434.65,-69.22 1014.65,-69.22"/>
<text text-anchor="start" x="1115.29" y="-90.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;MAPPING &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1013.65,-68.22 1013.65,-370.22 1435.65,-370.22 1435.65,-68.22 1013.65,-68.22"/>
</g>
<!-- document_status -->
<g id="document_status" class="node">
<title>document_status</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1224.65" cy="-2399.22" rx="278.7" ry="214.92"/>
<polygon fill="#29235c" stroke="transparent" points="1029.65,-2489.22 1029.65,-2549.22 1419.65,-2549.22 1419.65,-2489.22 1029.65,-2489.22"/>
<polygon fill="none" stroke="#29235c" points="1029.65,-2489.22 1029.65,-2549.22 1419.65,-2549.22 1419.65,-2489.22 1029.65,-2489.22"/>
<text text-anchor="start" x="1040.58" y="-2510.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document_status &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1029.65,-2429.22 1029.65,-2489.22 1419.65,-2489.22 1419.65,-2429.22 1029.65,-2429.22"/>
<polygon fill="none" stroke="#29235c" points="1029.65,-2429.22 1029.65,-2489.22 1419.65,-2489.22 1419.65,-2429.22 1029.65,-2429.22"/>
<text text-anchor="start" x="1082.42" y="-2450.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;RECOGNIZED &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1029.65,-2369.22 1029.65,-2429.22 1419.65,-2429.22 1419.65,-2369.22 1029.65,-2369.22"/>
<polygon fill="none" stroke="#29235c" points="1029.65,-2369.22 1029.65,-2429.22 1419.65,-2429.22 1419.65,-2369.22 1029.65,-2369.22"/>
<text text-anchor="start" x="1069.08" y="-2390.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;NEEDS_CHECK &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1029.65,-2309.22 1029.65,-2369.22 1419.65,-2369.22 1419.65,-2309.22 1029.65,-2309.22"/>
<polygon fill="none" stroke="#29235c" points="1029.65,-2309.22 1029.65,-2369.22 1419.65,-2369.22 1419.65,-2309.22 1029.65,-2309.22"/>
<text text-anchor="start" x="1092.21" y="-2330.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CONFIRMED &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1029.65,-2249.22 1029.65,-2309.22 1419.65,-2309.22 1419.65,-2249.22 1029.65,-2249.22"/>
<polygon fill="none" stroke="#29235c" points="1029.65,-2249.22 1029.65,-2309.22 1419.65,-2309.22 1419.65,-2249.22 1029.65,-2249.22"/>
<text text-anchor="start" x="1131.31" y="-2270.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ERROR &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1028.65,-2248.22 1028.65,-2550.22 1420.65,-2550.22 1420.65,-2248.22 1028.65,-2248.22"/>
</g>
<!-- quality_intake_fact -->
<g id="quality_intake_fact" class="node">
<title>quality_intake_fact</title>
<g id="a_quality_intake_fact"><a xlink:title="quality_intake_fact&#10;Отдельная схема PostgreSQL dkb_metrics (имя — настройка). Append&#45;only, без FK на рабочие таблицы: переживает удаление/перераспознавание документа. Пишется в транзакции маппинга, после map_file, до auto_confirm — один факт на созданный документ BALANCE/INCOME/OSV.">
<ellipse fill="none" stroke="black" stroke-width="0" cx="379.72" cy="-2699.22" rx="379.93" ry="1402.8"/>
<polygon fill="#1d71b8" stroke="transparent" points="113.72,-3629.22 113.72,-3689.22 646.72,-3689.22 646.72,-3629.22 113.72,-3629.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3629.22 113.72,-3689.22 646.72,-3689.22 646.72,-3629.22 113.72,-3629.22"/>
<text text-anchor="start" x="185.48" y="-3650.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;quality_intake_fact &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3569.22 113.72,-3629.22 646.72,-3629.22 646.72,-3569.22 113.72,-3569.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3569.22 113.72,-3629.22 646.72,-3629.22 646.72,-3569.22 113.72,-3569.22"/>
<text text-anchor="start" x="124.72" y="-3590.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="149.61" y="-3590.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="575.25" y="-3590.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3509.22 113.72,-3569.22 646.72,-3569.22 646.72,-3509.22 113.72,-3509.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3509.22 113.72,-3569.22 646.72,-3569.22 646.72,-3509.22 113.72,-3509.22"/>
<text text-anchor="start" x="124.72" y="-3529.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">document_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-3530.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-3530.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-3530.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3449.22 113.72,-3509.22 646.72,-3509.22 646.72,-3449.22 113.72,-3449.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3449.22 113.72,-3509.22 646.72,-3509.22 646.72,-3449.22 113.72,-3449.22"/>
<text text-anchor="start" x="124.72" y="-3469.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">file_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-3470.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-3470.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-3470.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3389.22 113.72,-3449.22 646.72,-3449.22 646.72,-3389.22 113.72,-3389.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3389.22 113.72,-3449.22 646.72,-3449.22 646.72,-3389.22 113.72,-3389.22"/>
<text text-anchor="start" x="124.72" y="-3409.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-3410.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-3410.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-3410.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3329.22 113.72,-3389.22 646.72,-3389.22 646.72,-3329.22 113.72,-3329.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3329.22 113.72,-3389.22 646.72,-3389.22 646.72,-3329.22 113.72,-3329.22"/>
<text text-anchor="start" x="124.72" y="-3349.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">attempt &#160;&#160;&#160;</text>
<text text-anchor="start" x="488.2" y="-3350.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="596.63" y="-3350.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-3350.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3269.22 113.72,-3329.22 646.72,-3329.22 646.72,-3269.22 113.72,-3269.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3269.22 113.72,-3329.22 646.72,-3329.22 646.72,-3269.22 113.72,-3269.22"/>
<text text-anchor="start" x="124.72" y="-3289.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">legal_entity_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-3290.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-3290.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-3290.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3209.22 113.72,-3269.22 646.72,-3269.22 646.72,-3209.22 113.72,-3209.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3209.22 113.72,-3269.22 646.72,-3269.22 646.72,-3209.22 113.72,-3209.22"/>
<text text-anchor="start" x="124.72" y="-3229.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">legal_entity_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="489.95" y="-3230.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="596.63" y="-3230.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-3230.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3149.22 113.72,-3209.22 646.72,-3209.22 646.72,-3149.22 113.72,-3149.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3149.22 113.72,-3209.22 646.72,-3209.22 646.72,-3149.22 113.72,-3149.22"/>
<text text-anchor="start" x="124.72" y="-3169.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="575.25" y="-3170.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3089.22 113.72,-3149.22 646.72,-3149.22 646.72,-3089.22 113.72,-3089.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3089.22 113.72,-3149.22 646.72,-3149.22 646.72,-3089.22 113.72,-3089.22"/>
<text text-anchor="start" x="124.72" y="-3109.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-3110.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-3029.22 113.72,-3089.22 646.72,-3089.22 646.72,-3029.22 113.72,-3029.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-3029.22 113.72,-3089.22 646.72,-3089.22 646.72,-3029.22 113.72,-3029.22"/>
<text text-anchor="start" x="124.56" y="-3049.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">document_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="378.3" y="-3050.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">document_type</text>
<text text-anchor="start" x="597.05" y="-3050.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.94" y="-3050.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2969.22 113.72,-3029.22 646.72,-3029.22 646.72,-2969.22 113.72,-2969.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2969.22 113.72,-3029.22 646.72,-3029.22 646.72,-2969.22 113.72,-2969.22"/>
<text text-anchor="start" x="124.72" y="-2989.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">pipeline &#160;&#160;&#160;</text>
<text text-anchor="start" x="312.11" y="-2990.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">recognition_pipeline</text>
<text text-anchor="start" x="596.63" y="-2990.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-2990.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2909.22 113.72,-2969.22 646.72,-2969.22 646.72,-2909.22 113.72,-2909.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2909.22 113.72,-2969.22 646.72,-2969.22 646.72,-2909.22 113.72,-2909.22"/>
<text text-anchor="start" x="124.72" y="-2929.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_scan &#160;&#160;&#160;</text>
<text text-anchor="start" x="521.88" y="-2930.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2849.22 113.72,-2909.22 646.72,-2909.22 646.72,-2849.22 113.72,-2849.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2849.22 113.72,-2909.22 646.72,-2909.22 646.72,-2849.22 113.72,-2849.22"/>
<text text-anchor="start" x="124.72" y="-2869.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">service_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-2870.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2789.22 113.72,-2849.22 646.72,-2849.22 646.72,-2789.22 113.72,-2789.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2789.22 113.72,-2849.22 646.72,-2849.22 646.72,-2789.22 113.72,-2789.22"/>
<text text-anchor="start" x="124.72" y="-2809.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">service_version &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-2810.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2729.22 113.72,-2789.22 646.72,-2789.22 646.72,-2729.22 113.72,-2729.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2729.22 113.72,-2789.22 646.72,-2789.22 646.72,-2729.22 113.72,-2729.22"/>
<text text-anchor="start" x="124.72" y="-2749.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">statements_version &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-2750.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2669.22 113.72,-2729.22 646.72,-2729.22 646.72,-2669.22 113.72,-2669.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2669.22 113.72,-2729.22 646.72,-2729.22 646.72,-2669.22 113.72,-2669.22"/>
<text text-anchor="start" x="124.72" y="-2689.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">result_schema_version &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-2690.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2609.22 113.72,-2669.22 646.72,-2669.22 646.72,-2609.22 113.72,-2609.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2609.22 113.72,-2669.22 646.72,-2669.22 646.72,-2609.22 113.72,-2609.22"/>
<text text-anchor="start" x="124.72" y="-2629.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date &#160;&#160;&#160;</text>
<text text-anchor="start" x="573.46" y="-2630.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2549.22 113.72,-2609.22 646.72,-2609.22 646.72,-2549.22 113.72,-2549.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2549.22 113.72,-2609.22 646.72,-2609.22 646.72,-2549.22 113.72,-2549.22"/>
<text text-anchor="start" x="124.72" y="-2569.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">intake_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="424.17" y="-2570.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<text text-anchor="start" x="596.63" y="-2570.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-2570.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2489.22 113.72,-2549.22 646.72,-2549.22 646.72,-2489.22 113.72,-2489.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2489.22 113.72,-2549.22 646.72,-2549.22 646.72,-2489.22 113.72,-2489.22"/>
<text text-anchor="start" x="124.72" y="-2509.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">intake_status &#160;&#160;&#160;</text>
<text text-anchor="start" x="352.98" y="-2510.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">document_status</text>
<text text-anchor="start" x="596.63" y="-2510.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-2510.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2429.22 113.72,-2489.22 646.72,-2489.22 646.72,-2429.22 113.72,-2429.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2429.22 113.72,-2489.22 646.72,-2489.22 646.72,-2429.22 113.72,-2429.22"/>
<text text-anchor="start" x="124.72" y="-2449.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2450.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2369.22 113.72,-2429.22 646.72,-2429.22 646.72,-2369.22 113.72,-2369.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2369.22 113.72,-2429.22 646.72,-2429.22 646.72,-2369.22 113.72,-2369.22"/>
<text text-anchor="start" x="124.72" y="-2389.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">value_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2390.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2309.22 113.72,-2369.22 646.72,-2369.22 646.72,-2309.22 113.72,-2309.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2309.22 113.72,-2369.22 646.72,-2369.22 646.72,-2309.22 113.72,-2309.22"/>
<text text-anchor="start" x="124.72" y="-2329.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">value_needs_review_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2330.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2249.22 113.72,-2309.22 646.72,-2309.22 646.72,-2249.22 113.72,-2249.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2249.22 113.72,-2309.22 646.72,-2309.22 646.72,-2249.22 113.72,-2249.22"/>
<text text-anchor="start" x="124.72" y="-2269.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_unreadable_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2270.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2189.22 113.72,-2249.22 646.72,-2249.22 646.72,-2189.22 113.72,-2189.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2189.22 113.72,-2249.22 646.72,-2249.22 646.72,-2189.22 113.72,-2189.22"/>
<text text-anchor="start" x="124.72" y="-2209.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_missing_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2210.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2129.22 113.72,-2189.22 646.72,-2189.22 646.72,-2129.22 113.72,-2129.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2129.22 113.72,-2189.22 646.72,-2189.22 646.72,-2129.22 113.72,-2129.22"/>
<text text-anchor="start" x="124.72" y="-2149.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">issue_relation_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2150.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2069.22 113.72,-2129.22 646.72,-2129.22 646.72,-2069.22 113.72,-2069.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2069.22 113.72,-2129.22 646.72,-2129.22 646.72,-2069.22 113.72,-2069.22"/>
<text text-anchor="start" x="124.72" y="-2089.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">issue_soft_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2090.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-2009.22 113.72,-2069.22 646.72,-2069.22 646.72,-2009.22 113.72,-2009.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-2009.22 113.72,-2069.22 646.72,-2069.22 646.72,-2009.22 113.72,-2009.22"/>
<text text-anchor="start" x="124.72" y="-2029.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">warning_count &#160;&#160;&#160;</text>
<text text-anchor="start" x="601.93" y="-2030.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-1949.22 113.72,-2009.22 646.72,-2009.22 646.72,-1949.22 113.72,-1949.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-1949.22 113.72,-2009.22 646.72,-2009.22 646.72,-1949.22 113.72,-1949.22"/>
<text text-anchor="start" x="124.72" y="-1969.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">raw_s3_key &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-1970.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-1889.22 113.72,-1949.22 646.72,-1949.22 646.72,-1889.22 113.72,-1889.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-1889.22 113.72,-1949.22 646.72,-1949.22 646.72,-1889.22 113.72,-1889.22"/>
<text text-anchor="start" x="124.72" y="-1909.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">result_s3_key &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-1910.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-1829.22 113.72,-1889.22 646.72,-1889.22 646.72,-1829.22 113.72,-1829.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-1829.22 113.72,-1889.22 646.72,-1889.22 646.72,-1829.22 113.72,-1829.22"/>
<text text-anchor="start" x="124.72" y="-1849.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">upload_s3_key &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-1850.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-1769.22 113.72,-1829.22 646.72,-1829.22 646.72,-1769.22 113.72,-1769.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-1769.22 113.72,-1829.22 646.72,-1829.22 646.72,-1769.22 113.72,-1769.22"/>
<text text-anchor="start" x="124.72" y="-1789.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">payload &#160;&#160;&#160;</text>
<text text-anchor="start" x="520.16" y="-1790.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">jsonb</text>
<text text-anchor="start" x="596.63" y="-1790.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-1790.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-1709.22 113.72,-1769.22 646.72,-1769.22 646.72,-1709.22 113.72,-1709.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-1709.22 113.72,-1769.22 646.72,-1769.22 646.72,-1709.22 113.72,-1709.22"/>
<text text-anchor="start" x="124.72" y="-1729.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">payload_schema_version &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-1730.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="112.22,-1708.22 112.22,-3690.22 647.22,-3690.22 647.22,-1708.22 112.22,-1708.22"/>
</a>
</g>
</g>
<!-- quality_intake_fact&#45;&gt;document_type -->
<g id="edge1" class="edge">
<title>quality_intake_fact:e&#45;&gt;document_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M647.72,-3059.22C822.8,-3059.22 866.57,-3059.22 1041.65,-3059.22"/>
</g>
<!-- quality_intake_fact&#45;&gt;recognition_pipeline -->
<g id="edge2" class="edge">
<title>quality_intake_fact:e&#45;&gt;recognition_pipeline:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M647.72,-2999.22C833.75,-2999.22 755.2,-2356.85 795.43,-2175.22 875.57,-1813.45 638.1,-1369.22 1008.65,-1369.22"/>
</g>
<!-- quality_intake_fact&#45;&gt;document_status -->
<g id="edge3" class="edge">
<title>quality_intake_fact:e&#45;&gt;document_status:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M647.72,-2519.22C817.02,-2519.22 859.34,-2519.22 1028.65,-2519.22"/>
</g>
<!-- quality_outcome_fact -->
<g id="quality_outcome_fact" class="node">
<title>quality_outcome_fact</title>
<g id="a_quality_outcome_fact"><a xlink:title="quality_outcome_fact&#10;НЕ unique на document_id: повторное подтверждение ОСВ и исход DELETED_AFTER_CONFIRM/SUPERSEDED_AFTER_CONFIRM пишут новый факт поверх прежнего. Метрики берут последний факт по outcome_at. Пишется при первом из событий: подтверждение (ручное/auto_confirm), удаление до подтверждения, автозамена.">
<ellipse fill="none" stroke="black" stroke-width="0" cx="379.72" cy="-5014.22" rx="374.53" ry="893.57"/>
<polygon fill="#1d71b8" stroke="transparent" points="116.72,-5584.22 116.72,-5644.22 642.72,-5644.22 642.72,-5584.22 116.72,-5584.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5584.22 116.72,-5644.22 642.72,-5644.22 642.72,-5584.22 116.72,-5584.22"/>
<text text-anchor="start" x="166.31" y="-5605.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;quality_outcome_fact &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5524.22 116.72,-5584.22 642.72,-5584.22 642.72,-5524.22 116.72,-5524.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5524.22 116.72,-5584.22 642.72,-5584.22 642.72,-5524.22 116.72,-5524.22"/>
<text text-anchor="start" x="127.72" y="-5545.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="152.61" y="-5545.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="571.25" y="-5545.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5464.22 116.72,-5524.22 642.72,-5524.22 642.72,-5464.22 116.72,-5464.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5464.22 116.72,-5524.22 642.72,-5524.22 642.72,-5464.22 116.72,-5464.22"/>
<text text-anchor="start" x="127.72" y="-5484.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">document_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="532.16" y="-5485.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="592.63" y="-5485.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5485.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5404.22 116.72,-5464.22 642.72,-5464.22 642.72,-5404.22 116.72,-5404.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5404.22 116.72,-5464.22 642.72,-5464.22 642.72,-5404.22 116.72,-5404.22"/>
<text text-anchor="start" x="127.72" y="-5424.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">outcome &#160;&#160;&#160;</text>
<text text-anchor="start" x="359.67" y="-5425.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">quality_outcome</text>
<text text-anchor="start" x="592.63" y="-5425.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5425.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5344.22 116.72,-5404.22 642.72,-5404.22 642.72,-5344.22 116.72,-5344.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5344.22 116.72,-5404.22 642.72,-5404.22 642.72,-5344.22 116.72,-5344.22"/>
<text text-anchor="start" x="127.72" y="-5364.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">outcome_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="420.17" y="-5365.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<text text-anchor="start" x="592.63" y="-5365.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5365.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5284.22 116.72,-5344.22 642.72,-5344.22 642.72,-5284.22 116.72,-5284.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5284.22 116.72,-5344.22 642.72,-5344.22 642.72,-5284.22 116.72,-5284.22"/>
<text text-anchor="start" x="127.72" y="-5304.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">primary_cause &#160;&#160;&#160;</text>
<text text-anchor="start" x="436.1" y="-5305.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">quality_cause</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5224.22 116.72,-5284.22 642.72,-5284.22 642.72,-5224.22 116.72,-5224.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5224.22 116.72,-5284.22 642.72,-5284.22 642.72,-5224.22 116.72,-5224.22"/>
<text text-anchor="start" x="127.72" y="-5244.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_value_service &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-5245.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-5245.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5245.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5164.22 116.72,-5224.22 642.72,-5224.22 642.72,-5164.22 116.72,-5164.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5164.22 116.72,-5224.22 642.72,-5224.22 642.72,-5164.22 116.72,-5164.22"/>
<text text-anchor="start" x="127.72" y="-5184.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_value_ours &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-5185.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-5185.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5185.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5104.22 116.72,-5164.22 642.72,-5164.22 642.72,-5104.22 116.72,-5104.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5104.22 116.72,-5164.22 642.72,-5164.22 642.72,-5104.22 116.72,-5104.22"/>
<text text-anchor="start" x="127.72" y="-5124.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_code_service &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-5125.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-5125.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5125.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-5044.22 116.72,-5104.22 642.72,-5104.22 642.72,-5044.22 116.72,-5044.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-5044.22 116.72,-5104.22 642.72,-5104.22 642.72,-5044.22 116.72,-5044.22"/>
<text text-anchor="start" x="127.72" y="-5064.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_code_ours &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-5065.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-5065.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5065.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4984.22 116.72,-5044.22 642.72,-5044.22 642.72,-4984.22 116.72,-4984.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4984.22 116.72,-5044.22 642.72,-5044.22 642.72,-4984.22 116.72,-4984.22"/>
<text text-anchor="start" x="127.72" y="-5004.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_added_row_service &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-5005.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-5005.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-5005.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4924.22 116.72,-4984.22 642.72,-4984.22 642.72,-4924.22 116.72,-4924.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4924.22 116.72,-4984.22 642.72,-4984.22 642.72,-4924.22 116.72,-4924.22"/>
<text text-anchor="start" x="127.72" y="-4944.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_added_row_ours &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-4945.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-4945.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4945.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4864.22 116.72,-4924.22 642.72,-4924.22 642.72,-4864.22 116.72,-4864.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4864.22 116.72,-4924.22 642.72,-4924.22 642.72,-4864.22 116.72,-4864.22"/>
<text text-anchor="start" x="127.72" y="-4884.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_header_service &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-4885.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-4885.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4885.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4804.22 116.72,-4864.22 642.72,-4864.22 642.72,-4804.22 116.72,-4804.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4804.22 116.72,-4864.22 642.72,-4864.22 642.72,-4804.22 116.72,-4804.22"/>
<text text-anchor="start" x="127.72" y="-4824.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_header_ours &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-4825.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-4825.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4825.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4744.22 116.72,-4804.22 642.72,-4804.22 642.72,-4744.22 116.72,-4744.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4744.22 116.72,-4804.22 642.72,-4804.22 642.72,-4744.22 116.72,-4744.22"/>
<text text-anchor="start" x="127.72" y="-4764.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">fixes_osv_period_account &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-4765.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-4765.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4765.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4684.22 116.72,-4744.22 642.72,-4744.22 642.72,-4684.22 116.72,-4684.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4684.22 116.72,-4744.22 642.72,-4744.22 642.72,-4684.22 116.72,-4684.22"/>
<text text-anchor="start" x="127.72" y="-4704.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted &#160;&#160;&#160;</text>
<text text-anchor="start" x="478.79" y="-4705.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="592.63" y="-4705.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4705.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4624.22 116.72,-4684.22 642.72,-4684.22 642.72,-4624.22 116.72,-4624.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4624.22 116.72,-4684.22 642.72,-4684.22 642.72,-4624.22 116.72,-4624.22"/>
<text text-anchor="start" x="127.72" y="-4644.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">issue_count_at_outcome &#160;&#160;&#160;</text>
<text text-anchor="start" x="558.84" y="-4645.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="592.63" y="-4645.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4645.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4564.22 116.72,-4624.22 642.72,-4624.22 642.72,-4564.22 116.72,-4564.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4564.22 116.72,-4624.22 642.72,-4624.22 642.72,-4564.22 116.72,-4564.22"/>
<text text-anchor="start" x="127.72" y="-4584.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date &#160;&#160;&#160;</text>
<text text-anchor="start" x="569.46" y="-4585.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4504.22 116.72,-4564.22 642.72,-4564.22 642.72,-4504.22 116.72,-4504.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4504.22 116.72,-4564.22 642.72,-4564.22 642.72,-4504.22 116.72,-4504.22"/>
<text text-anchor="start" x="127.72" y="-4524.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">confirmed_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="571.25" y="-4525.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4444.22 116.72,-4504.22 642.72,-4504.22 642.72,-4444.22 116.72,-4444.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4444.22 116.72,-4504.22 642.72,-4504.22 642.72,-4444.22 116.72,-4444.22"/>
<text text-anchor="start" x="127.72" y="-4464.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">payload &#160;&#160;&#160;</text>
<text text-anchor="start" x="516.16" y="-4465.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">jsonb</text>
<text text-anchor="start" x="592.63" y="-4465.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="601.52" y="-4465.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="116.72,-4384.22 116.72,-4444.22 642.72,-4444.22 642.72,-4384.22 116.72,-4384.22"/>
<polygon fill="none" stroke="#29235c" points="116.72,-4384.22 116.72,-4444.22 642.72,-4444.22 642.72,-4384.22 116.72,-4384.22"/>
<text text-anchor="start" x="127.55" y="-4404.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">payload_schema_version &#160;&#160;&#160;</text>
<text text-anchor="start" x="525.38" y="-4405.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="115.72,-4383.22 115.72,-5645.22 643.72,-5645.22 643.72,-4383.22 115.72,-4383.22"/>
</a>
</g>
</g>
<!-- quality_outcome_fact&#45;&gt;quality_outcome -->
<g id="edge4" class="edge">
<title>quality_outcome_fact:e&#45;&gt;quality_outcome:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M643.72,-5434.22C807.84,-5434.22 758.52,-5676.22 922.65,-5676.22"/>
</g>
<!-- quality_outcome_fact&#45;&gt;quality_cause -->
<g id="edge5" class="edge">
<title>quality_outcome_fact:e&#45;&gt;quality_cause:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M643.72,-5314.22C731.65,-5314.22 724.88,-5239.71 795.43,-5187.22 870.66,-5131.26 877.88,-5071.22 971.65,-5071.22"/>
</g>
<!-- quality_failure_fact -->
<g id="quality_failure_fact" class="node">
<title>quality_failure_fact</title>
<g id="a_quality_failure_fact"><a xlink:title="quality_failure_fact&#10;Технический отказ задания распознавания (recognition_job.status error/timeout/dlq) или неповторяемая ошибка маппинга (MappingFatal). Считается по файлам, не по документам — знаменатель «отказавших файлов от загруженных того же pipeline» (§14), фильтр по типу документа не действует. FILE_REPROCESS: отказ первой попытки остаётся фактом, документы удачной попытки получают свои intake/outcome. Нет payload/payload_schema_version — все поля плоские.">
<ellipse fill="none" stroke="black" stroke-width="0" cx="379.72" cy="-639.22" rx="379.93" ry="639.45"/>
<polygon fill="#1d71b8" stroke="transparent" points="113.72,-1029.22 113.72,-1089.22 646.72,-1089.22 646.72,-1029.22 113.72,-1029.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-1029.22 113.72,-1089.22 646.72,-1089.22 646.72,-1029.22 113.72,-1029.22"/>
<text text-anchor="start" x="184.6" y="-1050.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;quality_failure_fact &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-969.22 113.72,-1029.22 646.72,-1029.22 646.72,-969.22 113.72,-969.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-969.22 113.72,-1029.22 646.72,-1029.22 646.72,-969.22 113.72,-969.22"/>
<text text-anchor="start" x="124.72" y="-990.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="149.61" y="-990.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="575.25" y="-990.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-909.22 113.72,-969.22 646.72,-969.22 646.72,-909.22 113.72,-909.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-909.22 113.72,-969.22 646.72,-969.22 646.72,-909.22 113.72,-909.22"/>
<text text-anchor="start" x="124.72" y="-929.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-930.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-930.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-930.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-849.22 113.72,-909.22 646.72,-909.22 646.72,-849.22 113.72,-849.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-849.22 113.72,-909.22 646.72,-909.22 646.72,-849.22 113.72,-849.22"/>
<text text-anchor="start" x="124.72" y="-869.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">file_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-870.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-870.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-870.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-789.22 113.72,-849.22 646.72,-849.22 646.72,-789.22 113.72,-789.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-789.22 113.72,-849.22 646.72,-849.22 646.72,-789.22 113.72,-789.22"/>
<text text-anchor="start" x="124.72" y="-809.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">attempt &#160;&#160;&#160;</text>
<text text-anchor="start" x="488.2" y="-810.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="596.63" y="-810.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-810.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-729.22 113.72,-789.22 646.72,-789.22 646.72,-729.22 113.72,-729.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-729.22 113.72,-789.22 646.72,-789.22 646.72,-729.22 113.72,-729.22"/>
<text text-anchor="start" x="124.72" y="-749.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">legal_entity_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="536.16" y="-750.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="596.63" y="-750.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-750.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-669.22 113.72,-729.22 646.72,-729.22 646.72,-669.22 113.72,-669.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-669.22 113.72,-729.22 646.72,-729.22 646.72,-669.22 113.72,-669.22"/>
<text text-anchor="start" x="124.72" y="-689.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">legal_entity_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="489.95" y="-690.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="596.63" y="-690.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-690.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-609.22 113.72,-669.22 646.72,-669.22 646.72,-609.22 113.72,-609.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-609.22 113.72,-669.22 646.72,-669.22 646.72,-609.22 113.72,-609.22"/>
<text text-anchor="start" x="124.72" y="-629.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="575.25" y="-630.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-549.22 113.72,-609.22 646.72,-609.22 646.72,-549.22 113.72,-549.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-549.22 113.72,-609.22 646.72,-609.22 646.72,-549.22 113.72,-549.22"/>
<text text-anchor="start" x="124.72" y="-569.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-570.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-489.22 113.72,-549.22 646.72,-549.22 646.72,-489.22 113.72,-489.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-489.22 113.72,-549.22 646.72,-549.22 646.72,-489.22 113.72,-489.22"/>
<text text-anchor="start" x="124.72" y="-509.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">pipeline &#160;&#160;&#160;</text>
<text text-anchor="start" x="312.11" y="-510.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">recognition_pipeline</text>
<text text-anchor="start" x="596.63" y="-510.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-510.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-429.22 113.72,-489.22 646.72,-489.22 646.72,-429.22 113.72,-429.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-429.22 113.72,-489.22 646.72,-489.22 646.72,-429.22 113.72,-429.22"/>
<text text-anchor="start" x="124.72" y="-449.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_scan &#160;&#160;&#160;</text>
<text text-anchor="start" x="521.88" y="-450.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-369.22 113.72,-429.22 646.72,-429.22 646.72,-369.22 113.72,-369.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-369.22 113.72,-429.22 646.72,-429.22 646.72,-369.22 113.72,-369.22"/>
<text text-anchor="start" x="124.72" y="-389.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">service_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-390.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-309.22 113.72,-369.22 646.72,-369.22 646.72,-309.22 113.72,-309.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-309.22 113.72,-369.22 646.72,-369.22 646.72,-309.22 113.72,-309.22"/>
<text text-anchor="start" x="124.64" y="-329.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">failure_kind &#160;&#160;&#160;</text>
<text text-anchor="start" x="323.26" y="-330.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">quality_failure_kind</text>
<text text-anchor="start" x="597.09" y="-330.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.98" y="-330.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-249.22 113.72,-309.22 646.72,-309.22 646.72,-249.22 113.72,-249.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-249.22 113.72,-309.22 646.72,-309.22 646.72,-249.22 113.72,-249.22"/>
<text text-anchor="start" x="124.72" y="-269.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">error_code &#160;&#160;&#160;</text>
<text text-anchor="start" x="529.04" y="-270.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="113.72,-189.22 113.72,-249.22 646.72,-249.22 646.72,-189.22 113.72,-189.22"/>
<polygon fill="none" stroke="#29235c" points="113.72,-189.22 113.72,-249.22 646.72,-249.22 646.72,-189.22 113.72,-189.22"/>
<text text-anchor="start" x="124.72" y="-209.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">failed_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="424.17" y="-210.42" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<text text-anchor="start" x="596.63" y="-210.42" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="605.52" y="-210.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="112.22,-188.22 112.22,-1090.22 647.22,-1090.22 647.22,-188.22 112.22,-188.22"/>
</a>
</g>
</g>
<!-- quality_failure_fact&#45;&gt;recognition_pipeline -->
<g id="edge6" class="edge">
<title>quality_failure_fact:e&#45;&gt;recognition_pipeline:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M647.72,-519.22C1058.14,-519.22 598.22,-1369.22 1008.65,-1369.22"/>
</g>
<!-- quality_failure_fact&#45;&gt;quality_failure_kind -->
<g id="edge7" class="edge">
<title>quality_failure_fact:e&#45;&gt;quality_failure_kind:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M647.72,-339.22C810.35,-339.22 851.01,-339.22 1013.65,-339.22"/>
</g>
</g>
</svg>