城投公司成功转型升级的钥匙:融投资模式重构
发布日期:2022-04-26
阅读量:1378

作者 席加省

编辑 | 木木白

首发 | 国企视点


在严监管政策下,城投公司以政府信用、财政兜底为核心的传统融投资模式已经走到了尽头。传统融投资模式下,城投公司跟地方政府政企不分,承担替政府融资的职能,地方政府对城投公司债务提供隐性担保,为地方政府带来了巨大的潜在债务风险,从而引起了广泛的关注。

更重要的是,在严监管政策下,金融机构对城投公司的融资业务越来越谨慎,城投债的要求也越来越高,城投公司债务负担过重,资本性投入不足,资产负债率增长较快,并且项目经营缺少现金收入,继续增加债务难度很大,很多城投公司触碰到融资天花板,陷入到借新还旧的循环中,无力支撑越来越大的新项目融资需求


但地方政府对城投公司的期望很高,绝不会容忍失去融资能力的城投公司存在。因此,很多地方政府推动城投公司进行平台转型、市场化发展,以提高资产规模、改善资产结构,降低资产负债率,重塑业务布局,增强经营效益、期望打破融资天花板。


这种转型也会陷入存量债务陷阱中。很多城投公司转型陷入历史债务包袱之中,总是想办法处理存量债务。但实际上,没有融资能力、没有经营能力,简单说没有钱,存量债务不可能解决。因此,化解和偿还存量债务必须要本着“增量调节存量”、“以时间换规模”的原则,逐步消化。


显而易见,融投资才是关键。平台公司转型升级,要以市场化方式重塑政企关系,要做好战略规划、重组整合、四资(资源、资产、资本、资金)注入、现代企业制度建设。但这一切的核心和出发点,都是围绕着城投公司的融投资模式展开的。简单说,城投公司市场化转型升级的出发点和立足点都应该是将传统的以政府信用为基础的融投资模式转型为市场化的以企业信用为基础的融投资模式。

01

城投公司的三大战略责任

城投公司体现谁的意志,应该维护谁的根本利益?这是一个根本性问题,也是所有城投公司都必须要思考的。


显然,从法律上讲,城投公司的股东是地方政府(或地方政府授权的国资监管机构)。因此,城投公司必须要维护出资人的利益,地方政府按照《公司法》及相关法律法规依法行使股东权利、维护股东利益。而从发展上来说,城投公司生存发展所需要的资源、资本等都来自于地方政府。


从上面的分析就可以清晰地看出,城投公司的发展离不开地方政府,虽然城投公司有客户、供应商、管理层、职工等利益相关方,但地方政府才是最大的利益相关方。


那么,地方政府的诉求是什么呢?或者说地方政府希望城投公司为出资人创造什么价值?更多的收入?更高的利润?更好的国有资产保值增值能力?


一条红线就是不能增加隐性债务。所以城投公司一定要从政府的信用背书转移到城投公司的自身保障能力上来。在有效防范地方政府隐性债务和金融风险的同时,完成地方政府的融资投资任务,实现市场化的平衡,达到“借的来、还得上”和无负担发展的效果。


当然,更重要的是,城投公司要承担起对地方政府的责任。城投必须要讲三大责任:政治责任、社会责任、经济责任。在这块我们得记住,城投公司不是一般国有企业,而是特定功能的国有企业。它的特定功能是实现地方政府在城市发展、产业发展上的开发建设、运营服务需求,主要是通过城投公司的融资、投资来实现。而显然,地方政府是不会算小账,而是算大账的,不会拘泥于一家企业的经营得失,而是看整个区域经济社会的可持续、协调发展。从这个意义上说,地方政府衡量城投公司是否有价值,不仅从企业本身看,还会从企业给区域经济创造的价值(如GDP提升、城市公共服务水平提升、营商环境改善等)。因此,地方政府在城投公司的政治责任、社会责任、经济责任中更强调政治责任,就是城投公司必须要无条件围绕区域经济社会发展谋篇布局,贯彻地方政府的意志与战略部署。也正因为要承担政治责任、社会责任,城投公司必须要讲经济责任。简单说就是:没有物质基础,拿什么去拯救地球?

02

城投公司的“1+4”功能

所以讲经济责任,城投公司就必须要有经济功能。从地方政府对城投公司的需求来说,地方政府是要城投公司承担“1+4”的复合功能。


所谓的“1”是指融资功能。


对城投公司来说,融资功能始终是城投公司的首要功能,融资能力强弱是判断城投公司价值高低的标尺。怎么融资?显然地方政府是不能背书了,必须要以企业信用为基础来增信、拓展融资渠道、增强融资能力。因此,城投公司的融资是必须要市场化的,要考虑融资金额、融资结构、融资成本、融资风险以及融资的使用等各种要素,将融资做成专业的事,从以银行贷款的间接融资为主不断优化,增加直接融资的比例。直接融资要从债券融资为主逐步增加股权融资的比例,加快进入多层次资本市场。


所谓的“4”是4个专业的投资领域。城市投资建设、产业投资孵化、招商引资、乡村振兴及城乡融合。显然,地方政府更需要的不是单一的城市基础设施投资建设商、城市运营商,而是以产城融合、城乡融合为目标的多维度、多功能城投公司。

第一,新型城镇化投资运营商。城投公司根植于区域的城市建设与运营,承担城市基础设施建设、城市资源运营、片区开发建设、棚户区改造、园区开发建设运营、标准化厂房建设等工作。这个是地方政府天然要求城投公司具备的功能。这个领域城投公司可以平衡公益性业务和市场化业务,在承担大量公益性项目的同时谋划项目、包装项目,在基础配套建设、一级土地整理、商住地产、产业地产等领域获得收益。同时,作为新型城镇化投资运营商,城投公司要立足片区开发,综合承担城市更新工作,引入社会资本,充分发挥自身的优势加快发展。


第二,特色产业投资服务商。城投公司围绕区域重点产业,充分发挥国有企业的引领作用,聚集资本、技术、人才等全要素,对区域的产业进行招商、投资、运营,创造良好的营商环境,助力产业要素聚合与产业链打造。切记,投资服务不是直接上手去做。城投公司不具备直接经营实体企业的机制、人才、经验、产业资源等优势,因此不要做实体化经营,直接操盘,而应该以资本为手段做创业投资与孵化。要发挥国有资本的引领与带动作用,坚持市场化运作,通过开展投资融资、产业培育、资本整合,推动产业聚集和转型升级。


第三,招商引资平台。城投公司通过市场化模式推动产业聚集,打造完善的产业链、供应链,通过提供信息化、财务、咨询、人力资源等各项高水平服务,保障入驻企业的顺利持续经营。显然 ,城投公司不仅要在基础设施、产业园区、标准化厂房等硬件上下功夫,还要在招商引资、产业导入、人才培引、效率提升等服务于营商软环境建设软件上下功夫,并按照地方政府的产业政策与招商引资政策,与地方政府招商部门配合,承担招商引资任务。


第四,乡村振兴与城乡融合发展平台。强化城投公司在乡村振兴中的社会责任与市场主体的作用,按照“产业兴旺、生态宜居、乡风文明、治理有效、生活富裕”的总要求,积极推动涉农项目落地、特色农业产业发展。尤其是城投公司在基础设施建设、产业项目谋划落地、城乡融合发展上抓机遇,以市场化方式推动乡村振兴与城乡融合发展。

03

以融投资模式为核心重构城投公司的经营结构

显然,城投公司的市场化融投资模式不是凭空而来的,不是靠政府背书而来的,而是以经营结构的重构,经营效益、效率提升为核心而重塑打造的。因此,城投公司推动平台公司转型和市场化发展的核心也就是:打造市场化的融投资模式,推动资源资产化、资产资本化、资本证券化,从而打造资源——资产——资本——资金的良性循环。


为此,城投公司在推动资产、业务重组整合时要切记不能摊大饼,为规模而重组、为暂时的现金流而重组,而应该着眼于短期结构改善与长期经营效益的可持续为目标,扎实推动重组整合,不盲目做业务增项,不盲目将没有经营价值的资产装进来。

因此,城投公司在充分考虑隐性债务对融资能力影响的前提下,要集中全力推动城投公司增信,做大资产与收入 对平台公司进行四资注入(资产、资本、资源、资金),特别是注土地、注特许经营权、注资产、注股权,在不违规的情况下,把区域最优质的经营性资产都往里注,把账面资产做大、把并表收入做大。


要给予平台公司合理收益,为城投公司成长奠定基础。在针对城投公司的代建费用、投资回报、特许经营收入等方面,在遵循市场化规律的前提下,给予平台公司更好的收益来源,支撑平台公司实现更高的利润,以此形成的利税也将在政府报表中得以展现。

城投公司要特别注意现金流问题。要注意经营收入与现金流应该匹配,避免有收入没有收入资金的情况、公司经营有利润但没现金流的情况。要避免应收款虚高。要减少向其他单位(无股权关系)直接资金输送,改善经营性现金净流量。

公益类与市场类业务必须要平衡。要策划产业自平衡项目,实现城投公司造血和自我成长。平台公司应主动策划产业项目来实现自我造血。即:以基建+资源补偿(可变现资源、土地、地产、资源产业等)的自平衡方式策划投资项目,实现资产与收入的进一步提升,同步获得收益;围绕主导产业规划进行产业的先期孵化和培育,探索特色产业+融合发展的模式,在取得市场化收益的同时,履行产业引导功能,带动区域产业发展。

免责声明凡本网站转载的所有文章、图片、音频、文件等资料的版权归版权所有人所有,目的在于传递更多信息,并不代表本站观点及立场和对其真实性负责。若有侵权或异议,请及时与我们联系,我们会第一时间处理,非常感谢!

来源:微信公众平台“国企观点”,原作者席加省

专栏:行业动态
作者: 席加省
原文链接: 阅读原文
上一页:全国多地调整工程建设疫情防控相关费用
下一页:住建部印发《房屋市政工程生产安全重大事故隐患判定标准(2022版)》
FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)

The following has evaluated to null or missing:
==> langConfig  [in template "public_include/wap/module/version_1/language.html" at line 49, column 14]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if langConfig.status?string = "false"  [in template "public_include/wap/module/version_1/language.html" at line 49, column 9]
	- Reached through: #include "/public_include/wap/module/...  [in template "tpl/2018/03/22/2620611732914496//wap/com_5.html" at line 5, column 1]
	- Reached through: #include "com_5.html"  [in template "tpl/2018/03/22/2620611732914496//wap/displaynews.html" at line 69, column 6]
----

Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
	at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
	at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:80)
	at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:43)
	at freemarker.core.NonHashException.<init>(NonHashException.java:49)
	at freemarker.core.Dot._eval(Dot.java:48)
	at freemarker.core.Expression.eval(Expression.java:81)
	at freemarker.core.BuiltInsForMultipleTypes$stringBI._eval(BuiltInsForMultipleTypes.java:692)
	at freemarker.core.Expression.eval(Expression.java:81)
	at freemarker.core.EvalUtil.compare(EvalUtil.java:111)
	at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.include(Environment.java:2509)
	at freemarker.core.Include.accept(Include.java:171)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.include(Environment.java:2509)
	at freemarker.core.Include.accept(Include.java:171)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.process(Environment.java:306)
	at freemarker.ext.servlet.FreemarkerServlet.processEnvironment(FreemarkerServlet.java:946)
	at freemarker.ext.servlet.FreemarkerServlet.process(FreemarkerServlet.java:910)
	at freemarker.ext.servlet.FreemarkerServlet.doGet(FreemarkerServlet.java:769)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at com.kenfor.iyong.web.util.filter.NotAllowedToTunFilesFilter.doFilter(NotAllowedToTunFilesFilter.java:154)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at com.kenfor.iyong.web.util.filter.InvalidXSSFilter.doFilter(InvalidXSSFilter.java:40)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve.invoke(RedisSessionHandlerValve.java:26)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
	at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:873)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

FreeMarker template error: The following has evaluated to null or missing: ==> langConfig [in template "public_include/wap/module/version_1/language.html" at line 49, column 14] ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if langConfig.status?string = "false" [in template "public_include/wap/module/version_1/language.html" at line 49, column 9] - Reached through: #include "/public_include/wap/module/... [in template "tpl/2018/03/22/2620611732914496//wap/com_5.html" at line 5, column 1] - Reached through: #include "com_5.html" [in template "tpl/2018/03/22/2620611732914496//wap/displaynews.html" at line 69, column 6] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:80) at freemarker.core.UnexpectedTypeException.(UnexpectedTypeException.java:43) at freemarker.core.NonHashException.(NonHashException.java:49) at freemarker.core.Dot._eval(Dot.java:48) at freemarker.core.Expression.eval(Expression.java:81) at freemarker.core.BuiltInsForMultipleTypes$stringBI._eval(BuiltInsForMultipleTypes.java:692) at freemarker.core.Expression.eval(Expression.java:81) at freemarker.core.EvalUtil.compare(EvalUtil.java:111) at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) at freemarker.core.Environment.visit(Environment.java:327) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.Environment.include(Environment.java:2509) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:327) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.Environment.include(Environment.java:2509) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:327) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.Environment.process(Environment.java:306) at freemarker.ext.servlet.FreemarkerServlet.processEnvironment(FreemarkerServlet.java:946) at freemarker.ext.servlet.FreemarkerServlet.process(FreemarkerServlet.java:910) at freemarker.ext.servlet.FreemarkerServlet.doGet(FreemarkerServlet.java:769) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at com.kenfor.iyong.web.util.filter.NotAllowedToTunFilesFilter.doFilter(NotAllowedToTunFilesFilter.java:154) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at com.kenfor.iyong.web.util.filter.InvalidXSSFilter.doFilter(InvalidXSSFilter.java:40) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve.invoke(RedisSessionHandlerValve.java:26) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:873) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)