金融建模套件
一个在 Metabase 中设置指标存储以建模您的初创公司财务状况的库。

金融建模套件
财务建模软件包将帮助您在 Metabase 中设置指标存储,您可以使用它来填充包含您财务数据的模板电子表格。
然后,您可以使用该电子表格来
该软件包采用MIT 许可证,请尽情使用。
概述
财务建模软件包从您 Metabase 中的 Stripe 数据创建一个指标存储,然后您可以使用它导入到我们的财务建模模板中。
该软件包使用 dap
CLI(dap 是“数据产品”的缩写),它执行以下操作
- 从存储在 PostgreSQL 数据库中的 Stripe 数据创建一系列模型和问题。
- 通过公共链接以 CSV 格式提供一些 Metabase 问题的结果。
从那里,您可以将该 CSV 数据导入到我们的财务模型模板中,并获得一个功能齐全的电子表格,用于查看历史数据,并通过调整某些值来尝试预测和情景建模。
财务建模软件包的先决条件
为了使 dap
命令发挥作用,您需要检查相当多的框
- MacOS 和 Homebrew。我们已在 MacOS 上使用 Homebrew 测试了这一点,以安装所需的软件包。
- Fivetran 摄取的 Stripe 数据。
dap
期望 Stripe 数据具有某种“形状”,由 Fivetran 摄取。 - PostgreSQL。该 Stripe 数据必须存储在 PostgreSQL 数据库中。
- Google Sheets。您需要访问 Google Sheets。
您还需要一个正在运行且具有以下设置的 Metabase
- Metabase 的管理员电子邮件/密码。
dap create
命令需要一个管理员帐户才能通过 Metabase 的 API 创建模型/问题。管理员帐户必须使用电子邮件地址创建;使用 SSO 创建的管理员帐户将不起作用。如果您使用 SSO,您可以专门为此用例创建一个使用电子邮件和密码的附加管理员帐户。 - 公共共享已开启。
- 您的 Metabase 必须可以从互联网访问(以便 Google Sheets 可以从该 Metabase 导入数据)。
- 模型持久化在您的 Metabase 中启用。否则,您的指标将在 Google Sheet 可以导入它们之前超时。
正如您所见,这是一个非常具体的设置。但即使您不符合条件,您仍然可以通过浏览 repo 中的 SQL、我们的 财务建模模板的设置以及我们关于 财务建模概念的信息转储来获得很多收获。
如何将您的数据导入财务模型模板
以下是您将要执行的基本概述
- 您将复制财务模型模板
- 克隆财务建模软件包 repo
- 安装 repo 的依赖项
- 获取有关您的 Metabase 和 Stripe 数据的信息
- 设置 Python 虚拟环境
- 运行
dap
命令并插入您的信息 - 将 Metabase CSV URL 复制并粘贴到您的财务模型模板中
您可以选择性地向工作表添加自定义指标。
这是一个相当多的设置,所以让我们逐步完成。
复制财务模型模板
创建财务模型模板的副本。在模板中,转到文件 > 制作副本。
克隆财务建模软件包存储库
克隆财务建模软件包 repo。
按照 github.com 上的说明安装 gh
CLI,或者(如果您使用的是 MacOS),您可以通过运行 homebrew 软件包管理器来安装
brew install gh
安装完成后,运行以下命令来克隆此 repo
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 Sheet 副本,单击输入选项卡,并将每个 URL 粘贴到相应的输入单元格中。
等待几分钟,并检查财务模型模板工作表中的导入进度
根据您拥有的数据量,Google Sheet 可能会超时并取消其导入。如果数据库查询未在 100 秒内返回结果,则可能会发生超时。
这就是模型缓存成为必需的原因。问题运行后,Metabase 将缓存结果,以便您下次运行问题时,Metabase 可以返回预先计算的结果,并且财务模型模板将能够在导入超时之前下载数据。
要查看完整的工作表列表,请单击模板左下角的汉堡菜单。在列出的工作表中,您将看到三个隐藏的工作表(灰显)
- _imported_latest_metrics
- _imported_quarterly_metrics
- _pivoted_quarterly_metrics
单击这些隐藏的工作表以查看进度。如果导入成功,您应该会看到数据。
然后,_pivoted 工作表将透视导入的数据,使用季度作为列。
避免删除这些隐藏的工作表。否则,“实际”和“预测”工作表将无法工作。
如果您的导入失败
在 Metabase 有足够的时间运行模型和问题并缓存其结果之前,您的导入可能会失败。
如果您的导入失败,您需要
- 等待几分钟。
- 删除您粘贴的 CSV 链接。
- 在指定的输入单元格中重新粘贴相关的 CSV URL。
自定义指标
要添加您自己的自定义时间序列指标
- 创建一个新问题,该问题为每个季度生成一个指标,每行包含以下 4 个字段
- 季度(季度的第一天)
- quarter_name(例如,2023 年第一季度)
- 指标(您希望在隐藏的 _pivoted 选项卡中看到的名称,并在公式中引用)
- 值(指标的整数或浮点值)。
- 使用 union all 在导出的季度指标问题(由
dap create
创建)的最后一块中添加新问题。 - 转到输入选项卡,删除问题的相应 CSV URL 并重新粘贴以重新加载数据。加载后,您应该会在 _pivoted 工作表中看到新数据。
- 转到实际工作表,然后
- 将现有指标复制到另一行。
- 使用新指标名称更新第一个公式。
- 拖动公式以填充其余列。