财务建模包
一个用于在 Metabase 中设置指标存储库以建模您的创业公司财务状况的库。

财务建模包
此财务建模包将帮助您在 Metabase 中设置一个指标存储库,您可以使用它将财务数据填充到模板电子表格中。
然后,您可以使用该电子表格来
此包基于 MIT 许可证,尽情使用吧。
概述
此财务建模包可根据您 Metabase 中的 Stripe 数据创建一个指标存储库,您可以将其导入到我们的财务建模模板中。
此包使用 dap
CLI(dap 是“数据产品”的缩写),它执行以下操作
- 从您 PostgreSQL 数据库中存储的 Stripe 数据创建一系列模型和问题。
- 通过公共链接提供一些 Metabase 问题的 CSV 格式结果。
由此,您可以将 CSV 数据导入到我们的财务模型模板中,获得一个功能齐全的电子表格,用于查看历史数据,并通过调整某些值来尝试预测和情景建模。
财务建模包的先决条件
要使 dap
命令正常工作,您需要满足一些条件
- MacOS 和 Homebrew。我们已在 MacOS 上使用 Homebrew 安装所需包并进行了测试。
- 由 Fivetran 摄取的 Stripe 数据。
dap
要求 Stripe 数据采用由 Fivetran 摄取时的特定“形状”。 - PostgreSQL。Stripe 数据必须存储在 PostgreSQL 数据库中。
- Google 表格。您需要访问 Google 表格。
您还需要一个正常运行的 Metabase,并进行以下设置:
- Metabase 的管理员电子邮件/密码。
dap create
命令需要管理员帐户才能通过 Metabase 的 API 创建模型/问题。管理员帐户必须使用电子邮件地址创建;通过 SSO 创建的管理员帐户将无法使用。如果您正在使用 SSO,可以为此用例专门创建一个使用电子邮件和密码的额外管理员帐户。 - 已开启公共分享。
- 您的 Metabase 必须可从互联网访问(以便 Google 表格可以从该 Metabase 导入数据)。
- 您的 Metabase 中已启用模型持久化。否则,在 Google 表格导入指标之前,您的指标会超时。
如您所见,这是一个非常具体的设置。但即使您不满足这些条件,您仍然可以通过浏览仓库中的 SQL、我们财务建模模板的设置,以及我们关于财务建模概念的详细信息,学到很多东西。
如何将数据导入财务模型模板
以下是您将要进行的基本操作概述:
- 您将复制财务模型模板
- 克隆财务建模包仓库
- 安装仓库的依赖项
- 获取有关您的 Metabase 和 Stripe 数据的信息
- 设置 Python 虚拟环境
- 运行
dap
命令并插入您的信息 - 将 Metabase CSV URL 复制并粘贴到您的财务模型模板中
然后,您可以选择向工作表添加自定义指标。
设置步骤较多,让我们一步步来。
复制财务模型模板
创建 财务模型模板 的副本。在模板中,前往文件 > 制作副本。
克隆财务建模包仓库
克隆财务建模包仓库。
通过遵循github.com 上的说明安装 gh
CLI,或者(如果您使用的是 MacOS),您可以通过 homebrew 包管理器运行以下命令进行安装:
brew install gh
安装完成后,运行以下命令克隆此仓库:
gh repo clone metabase/financial-modeling-package
安装依赖项
brew install python3 tox
获取有关您的 Metabase 和 Stripe 数据的信息
- 您的 Metabase URL(您的 Metabase 主页)。
- Metabase 管理员电子邮件和密码。SSO 帐户将无法使用,因此您可能需要通过电子邮件和密码创建一个管理员帐户。
- Stripe 模式。由 Fivetran 摄取的
stripe
模式的名称。它可能是“Stripe”,但您可能已将其命名为其他名称。 - 包含该 Stripe 模式的数据库的显示名称。在 Metabase 中,此名称称为显示名称——您在 Metabase 用户界面中看到的数据库名称。
设置 Python 虚拟环境
在您克隆的 financial-modeling-package
目录下,运行
tox
然后
source .tox/data-products/bin/activate
运行 dap
命令
dap
将基于该数据创建许多模型,以及可供您导入到电子表格中的公共问题。
dap setup
按照提示输入信息。输入完成后,dap
将执行其操作,然后打印出
Created config.yml with a list of all Stripe products.
Please edit it to update the Stripe product names and indicate if it is a main product or not.
A main product will be included in the financial reports while other products will be
collapsed and aggregated as part of the main product in the same subscription.
Once done, run "dap create" to create the data models/questions in Metabase.
目前,保持配置文件不变。
创建配置文件后,运行
dap create
输出将如下所示(尽管文本会指明 dap
在您的 Metabase 中创建这些模型和问题的具体位置)。
Creating models
* Created new collection
* Created new model Stripe Price
* Created new model Stripe Subscription Item
* Created new model Stripe Customer
* Created new model Stripe Subscription
* Created new model Monthly Trialers
* Created new model Quarterly Trialers
* Created new model Stripe Invoice
* Created new model Revenue
* Created new model Monthly Customers
* Created new model Monthly ARR
* Created new model Quarterly ARR
* Created new model Quarterly Customers
* Created new question Exported Quarterly Metrics
- Publicly shared at [LINK]
* Created new question Exported Latest Metrics
- Publicly shared at [LINK]
Please copy the CSV URLs above and paste them into the **Inputs** sheet of the Financial Model template in the cells that say `<TODO: Add url>``
If the import times out, wait a few minutes for Metabase model/query caching to kick in, and then try again by deleting the URL followed by reverting.
前往您的 Metabase,您应该能够找到 dap
创建的新集合,包括其模型和问题。可选:根据需要设置集合的权限,因为默认情况下该集合将对所有用户组可用。
要了解有关 dap
创建的模型的更多信息,请查看我们对此包创建的指标存储库的导览。
将 Metabase CSV URL 复制并粘贴到您的财务模型模板中
复制 dap create
打印出的两个公共问题 CSV 导出 URL。
- 导出的季度指标
- 导出的最新指标
您还可以在 Metabase 中访问 dap
创建的集合中的问题本身,从而找到这些 URL。访问该问题,点击屏幕右下角的分享按钮,然后点击 CSV 选项以创建公共链接。请确保您粘贴到电子表格中的链接以 .csv
结尾。
前往您的财务模型模板 Google 表格副本,点击输入标签页,然后将每个 URL 粘贴到相应的输入单元格中。
等待几分钟,并检查财务模型模板工作表中的导入进度
根据您拥有的数据量,Google 表格可能会超时并取消导入。如果对数据库的查询未能在 100 秒内返回结果,则可能会发生超时。
这就是为什么模型缓存是必需的。一旦问题运行,Metabase 将缓存结果,以便下次您运行问题时,Metabase 可以返回预先计算的结果,并且财务模型模板将能够在导入超时之前下载数据。
要查看完整的工作表列表,请点击模板左下角的汉堡菜单。在列出的工作表中,您将看到三个隐藏工作表(灰色显示)
- _imported_latest_metrics
- _imported_quarterly_metrics
- _pivoted_quarterly_metrics
点击这些隐藏工作表以查看进度。如果导入成功,您应该会看到数据。
_pivoted 工作表随后会透视导入的数据,将季度用作列。
避免删除这些隐藏工作表。否则,“实际数据”和“预测”工作表将无法工作。
如果您的导入失败
您的导入可能会失败,直到 Metabase 有足够的时间运行模型和问题并缓存其结果。
如果您的导入失败,您需要:
- 等待几分钟。
- 删除您粘贴的 CSV 链接。
- 在指定的输入单元格中重新粘贴相关的 CSV URL。
自定义指标
要添加您自己的自定义时间序列指标
- 创建一个新问题,按季度生成指标,每行包含以下 4 个字段:
- quarter(季度的第一个日期)
- quarter_name(例如,2023 年第一季度)
- metric(您希望在隐藏的 _pivoted 标签页中看到的名称,并在公式中引用)
- value(指标的整数或浮点值)。
- 使用 union all 将新问题添加到“导出的季度指标”问题(由
dap create
创建)的最后一个块中。 - 前往输入标签页,删除问题对应的 CSV URL 并重新粘贴以重新加载数据。加载后,您应该会在 _pivoted 工作表中看到新数据。
- 前往“实际数据”工作表并
- 将现有指标复制到另一行。
- 使用新的指标名称更新第一个公式。
- 拖动公式以填充其余列。