财务建模包
一个在 Metabase 中设置指标存储以建模您创业公司财务的库。
财务建模包
财务建模包(financial modeling package)将帮助您在 Metabase 中设置一个指标存储,您可以使用它来填充包含您的财务数据的模板电子表格。
然后您可以使用电子表格来
该包遵循MIT 许可协议,所以尽情享受吧。
概述
财务建模包(financial modeling package)从您的 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中启用模型持久化。否则,在Google Sheet导入之前,您的指标就会超时。
如您所见,这是一个相当具体的设置。即使您不符合这些标准,您也可以通过查看存储库中的SQL、我们财务模型模板的设置以及我们关于财务建模概念的信息来获得很多知识。
如何将数据导入财务模型模板
以下是您将要进行的简要概述
- 您将复制财务模型模板
- 克隆财务模型包仓库
- 安装仓库的依赖项
- 获取关于您的Metabase和您的Stripe数据的信息
- 设置Python虚拟环境
- 运行
dap
命令并将您的信息插入其中 - 将Metabase CSV URL复制并粘贴到财务模型模板中
您可以选择向表格中添加自定义指标。
这是一项相当多的设置,让我们一步一步来。
复制财务模型模板
创建财务模型模板的副本。在模板中,转到文件 > 制作副本。
克隆财务模型包仓库
克隆财务模型包仓库。
通过以下方式安装 gh
CLI:遵循 github.com上的说明,或者(如果你使用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中的问题本身来找到这些URL,在dap
创建的集合中。访问问题并单击屏幕右下角的共享按钮,然后单击CSV选项以创建公共链接。确保粘贴到电子表格中的链接以.csv
结尾。
转到你的Financial Model Template Google Sheet副本,单击输入选项卡,并将每个URL粘贴到相应的输入单元格中。
等待几分钟,并检查Financial Model Template表格中的导入进度
根据您的数据量,Google Sheet可能会超时并取消导入。如果查询数据库的响应时间不超过100秒,则可能会发生超时。
这就是为什么模型缓存是必需的原因。一旦问题运行,Metabase将缓存结果,以便下次运行问题时,Metabase可以返回预先计算的结果,而Financial Model Template可以在导入超时之前下载数据。
要查看完整的表格列表,请单击模板左下角的汉堡菜单。在列出的表格中,你会看到三个隐藏的表格(灰色显示)
- _imported_latest_metrics
- _imported_quarterly_metrics
- _pivoted_quarterly_metrics
单击这些隐藏的表格以查看进度。如果导入成功,你应该能看到数据。
然后,_pivoted表格使用季度作为列来旋转导入的数据。
请勿删除这些隐藏的表格。否则,实际数据和预测表格将无法正常工作。
如果你的导入失败
你的导入可能需要足够的时间才能运行Metabase中的模型和问题,并将结果缓存,在这期间可能会失败。
如果你的导入失败,你需要
- 等待几分钟。
- 删除你粘贴的CSV文件的链接。
- 将相关的CSV URL重新粘贴到指定的输入单元格中。
自定义指标
为了添加你自己的自定义时间序列指标
- 创建一个新的问题,使用以下4个字段生成每季度的指标,每个季度一行
- 季度(季度的第一个日期)
- 季度名称(例如,Q1 2023)
- 指标(你希望在隐藏的_pivoted标签中看到的名称,并在公式中引用)
- 值(指标的整数或浮点值)。
- 使用UNION ALL将新问题添加到导出季度指标问题的最后一段(由dap create创建)。
- 转到输入选项卡,删除问题的相应CSV URL并重新粘贴以重新加载数据。加载后,你应该在_pivoted工作表中看到新的数据。
- 转到实际工作表并
- 将现有的指标复制到另一行。
- 用新的指标名称更新第一个公式。
- 拖动公式以填充其余的列。