跳转到内容

分析 Sage Intacct 财务数据:从连接到试算平衡表

约 40 分钟 · 一个可用的 Sage Intacct 连接、一张已加载的试算平衡表、一张部门损益表、一个仪表板,以及一个计划刷新

这是使用 Sage Intacct 的财务总监或 FP&A 分析师的入门路径:完成后,您将直接从 Intacct 提取按维度划分的科目余额,将其转换为可像报表一样阅读的部门试算平衡表和损益表,放到仪表板上,并让整个流程自动刷新。无需导出预设报表,也无需手动重新录入,数据来自 Intacct 并保持最新。

您只需连接一次、提取一次,然后做真正重要的部分:将原始余额整理成业务人员周一早上要看的汇总。

Sage Intacct导入 Sage试算平衡表分组并求和损益表
建立连接,提取一次余额,再将其整理成可阅读的报表,整个流程都可按计划重新运行。
  • 一个 PlaidCloud 工作区和一个用于操作的项目(如果需要,请开始试用)。
  • 一个可用的 Sage Intacct 连接。请先按照连接到 Sage Intacct 操作:需要启用 Web 服务,准备一个对要读取的对象具有权限的 Web 服务用户,以及连接所需的四个凭据字段:客户端 ID、客户端密钥、Web 服务用户名和公司 ID。开始之前,请确认连接可用。
  • 了解您的运营实体(要报告的实体 ID),以及损益科目(收入和费用)大致所在的科目编号范围。下面的示例使用 201 和 301 作为实体,使用 4010–9999 作为损益范围,请替换为您自己的值。

工作流是提取并整理数据的管道。

  1. 打开项目,切换到工作流选项卡。
  2. 单击新建工作流,将其命名为例如 Intacct Financials,然后打开。

导入 Sage 步骤按日期范围和科目范围提取科目余额,并将您选择的维度附加到每一行,这就是您的试算平衡表。

  1. 添加一个导入 Sage步骤。

  2. 在其配置中设置:

    字段 值
    连接 您的 Sage Intacct 连接
    公司 要读取的 Intacct 公司
    开始日期 / 结束日期 您正在结账的期间,例如当月的第一天和最后一天
    Start account / End account 您的损益范围,例如 4010 到 9999
    实体 您的运营实体,例如 201、301
    维度 启用您用于报告的维度,通常是位置、部门、员工和类别
  3. 将目标设为名为 intacct_trial_balance 的新表。

  4. 运行该步骤。现在每个科目与维度组合各有一行,包含 startbalance、periodbalance 和 endbalance 列,以及每个已启用维度的 ID/名称对(例如 departmentid / departmentname、locationname)。

接下来是分析,只需一次点选式转换,无需 SQL。您的损益范围会按部门汇总为几个报表项目,并翻转符号,使收入显示为正数。Table Extract 步骤可以在其表数据选择和数据筛选器选项卡上完成全部操作。

  1. 添加一个 Table Extract 步骤。将其源设为 intacct_trial_balance,目标设为新表 intacct_pnl。

  2. 在表数据选择选项卡上,单击汇总以启用聚合,然后设置三个目标列:

    • departmentname:直接从源映射。类型为文本,汇总方式为分组依据。
    • pnl_line:一个表达式(见下文),将科目编号转换为报表项目。类型为文本,汇总方式为分组依据。
    • amount:表达式为 func.to_float64(intacct_trial_balance.endbalance) * -1,它将文本余额转换为数字并翻转符号。类型为货币,汇总方式为求和。

    将 amount 目标列的类型设为货币,文本余额才能求和。对于 pnl_line,双击其表达式单元格并输入以下内容(可点选各列,以及条件分组中的 case 函数):

    case(
    (func.to_float64(intacct_trial_balance.glaccountno) < 5000, '1 - Revenue'),
    (func.to_float64(intacct_trial_balance.glaccountno) < 6000, '2 - Cost of Goods Sold'),
    else_='3 - Operating Expenses',
    )
  3. 运行该步骤。

* -1 是唯一的会计处理:Intacct 将收入记为贷方(负数),将费用记为借方(正数),因此对期末余额取反后,收入为正、成本为负,每个部门的各项目随后相加即为净利润。请根据您的会计科目表调整 case() 中的科目编号分界值。表达式使用 PlaidCloud 的点选式编辑器,参见高级数据映射器用法和表达式参考。

打开 intacct_pnl 表。每个部门有三个数字:

departmentname pnl_line amount
Operations 1 - Revenue 486,200.00
Operations 2 - Cost of Goods Sold -190,540.00
Operations 3 - Operating Expenses -212,880.00

可以直接从中读出:

  • 毛利润 = 收入 + 销货成本(销货成本已是负数)→ 486,200 − 190,540 = 295,660。
  • 净利润 = 三个项目之和 → 82,780。
  • 毛利率 = 毛利润 ÷ 收入 → 约 61%。

首先要做的是核对:针对同一期间和实体运行 Intacct 自带的损益表(财务报表),确认收入和净利润一致。如果不一致,几乎总是范围不同:遗漏了某个实体,科目范围截掉了部分损益科目,或期间未对齐。只有核对一致后,才能信任这条管道。

表中的数字尚可,但发给首席财务官的应当是图表。发布 intacct_pnl,然后按照构建仪表板添加:

  • 按 departmentname 显示净利润(或收入)的条形图,以及
  • 显示各 pnl_line 的条形图,让收入、销货成本和运营费用的构成一目了然。

这就是一个实时的 Sage Intacct 财务仪表板,无需导出,每次运行工作流时都会刷新。

  1. 从头到尾运行整个工作流一次,确认每个步骤都显示为绿色。
  2. 为工作流设置计划:按结账节奏每月运行,或者如果希望整个月内数据都保持最新,则每周运行。

由于提取会完整替换整张表,每次运行都会重新读取您设置的日期和科目范围内的余额,因此请将范围限制在所需的时间窗口内(当前期间、您的损益科目),而不是全部历史数据。

步骤 7:使用统计账户添加人均指标

Section titled “步骤 7:使用统计账户添加人均指标”

除了财务科目表,Intacct 还跟踪非货币的统计账户,例如员工人数、面积、单位数。使用设置为统计模式的第二个导入 Sage步骤提取它们,然后联接到损益表上,即可读取按部门划分的人均运营费用等指标。再增加三个标准步骤,仍然无需 SQL。

  1. 添加第二个导入 Sage步骤。在其配置中设置:

    字段 值
    连接 您的 Sage Intacct 连接
    公司 要读取的 Intacct 公司
    开始日期 / 结束日期 与步骤 2 相同的期间
    统计 仅统计
    Start account / End account 0000 到 9999:统计账户的编号不一定落在财务科目表的编号范围内,因此请提取完整范围,而不是步骤 2 中的损益范围
    实体 您的运营实体,例如 201、301
    维度 部门:用于按人均报告的维度
  2. 将目标设为名为 intacct_statistics 的新表。

  3. 运行该步骤。每个统计账户在每个部门各有一行,其中 endbalance 承载统计值本身,例如该部门期末的员工人数。

现在将员工人数加到损益表上并相除,但不要直接使用 intacct_statistics。该表中每个统计账户在每个部门各有一行(员工人数、面积、单位数,以及您跟踪的其他内容),因此只按 departmentname 联接会使每个损益行按该部门的统计账户数量成倍增加,amount_per_head 就会除以恰好落在该行上的某个统计账户。请先筛选出员工人数,使联接后每个部门只有一行,这样比率才有意义。

  1. 添加一个 Table Extract 步骤。将其源设为 intacct_statistics,目标设为新表 intacct_headcount。在表数据选择上,原样传播所有列,此处无需聚合。在数据筛选器选项卡上,对源数据添加一个选择数据子集筛选器:intacct_statistics.glaccountno == '9000',请将 9000 替换为您自己的员工人数统计账户编号(如果您的提取结果返回的是账户名称列,则改为按该列筛选;glaccountno 仍是文本,因此请与带引号的字符串比较)。运行该步骤,intacct_headcount 现在每个部门恰好有一行。

  2. 添加一个 Table Outer Join 步骤。将 Table 1 设为 intacct_pnl,将 Table 2 设为 intacct_headcount,并按 departmentname 联接,现在每个部门都是干净的 1:1 匹配。将联接类型保持为默认的左联接:保留每个损益行,并在部门匹配时填入员工人数。将目标设为新表 intacct_pnl_with_headcount,并传播两个表中的所有列。

  3. 运行该步骤,然后添加一个读取 intacct_pnl_with_headcount 的 Table Extract 步骤,目标为新表 intacct_pnl_per_head。在表数据选择上,传播现有的列,然后再添加一个目标列:amount_per_head,表达式为 intacct_pnl_with_headcount.amount / func.to_float64(intacct_pnl_with_headcount.endbalance),类型为货币。

  4. 运行该步骤。

读取 3 - Operating Expenses 行的 amount_per_head,即可得到按部门划分的人均运营费用,读取方式与步骤 4 相同,只是多了一列。可将其与损益表一起添加到仪表板,或并入步骤 6 的计划,使其与其他内容一同刷新。

从一个空工作流开始,您提取了实时的 Sage Intacct 科目余额,使用一个标准转换步骤将其整理为部门损益表,联接统计账户得到人均指标(整条管道无需任何 SQL),放到仪表板上,并设置为自动刷新。这是财务团队运行的核心报表循环,现在已经实现自动化。