陳 丹,李石君
(武漢大學 計算機學院,湖北 武漢430072)
利用計算機技術進行稅收風險[1]評估,不僅能夠提高工作效率,而且可以降低稅收征管成本。但是,目前我國的稅收信息化管理仍存在很多問題[2,3],不能有效滿足稅收風險評估的需要。文獻 [4]中設計的稅收分析系統雖然在一定時期內能夠有效堵塞稅收征管漏洞,但是沒有考慮到稅收政策的改變帶來的影響,其設計的風險指標不能實現動態更新和添加,這將導致不能及時進行稅收風險評估。文獻 [5]中通過引入ILog JRules業務規則引擎和Infor-Flow 工作流,將評估方法邏輯轉化為業務規則,在一定程度上解決了稅收政策不斷變化的問題,但是其設計的業務規則過于繁瑣。為滿足稅收政策不斷變化以及系統使用的靈活性和簡便性的需求,本文提出一種基于四層結構的風險評估模型,并用巴克斯-諾爾范式定義其語法規則,使其業務規則更簡潔和精確,更易于被不同的用戶接受。根據分層的思想建立的稅收風險評估模型去掉了緊耦合的枷鎖,整個體系都是松耦合的,在實際應用中也取得了較好的效果。
為了便于進行風險評估和滿足業務的需求,本文提出一種基于四層結構的風險評估模型。該風險評估模型主要分為4級:因子、指標、模型和風險自動發現引擎。在風險評估模型的基礎上,建立了用巴克斯-諾爾范式形式化定義的因子表達式、指標取數規則和指標預警區間語法規則的語言。其中,巴克斯-諾爾范式 (Backus-Naur form)是由John Backus初次引入的一種形式化符號來描述給定語言的語法[6,7]。它是一種表示上下文無關語法的語言,用于形式化定義語言語法的數學方法[8]。
風險評估模型的層次結構如圖1所示。

圖1 風險評估模型的層次結構
因子是風險評估模型的第1 級,是整個模型的基礎;指標是風險評估模型的第2級,由因子組成,指標確定了風險的評判標準,決定了能識別出的風險數量,以及風險識別的準確率;模型是風險評估模型的第3級,由指標組成,通過計算模型可以識別出存在的風險信息;風險自動發現引擎是風險評估模型的第4級,通過計算建立的模型,可以實現風險自動發現,并展示風險信息,以利于及時進行風險處理。
1.1.1 因子
首先給出因子的定義。
定義1 因子是與數據庫直接關聯的元素。以F 表示所有的因子集合,f∈F 表示某個具體的因子。
從圖1可知,因子是風險評估模型的最小單位,是風險評估模型的第1級。每一個因子都有一個唯一的名稱和表達式,下面給出因子表達式的定義。
定義2 因子與數據庫關聯的規則,稱為因子表達式。以f.E 表示某因子f 的表達式,其中f∈F。
因子表達式具有多種形式,我們將其歸納為以下兩種:①數據庫中一個表的某個字段或對某個字段的求和、求平均、求總數等;②多個字段 (或字段的求和、求平均、求總數等)的相加或相減,并且這些字段可能在不同的表中。基于因子表達式的特點,我們用BNF范式將其語法規則形式化定義為:


其中,factor-expr是語法的起始符,代表因子表達式。factor-expr和factor-expr’的產生式規則組合表示一則加減法運算公式,term 非終結符代表組成運算公式的項,而factor-expr’是為消除左遞歸而設置的非終結符。columnexpr非終結符代表字段的表達式,由表名table和字段名column組成,是term 的一種形式,其中table和column都有其各自的產生式規則。function是非終結符,代表SQL函數,包括求和、求平均、求總數、求最大值和求最小值。
為了能更好地理解因子,下面給出因子的一個例子。
例1:“年度營業收入”因子。“年度營業收入”因子取值于 《利潤表》中的營業收入,根據BNF范式形式化定義的語法規則,其因子表達式為:SUM (NSPG_CW _LRBA.d1),其中NSPG_CW _LRBA 代表數據庫中的利潤表,d1代表利潤表中的營業收入字段,SUM 是對一年的營業收入求和。
1.1.2 指標
指標,是在因子的基礎上建立的,是風險評估模型的第2級。參考文獻 [9,10],我們將指標定義為:
定義3 指標是反應稅收風險狀況,進行稅收風險評估的規則或標準。以I 表示所有的指標集合,i∈I 表示某個具體的指標。
指標有2個主要的屬性:取數規則和預警區間,下面給出這些屬性的定義。
定義4 我們把為進行風險評估而設定的公式或規則,稱為指標的取數規則。以i.R 表示某個指標的取數規則,其中i∈I。
定義5 指標的預警區間是決定風險評估對象是否存在風險的依據。以i.W 表示某個指標的預警區間,其中i∈I。
根據業務需求,指標的取數規則主要有兩種形式:①由因子組成的一個或多個四則運算公式;②由因子組成的一個或多個比較運算公式。我們用BNF范式形式化定義指標取數規則的語法規則為:


其中,index-rule非終結符是起始符號,代表指標的取數規則,rule代表一個四則運算公式或者比較運算公式,在index-rule的產生式中,符號 “;”用來分隔相鄰的公式。expression非終結符的產生式規則表示四則運算公式的語法規則,其中expression’和term’是為消除左遞歸而設置的非終結符,factor’非終結符代表組成運算公式的因子,而factor’產生式規則中的factor非終結符代表風險評估模型中的因子。digit非終結符代表數字 (整數或小數),并有其自己的語法規則。sign是非終結符,代表算術比較算子。
由定義5可知,指標的預警區間決定風險評估對象是否有風險。其主要有兩種形式:①含有字母X 的比較公式,其中X 表示根據取數規則計算出的結果;②含有因子的比較公式。同樣,我們也用BNF范式定義了預警區間的語法規則,如下:

其中,warn-interval非終結符是起始符,代表預警區間表達式,X-expr表示含有字母 “X”的比較公式,F-expr代表含有因子的比較公式。X-expr’的產生式規則定義了含有字母X 的比較公式的各種形式,F-expr產生式中的符號 “&”和 “|”分別表示 “并”和 “或”的意思。expression和sign非終結符的產生式與指標取數規則的語法規則中的一致。另外,sign1非終結符表示大于或者大于等于算術比較算子,sign2非終結符表示小于或者小于等于算術比較算子。
為了更好的闡述指標,我們給出指標的2個例子。
例2:“營業稅計稅依據與收入、預收配比”指標。企業繳納營業稅依據與當期 (銷售)收入、預收賬款凈增加額合計數基本一致,否則存在未按規定申報營業稅的問題。當期 (銷售)收入、預收賬款凈增加額合計數通過用年度營業收入加上預收賬款年末數與預收賬款年初數之差,再依次減去建安分包金額合計和增值稅計稅依據銷售額計算得出,所以營業稅計稅依據與收入、預收配比通過企業年度營業稅計稅金額除以當期 (銷售)收入、預收賬款凈增加額合計數計算得出。當營業稅計稅依據與收入、預收配比不為1時為非正常,比例在0.8 (含)至1的積3分,比例低于0.8的積6分,通過專家打分的方式,該指標被評為二級指標。對這段文字進行分析后,可以得出該指標的取數規則為:企業年度營業稅計稅金額/ (年度營業收入+(預收賬款年末數-預收賬款年初數)-建安分包金額合計-增值稅計稅依據銷售額),以及預警區間為:0.8<X<1;X<0.8。
例2是指標取數規則和預警區間第一種形式的一個示例,下面通過例3來闡述指標取數規則和預警區間的第二種形式。
例3:“住房公積金未按標準扣除風險”指標。比對納稅人個人所得稅明細申報中收入總額與住房基金扣除額,如果超過規定標準和限額,存在超標準扣除住房公積金的風險。住房公積金扣除標準需小于等于收入總額乘以12%,以及住房公積金扣除限額需小于等于1370元,如果住房公積金扣除標準大于收入總額乘以12%,或者住房公積金扣除限額大于1370元,則存在住房公積金超標扣除風險。通過分析和提取關鍵信息,并參照定義的BNF語法規則,得出其取數規則為:住房公積金扣除標準≤收入總額×12%;住房公積金扣除限額≤1370。以及預警區間為:住房公積金扣除標準>收入總額×12% |住房公積金扣除限額>1370。
1.1.3 模型
定義6 我們將模型定義為三元組M= (I,P,t),其中I、P 分別為指標和納稅人信息的非空可數有限集,t表示評估時間。
模型是在指標的基礎上建立的。通過從指標集中選擇一些指標,然后將這些指標應用于一批納稅人,確定評估時間,可以建立一個模型。下面,給出模型的一個例子。
例4:模型示例。指標集合I= {營業稅計稅依據與收入、預收配比,住房公積金未按標準扣除風險},納稅人信息集合P= {納稅人1,納稅人2,納稅人3,納稅人4},評估時間t=2013年。該模型用來評估納稅人1、納稅人2、納稅人3、納稅人4和納稅人5在2013年是否存在營業稅計稅依據與收入、預收配比風險和住房公積金未按標準扣除風險。
1.1.4 風險自動識別引擎
風險評估模型的第4級是風險自動識別引擎,在依次建立了因子庫、指標庫和模型庫后,通過計算模型,可以實現風險自動識別,并將識別出的風險信息以列表或圖表的形式展示,以便進一步進行風險處理。
根據風險評估模型的特點,以及BNF范式定義的語法規則,本文提出一種高效的風險自動發現算法RAD (risk automatically discover)。
算法1:風險自動發現算法RAD(I,P,t)
描述:本算法是通過計算一個指標集合為I,納稅人信息集合為P 和評估時間為t 的模型,判斷被評估納稅人中是否存在稅收風險,并返回風險信息集合R。
輸入:指標集合I,納稅人信息集合P 和評估時間t。
輸出:風險信息集合R。
1.R=;符號集合S= {>,<,≥,≤,=,≠};
2.While(I≠和P≠)Do
3. For I中的每一個指標i Do
4. For P 中的每一個納稅人p Do
5. If i.R 中不包含集合S 中的字符THEN
result1=CI(i.R,p,t);//調用指標計算算法CI(Calculate Index)
6. result2 =WI(i.W,i,result1,p,t)//調用預警區間計算算法WI(Warn Interval)
7. If result2≠THENresult2加入R 中;
例4.MARY:What is a lie!Now you're talking in riddles like Jamie. Edmund! Don't! There's your father coming up the steps now. I must tell Bridget.
8. End For
9. End For
10.End While
11.Return R;
算法RAD 主要由初始化、模型計算和結果返回3個部分構成。在模型計算部分,調用了子算法CI(i.R,p,t)和WI(i.W,i,result1,p,t)。CI算法主要是計算指標的取數規則i.R,該算法要求i.R 的形式必須為四則運算公式,如例2中所示。對于例3中的形式,只需調用子算法WI,即可判斷被評估對象是否存在稅收風險。
算法2:指標計算算法CI(i.R,p,t)
描述:本算法主要計算指標的取數規則i.R,并返回計算結果result1。
輸出:指標的計算結果result1。
1.result1 =;
2.解析出i.R 中的所有因子,得到因子集合F;
3.For F 中的每一個因子f Do
4. factorValue=CF(f,p,t);//調用因子計算算法CF (CalculateFactor)
5. i.R.replace(f,factorValue);//用factorValue替換i.R 中的因子f
6.End For
7.計算i.R,將計算結果賦值給result1;
8.Return result1;
子算法CI的關鍵思想在于,需要求出組成指標取數規則的每一個因子的值,然后用因子的值來替換因子,當所有的因子都被替換后,就可以按照四則運算法則進行計算,得出最后結果。
算法3:因子計算算法CF(f,p,t)
描述:本算法主要根據納稅人信息p 和評估時間t 計算因子表達式f.E,并返回計算結果factorValue。
輸入:因子f,納稅人p,評估時間t。
輸出:因子計算結果factorValue。
1.factorValue=;
2.解析f.E,計算f.E 中的SUM、AVG、COUNT、MAX、MIN 函數;
3.解析出f.E 的所有字段,得到字段集合C
4.For C 中的每一個字段c Do
5. 根據p 和t,取得字段值columnValue;
6. f.E.replace(c,columnValue);
7.End For
8.計算f.E,將計算結果賦值給factorValue;
9.If factorValue<0Then
factorValue =“(”+factorValue +“)”;
10.Return factorValue;
因子計算算法CF的思想與CI算法相似,但比CI算法復雜。因子表達式中可能含有SUM、AVG 等函數,我們需要先解析出SUM、AVG 等函數,求出SUM、AVG 等函數的值。步驟4至步驟7為求解因子表達式中字段的值,步驟8是根據四則運算法則計算f.E,得到因子值factor-Value。如果最后計算出的因子值為負數,我們需要加上括號,以利于CI算法的調用。
算法4:預警區間算法WI(i.W,i,result1,p,t)
描述:本算法通過比較指標取數規則計算結果result1與設定的預警值,或通過計算和分析區間范圍,得出風險評估結果。
輸入:指標預警區間i.W,指標信息i,取數規則計算結果result1,納稅人信息p 和評估時間t。
輸出:風險評估結果riskResult。
1.riskResult=;風險標識字段flag=false;
2.If i.W 中包含字符X Then
比較result1與i.W,如果result1在區間范圍內,則flag=true;
3.Else flag=WI1(i.W,p,t)
4.If flag==true then
將風險信息存入riskResult中;
5.Return riskResult;
指標的預警區間主要分為兩種形式:①含X 的比較公式,如例2所示;②含因子 (不含X)的比較公式,如例3所示。對于第1種形式,我們需要判斷指標取數規則計算結果result1是否在設定的區間范圍內,如果是,則表明存在風險,需記錄風險信息。對于第2種形式,需調用預警區間子算法WI1進行計算和比較。
算法5:預警區間子算法WI1 (i.W,p,t)
描述:本算法主要處理形如 “A>B*10%|C>1730”形式的預警區間,通過計算和比較,并進行邏輯與和邏輯或操作,得出最后結果 (true或false)。
輸入:指標的預警區間i.W,納稅人信息p 和評估時間t。
輸出:風險標識字段flag。
1.flag=false;計算結果集合resultList=;符號集合signList=;
2.將i.W 根據字符 “&”和 “|”分割,得到字符串數組splitStrs。
3.For splitStrs中的每個字符串splitStrsiDo
4. If splitStrsi不是字符 “&”或 “|”then
計算splitStrsi,將計算結果 (true或false)添加到splitStrsi中;
5. Else將字符 “&”或 “|”加入到signList中;
6.End For
7.組合resultList 和signList,形成一個新的字符串
resultString;
8.If resultString 中不包含字符 “&”和 “|”Then
flag =resultString;
9.Else根據邏輯運算規則,計算resultString,將計算結果存于flag中;
10.Return flag;
在風險評估系統的實現過程中,我們使用了當前最為流行的面向對象的程序設計語言之一——Java,使用的開發工具為MyEclipse 8.5,應用服務器為BEA 的WebLogic 10,數據庫管理系統為Oracle 11g。目前,該模型已投入到某地稅局的實際工作中。
在項目的實際應用中,指標主要有11大類,包括營業稅風險指標、城市維護建設稅風險指標、教育費附加風險指標、個人所得稅風險指標、土地增值稅風險指標、土地使用稅風險指標、房產稅風險指標、印花稅風險指標、企業所得稅風險指標、建安業風險指標和電信業稅收風險指標,我們用字母A-K 依次表示這11類指標。我們將這11類指標分別應用于1000 名納稅人,表1 顯示了風險評估結果。

表1 風險評估結果
表1中,實際風險數是通過實地考察和稅務核查確定的風險數量;識別風險數是風險自動發現引擎識別出的風險數量;未識別風險數是風險自動發現引擎未能識別出而實際上是風險的數量;錯誤識別風險數是風險自動發現引擎將不是風險的信息識別為風險信息的數量。從表1可知,該風險自動發現引擎具有較高的風險識別準確率,其準確率幾乎達到100%
指標的預警區間決定了能識別出的風險數量,當擴大或縮小指標的預警區間時,識別出的風險數量都有著明顯的變化。表2和表3分別顯示了擴大或縮小指標的預警區間后風險評估結果。

表2 擴大預警區間后風險評估結果

表3 縮小預警區間后風險評估結果
通過對比表1和表2中的數據可知,擴大指標的預警區間后,識別出的風險數量有了明顯的增加,但是有些識別出的風險,并不是實際存在的風險,提高了風險的誤判率。同樣,通過對比表1和表3中的數據可知,縮小指標的預警區間后,識別出的風險數量有著明顯的減少,對一些實際存在的風險,并未能識別出來,降低了風險評估的正確率。因此,指標預警區間設置的合理性,直接影響風險評估結果的正確性。
本文在傳統稅收風險評估系統的基礎上,提出了一種基于四層結構的稅收風險評估模型,該風險評估模型包括因子、指標、模型和風險自動發現引擎4 層,其中因子組成指標,指標組成模型,通過計算模型實現風險的自動發現。文中分別給出了因子、指標、模型的定義,并用BNF范式表示了因子取數規則、指標取數規則和預警區間的語法規則。應用該語法規則提出了一種高效的風險自動發現算法,并在實際項目中驗證了算法的正確性,以及模型的可行性和靈活性。目前,本模型已編制成軟件,投入到實際項目當中。下一步工作是優化指標預警區間設置的規則,從而提高風險評估的正確率。
[1]LI Hanwen.Discussion on the definition and hazards of tax risk[J].Taxation Research,2008 (8):66-68 (in Chinese).[李漢文.芻議稅收風險的定義及危害 [J].稅務研究,2008(8):66-68.]
[2]ZENG Changsheng.Analysis of the effective implementation of tax risk management from the perspective of information management optimization [J].Taxation Research,2011 (1):83-86 (in Chinese).[曾長勝.從信息管理優化角度探析稅收風險管理的有效實施 [J].稅務研究,2011 (1):83-86.]
[3]ZHANG Xin,AN Tifu.Rethink on the present situation of tax informatization in China and international reference [J].Tax and Economic Research,2012 (5):1-13 (in Chinese). [張新,安體富.對我國稅收信息化現狀的反思與國際借鑒 [J].稅收經濟研究,2012 (5):1-13.]
[4]WANG Qi.Design and implementation of taxation analysis system [D].Shandong:Shandong University,2010:1-50 (in Chinese).[王祺.稅收分析系統的設計與實現 [D].山東:山東大學,2010:1-50.]
[5]GAO Ping,HU Heng,SONG Xingbin,et al.Research application of business rules and workflow management in tax evaluation [J].Computer Engineering and Design,2010,31 (9):2135-2139 (in Chinese).[高萍,胡恒,宋興彬,等.規則和流程管理在納稅評估系統中的應用研究 [J].計算機工程與設計,2010,31 (9):2135-2139.]
[6]JIANG Ye,GUAN Renchu,LIANG Yanchun.BNF syntax unifying Dmoz and Yahoo syntax and its implementation [J].Computer Engineering and Design,2009,30 (19):4520-4523(in Chinese).[姜冶,管仁初,梁艷春.整合Dmoz和Yahoo標簽的BNF文法及其實現 [J].計算機工程與設計,2009,30 (19):4520-4523.]
[7]Alkin Nasuf,Atul Bhaskar,Andy J Keane.Grammatical evolution of shape and its application to structural shape optimisation [J].Structural and Multidisciplinary Optimization,2013,48 (1):187-199.
[8]YUAN Limiao,BAO Guangyu,ZHU Li.Method for formalizing battle management language grammar based on BNF [J].Journal of Military Communications Technology,2010,31(4):35-39 (in Chinese).[袁黎苗,鮑廣宇,朱立.一種基于BNF的作戰管理語言語法表示 [J].軍事通信技術,2010,31(4):35-39.][9]ZHAO Lianwei.Think to construct China’s tax risk identification method system [J].Taxation Research,2012 (7):77-80 (in Chinese).[趙連偉.構建我國稅收風險識別方法體系的思考 [J].稅務研究,2012 (7):77-80.]
[10]HONG lianpu.Discussion on the construction of tax risk management mechanism [J].International Taxation in China,2011 (3):66-70 (in Chinese).[洪連埔.淺談稅收風險管理機制的構建 [J].涉外稅務,2011 (3):66-70.]