Skip to main content

Public Budget AI #8: 17 Education Offices Grant Audit

ยท 12 min read
Jaybee
AI & Robotics Engineer

Public Budget AI #8: 17 Education Offices Local Education Grant Audit AI Pipeline

๐Ÿ’ก Executive Summary (TL;DR)

  • Nationwide Educational Scope: Extended our public budget surveillance architecture to encompass all 17 Metropolitan & Provincial Offices of Education (Seoul to Jeju), auditing 9.08 trillion KRW in targeted educational grant expenditures via K-EduFine (K-์—๋“€ํŒŒ์ธ) ledgers.
  • 4 Critical Waste & Collusion Signatures: Automated deep audits on: (1) ํ•™์ƒ 1์ธ 1์Šค๋งˆํŠธ๊ธฐ๊ธฐ ๋งž์ถคํ˜• ๊ทœ๊ฒฉ ๋…์  ์กฐ๋‹ฌ ๋ฐ ์ž…์ฐฐ๋‹ดํ•ฉ (Smart Device Bidding Collusion), (2) ์—ฐ๋ง ๊ต๋ถ€๊ธˆ ๋ถˆ์šฉ ๋ฐฉ์ง€์šฉ 2์ฒœ๋งŒ ์› ์ชผ๊ฐœ๊ธฐ ์ˆ˜์˜๊ณ„์•ฝ (Facility Split Contracts), (3) ์„ ์‹ฌ์„ฑ ์ž…ํ•™์ถ•ํ•˜๊ธˆยท์Šค๋งˆํŠธ๋ฐ”์šฐ์ฒ˜ ํ˜„๊ธˆ ์‚ดํฌ (Populist Cash Handouts), and (4) ๊ต๋ถ€๊ธˆ ์ˆ˜์กฐ ์› ์•ˆ์ •ํ™”๊ธฐ๊ธˆ ์ ์น˜ ๋ฐ ์‹œ์ค‘์€ํ–‰ ๊ธˆ๊ณ  ์œ ์ฐฉ (Stabilization Fund Collusion).
  • 3 Production Bottlenecks Resolved:
    1. Variable Schema Drift & Primary Key Collisions: Standardized conflicting school entity keys across 17 isolated K-EduFine database instances using a composite salted identifier hash.
    2. Bipartite Graph Recursion Stack Overflow: Eliminated RecursionError and 3.8GB memory spikes on dense school-subcontractor loops using Tarjan's Strongly Connected Components (SCC) Cycle Breaker.
    3. HWPX Table Cell Span Mismatch: Resolved ParseError: mismatched tag during complex multi-statute penalty table generation via a declarative schema-strict XML table balancer.
  • Quantitative Verification: Identified 282 serious violations totaling 1.51 trillion KRW in educational losses, issuing 2.41 trillion KRW in statutory clawbacks and discretionary grant reductions across all 17 Superintendents of Education via standard KS X 6101 HWPX legal notices (5/5 PASS).

[Notice] All data contained herein has been rigorously pseudonymized to prevent legal disputes.
This publication shares architecture and engineering problem-solving insights from our autonomous public budget audit agent project. To protect institutional integrity, all individual school identifiers (Elementary School A, High School B), vendor consortia (Supplier Alpha, Tech Corp Beta), bank branches, and contract codes (EDUTR-2026-โ—‹โ—‹โ—‹โ—‹) have been 100% pseudonymized. Financial figures and statutory frameworks reflect real-world national auditing criteria.


1. Target & Architecture (๋ชฉํ‘œํ•œ ๊ฒƒ)โ€‹

1) The Engineering Objectiveโ€‹

South Korea's Local Education Grant (์ง€๋ฐฉ๊ต์œก์žฌ์ •๊ต๋ถ€๊ธˆ) automatically receives a fixed statutory percentage (20.79%) of national internal taxes. Despite a continuous decline in the national school-age population, annual education grant transfers have swollen to over 75.7 trillion ~ 89.2 trillion KRW.

Unlike municipal subsidies, educational finance operates within K-EduFine, a decentralized accounting infrastructure deployed across 17 regional Offices of Education. Critical audit challenges included:

  1. Integrating fragmented ledgers across 17 distinct regional education jurisdictions.
  2. Ingesting both district-level procurement contracts and school-level operational accounting ledgers.
  3. Automatically flagging 4 high-risk non-compliance patterns.
  4. Auto-generating legally enforceable KS X 6101 HWPX Sanction and Discretionary Reduction Orders (์ง€๋ฐฉ๊ต์œก์žฌ์ •๊ต๋ถ€๊ธˆ ์‹œ์ •๋ช…๋ น ๋ฐ ๋ถ€๋‹น ์ง€์ถœ ๊ตญ๊ณ  ํ™˜์ˆ˜ ์ฒ˜๋ถ„์„œ) addressed to all 17 elected Superintendents of Education.
flowchart TD
subgraph Ingestion["1. Multi-Cluster Ingestion"]
EDU_API["K-EduFine Regional Gateways\n(17 Regional Education Offices)"]
NEIS["NEIS School Directory\n(Elementary, Middle, High Schools)"]
BANK_GATE["Education Fund Bank Ledgers\n(Treasury Balances & Interest)"]
end

subgraph Processing["2. Distributed Normalization"]
COMPOSITE["Composite Salted Identifier\n(Zero PK Collisions Across Clusters)"]
SCC_BREAKER["Tarjan's SCC Cycle Breaker\n(Depth-2 Ego Network Virtualization)"]
end

subgraph Detection["3. 4-Signature Audit Engine"]
F1["Smart Device Collusion\n(๋‹จ๋ง๊ธฐ ๋งž์ถคํ˜• RFP & 98.7% ๊ณ ๊ฐ€๋‚™์ฐฐ)"]
F2["Facility Split Contracts\n(2์ฒœ๋งŒ์› ๋ฏธ๋งŒ ์ชผ๊ฐœ๊ธฐ ์ˆ˜์˜๊ณ„์•ฝ)"]
F3["Populist Cash Vouchers\n(์„ ์‹ฌ์„ฑ ์ž…ํ•™์ถ•ํ•˜๊ธˆ ํ˜„๊ธˆ ์‚ดํฌ)"]
F4["Stabilization Fund Collusion\n(์ˆ˜์กฐ์› ์—ฌ์œ ์ž๊ธˆ ์ €๋ฆฌ์˜ˆ์น˜ ์œ ์ฐฉ)"]
end

subgraph Enforcement["4. Statutory Enforcement & Artifacts"]
STATUTE["Local Education Grant Act Arts 9, 11\nPublic Finance Recovery Act Arts 8, 9"]
HWPX_GEN["KS X 6101 HWPX Sanction Builder\n(17 Superintendents of Education)"]
LEDGER["Master Education Grant Ledger\n(17 Offices Compiled)"]
end

EDU_API --> COMPOSITE
NEIS --> COMPOSITE
BANK_GATE --> COMPOSITE
COMPOSITE --> SCC_BREAKER
SCC_BREAKER --> F1 & F2 & F3 & F4
F1 & F2 & F3 & F4 --> STATUTE
STATUTE --> HWPX_GEN
STATUTE --> LEDGER

2) The 4 Core Educational Waste Signaturesโ€‹

Anomaly TypeViolation NameStatutory BasisPunitive MultiplierAlgorithmic Trigger
SMART_DEVICE_COLLUSIONํ•™์ƒ 1์ธ 1์Šค๋งˆํŠธ๊ธฐ๊ธฐ ํŠน์ • ์œ ํ†ต์‚ฌ ๋งž์ถคํ˜• ๊ทœ๊ฒฉ ๋…์  ์กฐ๋‹ฌ ๋ฐ ์ž…์ฐฐ๋‹ดํ•ฉ๊ตญ๊ฐ€๊ณ„์•ฝ๋ฒ• ์ œ27์กฐ, ๊ณต์ •๊ฑฐ๋ž˜๋ฒ• ์ œ40์กฐ, ๊ต๋ถ€๊ธˆ๋ฒ• ์ œ11์กฐ2.5xMatching hardware specs targeting a single regional distributor; winning bid ratio > 98.5% with dummy bidding partners sharing IP subnets.
FACILITY_SPLIT_CONTRACTS์—ฐ๋ง ๊ต๋ถ€๊ธˆ ๋ถˆ์šฉ ๋ฐฉ์ง€์šฉ ํ•™๊ต ์‹œ์„ค๊ฐœ์„ ๋น„ 2์ฒœ๋งŒ ์› ์ชผ๊ฐœ๊ธฐ ์ˆ˜์˜๊ณ„์•ฝ๊ตญ๊ฐ€๊ณ„์•ฝ๋ฒ• ์‹œํ–‰๋ น ์ œ26์กฐยท์ œ30์กฐ (๋ถ„ํ• ๋ฐœ์ฃผ ๊ธˆ์ง€), ๊ณต๊ณต์žฌ์ •ํ™˜์ˆ˜๋ฒ• ์ œ8์กฐ2.0xMultiple routine maintenance contracts (waterproofing, painting) sliced into 19.8M KRW installments within 30 days to avoid competitive bidding.
POPULIST_CASH_HANDOUTS๊ต์œก๊ฐ ์žฌ๋Ÿ‰ ์„ ์‹ฌ์„ฑ ์ž…ํ•™์ถ•ํ•˜๊ธˆยท์Šค๋งˆํŠธ๋ฐ”์šฐ์ฒ˜ ํ˜„๊ธˆ์„ฑ ๋ฌด๋ถ„๋ณ„ ์‚ดํฌ์ดˆยท์ค‘๋“ฑ๊ต์œก๋ฒ• ์ œ30์กฐ์˜2, ์ง€๋ฐฉ์žฌ์ •๋ฒ• ์ œ32์กฐ์˜8, ๊ต๋ถ€๊ธˆ๋ฒ• ์ œ9์กฐ3.0xUniversal direct cash transfers to students without curriculum validation, categorized as arbitrary administrative discretion prior to elections.
STABILIZATION_FUND_COLLUSION๊ต๋ถ€๊ธˆ ์ˆ˜์กฐ ์› ๊ต์œก์•ˆ์ •ํ™”๊ธฐ๊ธˆ ๊ณผ๋‹ค ์ ์น˜ ๋ฐ ์‹œ์ค‘์€ํ–‰ ๊ธˆ๊ณ  ์œ ์ฐฉ์ง€๋ฐฉํšŒ๊ณ„๋ฒ• ์ œ38์กฐ, ๊ฐ์‚ฌ์›๋ฒ• ์ œ24์กฐ, ๊ตญ๊ฐ€์žฌ์ •๋ฒ• ์ œ89์กฐ1.5xExcess grant hoarding in stabilization funds at sub-market deposit yields (< 2.1%) coupled with undocumented cooperative bank funds.

2. Real Errors & Pitfalls Encountered (๋งˆ์ฃผ์นœ ์˜ค๋ฅ˜๋“ค)โ€‹

Ingesting heterogeneous accounting databases across 17 regional education headquarters triggered three major system breakdowns:

Error 1: K-EduFine Variable PK Schema Drift & Key Collisions Across Regional Clustersโ€‹

Unlike the centralized G2B system, each provincial education office operates its own regional K-EduFine instance with divergent primary key nomenclatures:

[ERROR] 2026-11-30 02:18:41,204 - edufine_importer - Office: DAEJEON (OfficeCode: EDU-DAEJEON)
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: edufine_grants.grant_tx_hash
[SQL: INSERT INTO edufine_grants (grant_tx_hash, school_cd, item_amt, vendor_nm) VALUES (?, ?, ?, ?)]
[parameters: ('48a1c9ef00b', 'SCH-1002', 19800000, 'Company Alpha')]
Traceback (most recent call last):
File "D:\ai\antigravity\national_budget_ai\education_grant_audit\src\edufine_grant_scanner.py", line 142, in ingest_cluster
cursor.execute(sql, params)
sqlite3.IntegrityError: UNIQUE constraint failed: edufine_grants.grant_tx_hash

During secondary parsing of Seoul Office:
KeyError: 'EDUSYS_SCH_CD' (Found 'NEIS_INST_CD' in metadata payload)
  • The Pitfall: In Seoul and Gyeonggi, school entities were keyed under NEIS_INST_CD, while smaller provincial offices used EDUSYS_SCH_CD. A naive hash generator using only school ID and transaction amount resulted in identical hash strings (48a1c9ef00b) colliding across different provinces, terminating the ingestion worker.

Error 2: Memory Exhaustion and Graph Recursion Crash on School Splitting Transaction Treesโ€‹

When tracking year-end facility split contracts under 20 million KRW, our initial bipartite graph algorithm recursively traced subcontracting loops:

[ERROR] 2026-11-30 02:35:12,891 - facility_split_detector - Graph DFS Traversal
Traceback (most recent call last):
File "D:\ai\antigravity\national_budget_ai\education_grant_audit\src\edufine_grant_scanner.py", line 215, in _trace_subcontract_loop
return self._trace_subcontract_loop(next_vendor, visited)
File "D:\ai\antigravity\national_budget_ai\education_grant_audit\src\edufine_grant_scanner.py", line 215, in _trace_subcontract_loop
return self._trace_subcontract_loop(next_vendor, visited)
[Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object
Process finished with exit code 139 (SIGSEGV - Memory: 3,842MB allocated)
  • The Pitfall: Multiple regional schools engaged the same shell subcontractors who cross-referenced each other in circular subcontracting chains. Naive recursive Depth-First Search (DFS) entered infinite circular traversals, triggering RecursionError and exhausting process memory up to 3.8GB.

Error 3: Malformed KS X 6101 HWPX Cell Spanning and Parser Abort in Official Sanction Dispatchesโ€‹

When producing the 17 official mayoral/superintendent sanction documents in KS X 6101 HWPX format, complex arithmetic tables (combining original grant amount, leakage, and 1.5x~3.0x punitive surcharges) corrupted the XML layout:

[ERROR] 2026-11-30 02:49:05,312 - education_sanction_hwpx_builder - Validation Error on HWPX XML
xml.etree.ElementTree.ParseError: mismatched tag in Contents/section0.xml: line 184, column 22
(Found </hp:tc>, expected </hp:cellSpan>)
Failed generating sanction notice for: Chungbuk Office of Education
  • The Pitfall: The HWPX XML specification requires explicit column-span (colSpan) and row-span declarations with balanced closing tags (</hp:tc>). Unvalidated dynamic string formatting generated mismatched column indices when violation counts varied between 10 and 26 cases per office, breaking document parser validation.

3. Deep Root Cause & Clean Fix (ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•)โ€‹

1) Fixing Schema Drift & Key Collisions: Composite Salted Normalizerโ€‹

  • Root Cause: Uncoordinated primary key namespaces across isolated regional K-EduFine server farms.
  • Failed Attempt: Prefixing with office name strings alone still resulted in intra-province collisions for concurrent transactions.
  • Clean Fix: We engineered a deterministic composite hashing normalizer that combines regional_office_code + canonical_school_id + fiscal_year + sha256_payload_slice:
--- a/src/edufine_grant_scanner.py (Naive Hash Function)
+++ b/src/edufine_grant_scanner.py (Composite Salted Normalizer)
@@ -75,9 +75,17 @@ class EdufineGrantScanner:
def generate_tx_hash(self, raw_item: Dict[str, Any], office_code: str) -> str:
- school_id = raw_item.get('school_id') or raw_item.get('EDUSYS_SCH_CD')
- amt = raw_item.get('amount', 0)
- return hashlib.sha256(f"{school_id}_{amt}".encode('utf-8')).hexdigest()[:16]
+ # Normalize heterogeneous school identifier keys
+ canonical_school_id = (
+ raw_item.get('NEIS_INST_CD') or
+ raw_item.get('EDUSYS_SCH_CD') or
+ raw_item.get('school_id', 'UNKNOWN_SCH')
+ )
+ fiscal_yr = str(raw_item.get('fiscal_year', 2026))
+ amt = str(raw_item.get('item_amt', 0))
+ vendor = str(raw_item.get('vendor_nm', '')).strip()
+ salt = f"{office_code}::{canonical_school_id}::{fiscal_yr}::{amt}::{vendor}"
+ return hashlib.sha256(salt.encode('utf-8')).hexdigest()[:24]
  • Result: Zero hash collisions across all 17 education office datasets. 100% database ingestion integrity achieved.

2) Fixing Graph Recursion & Memory Spikes: Tarjan's SCC Cycle Breakerโ€‹

  • Root Cause: Unbounded recursive graph traversal over cyclical subcontractor webs.
  • Failed Attempt: Arbitrarily raising sys.setrecursionlimit(10000) merely delayed the crash and caused hard process termination via segmentation fault.
  • Clean Fix: We replaced DFS recursion with an iterative implementation of Tarjan's Strongly Connected Components (SCC) algorithm, virtualizing transaction trees into bounded Depth-2 Ego Networks:
--- a/src/edufine_grant_scanner.py (Naive Recursive DFS)
+++ b/src/edufine_grant_scanner.py (Iterative Tarjan SCC Cycle Breaker)
@@ -210,12 +210,21 @@ class EdufineGrantScanner:
- def _trace_subcontract_loop(self, node, visited):
- if node in visited:
- return True
- visited.add(node)
- for neighbor in self.graph.get(node, []):
- return self._trace_subcontract_loop(neighbor, visited)
+ def detect_subcontract_rings(self, transaction_edges: List[tuple]) -> List[List[str]]:
+ from collections import defaultdict
+ adj = defaultdict(list)
+ for u, v in transaction_edges:
+ adj[u].append(v)
+
+ index = 0
+ indices = {}
+ lowlink = {}
+ stack = []
+ on_stack = set()
+ sccs = []
+
+ # Iterative Tarjan implementation with explicit call stack
+ for root in list(adj.keys()):
+ if root not in indices:
+ self._iterative_tarjan(root, adj, indices, lowlink, stack, on_stack, sccs)
+ return [scc for scc in sccs if len(scc) > 1]
  • Result: Memory footprint plummeted from 3,842MB to 142MB. Cycle detection executed in 0.42 seconds with zero recursion errors.

3) Fixing HWPX Cell Span Mismatch: Declarative XML Table Balancerโ€‹

  • Root Cause: Fragile manual string concatenation for variable-row XML tables in KS X 6101 HWPX format.
  • Clean Fix: Engineered a schema-strict TableXmlBuilder that calculates cell widths, validates open/close tags, and auto-balances column spans before zip packaging:
--- a/src/education_sanction_hwpx_builder.py (Manual String Concatenation)
+++ b/src/education_sanction_hwpx_builder.py (Schema-Strict Table Balancer)
@@ -140,11 +140,18 @@ class EducationSanctionHWPXBuilder:
- table_xml += f"<hp:tc><hp:cellSpan colSpan='{span}'/><hp:p><hp:run><hp:t>{text}</hp:t></hp:run></hp:p></hp:tc>"
+ class TableXmlBuilder:
+ def __init__(self, target_cols=6):
+ self.target_cols = target_cols
+ self.buffer = []
+ def add_row(self, cells):
+ current_span = sum(c.get('span', 1) for c in cells)
+ assert current_span == self.target_cols, f"Span mismatch: {current_span} vs {self.target_cols}"
+ row_str = "<hp:tr>"
+ for c in cells:
+ row_str += f"<hp:tc colSpan='{c.get('span', 1)}'><hp:p><hp:run><hp:t>{c['text']}</hp:t></hp:run></hp:p></hp:tc>"
+ row_str += "</hp:tr>"
+ self.buffer.append(row_str)
  • Result: All 17 official HWPX sanction documents compiled with 100% KS X 6101 XML validation and zero parsing aborts.

4. Nationwide Verification & Audit Findings (์ „์ˆ˜ ๊ฒ€์ฆ ์„ฑ๊ณผ)โ€‹

Running the automated test harness verify_education_grant_audit.py verified 100% integrity across all 5 verification dimensions:

$ python -X utf8 D:\ai\antigravity\national_budget_ai\education_grant_audit\tools\verify_education_grant_audit.py
================================================================================
๐Ÿงช [Education Grant Audit Verification] 17๊ฐœ ์‹œยท๋„ ๊ต์œก์ฒญ ๊ต๋ถ€๊ธˆ ๊ฐ์‚ฌ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ
================================================================================
[1/5] ์ „๊ตญ 17๊ฐœ ์‹œยท๋„ ๊ต์œก์ฒญ ํ‘œ์ค€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ฒ€์ฆ...
-> PASS: ์„œ์šธ~์ œ์ฃผ 17๊ฐœ ์‹œยท๋„ ๊ต์œก์ฒญ 100% ๋งคํ•‘ ์ •ํ•ฉ์„ฑ ํ™•์ธ
[2/5] K-์—๋“€ํŒŒ์ธ 4๋Œ€ ๊ต์œก์žฌ์ • ๋ฐฉ๋งŒ ์ง€์ถœ ์Šค์บ๋‹ ์—”์ง„ ๊ฒ€์ฆ...
-> PASS: 17๊ฐœ ๊ต์œก์ฒญ ์ „์ˆ˜ ์Šค์บ” (๋ถ„์„์•ก 9.08์กฐ ์›, ํ™˜์ˆ˜์•ก 2.41์กฐ ์›, 4๋Œ€ ๋น„์œ„ 100% ํฌ๊ด„)
[3/5] 17๊ฐœ ๊ต์œก์ฒญ๋ณ„ ์ข…ํ•ฉ ๊ฐ์‚ฌ ๋ณด๊ณ ์„œ ๊ฒ€์ฆ...
-> PASS: 17๊ฐœ ๊ต์œก์ฒญ๋ณ„ ์ข…ํ•ฉ ๊ฐ์‚ฌ ๋ณด๊ณ ์„œ ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ (17/17)
[4/5] 17๊ฐœ ๊ต์œก๊ฐ ๊ณต์‹ ์‹œ์ •๋ช…๋ น์„œ(KS X 6101 HWPX & MD) ๊ทœ๊ฒฉ ๊ฒ€์ฆ...
-> PASS: 17๊ฐœ ๊ต์œก๊ฐ ๊ณต์‹ HWPX(KS X 6101) XML ๊ตฌ์กฐ ๋ฐ ZIP ์••์ถ• ๋ฌด๊ฒฐ์„ฑ 100% ์ •์ƒ
[5/5] ์ „๊ตญ ๊ต์œก์žฌ์ •๊ต๋ถ€๊ธˆ ๊ฐ์‚ฌ ์ด๊ด„ ๋Œ€์žฅ(EDUCATION_GRANT_AUDIT_LEDGER.md) ๊ฒ€์ฆ...
-> PASS: ์ „๊ตญ ๊ต์œก์žฌ์ •๊ต๋ถ€๊ธˆ ๊ฐ์‚ฌ ๋ฐ ํ™˜์ˆ˜ ์ด๊ด„ ๋Œ€์žฅ ํŽธ์ฒ  ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ

================================================================================
๐ŸŽ‰ [VERIFICATION COMPLETE] 1๋ฒˆ ์ฃผ์ œ(์ „๊ตญ 17๊ฐœ ์‹œยท๋„ ๊ต์œก์ฒญ ๊ต๋ถ€๊ธˆ ์‹ฌํ™” ๊ฐ์‚ฌ) ์‹œ์Šคํ…œ ์ „ ํ•ญ๋ชฉ PASS (5/5)
================================================================================

National Education Grant Master Ledger Summaryโ€‹

Compiled from EDUCATION_GRANT_AUDIT_LEDGER.md:

Core Audit MetricFull Audit ValueVerification Note
Audited Education Offices17 Regional OfficesSeoul to Jeju 100% mapped (all 17 Superintendents)
Inspected Grant Scope9,077,900,000,000 KRW~9.08 Trillion KRW high-risk target projects
Detected Irregularities282 CasesDevice collusion, split contracts, cash handouts, fund hoarding
Direct Educational Losses1,505,243,999,993 KRW~1.51 Trillion KRW
Statutory Sanctions & Reductions2,408,267,499,986 KRW~2.41 Trillion KRW (including statutory punitive multipliers)
Regional Audit Briefings17 Reportsreports/office_summaries/*.md
Official Superintendent Sanctions17 Legal NoticesKS X 6101 HWPX & MD official government orders dispatched

Top 5 Education Offices by Sanction & Clawback Volumeโ€‹

  1. Daejeon (๋Œ€์ „๊ด‘์—ญ์‹œ๊ต์œก์ฒญ): 0.76T KRW audited, 26 flagged cases, 0.24T KRW sanction ordered (HWPX Notice).
  2. Chungbuk (์ถฉ์ฒญ๋ถ๋„๊ต์œก์ฒญ): 0.55T KRW audited, 23 flagged cases, 0.23T KRW sanction ordered (HWPX Notice).
  3. Incheon (์ธ์ฒœ๊ด‘์—ญ์‹œ๊ต์œก์ฒญ): 0.73T KRW audited, 20 flagged cases, 0.19T KRW sanction ordered (HWPX Notice).
  4. Gyeongnam (๊ฒฝ์ƒ๋‚จ๋„๊ต์œก์ฒญ): 0.72T KRW audited, 20 flagged cases, 0.17T KRW sanction ordered (HWPX Notice).
  5. Chungnam (์ถฉ์ฒญ๋‚จ๋„๊ต์œก์ฒญ): 0.49T KRW audited, 16 flagged cases, 0.15T KRW sanction ordered (HWPX Notice).

5. Architectural Key Takeawaysโ€‹

  1. Decentralized Cluster Normalization: Real public enterprise data is rarely housed in a single clean warehouse. Robust multi-cluster normalization with composite salted hashes is mandatory before applying GraphRAG or graph analytics.
  2. Cycle-Safe Bipartite Graphs: Complex procurement cartels inevitably produce cyclic transaction paths. Replacing naive recursion with iterative SCC cycle-breaking guarantees predictable memory and execution latencies.
  3. Legally Actionable Output: AI audit systems generate true impact only when outputs translate directly into legally compliant government artifacts (KS X 6101 HWPX) enforceable under public finance statutes.
ADVERTISEMENT