fivetran / dbt_quickbooks

Fivetran data models for QuickBooks using dbt.
https://fivetran.github.io/dbt_quickbooks/
Apache License 2.0
25 stars 38 forks source link

QUESTION - would ordering of balance sheet / pnl be a reasonable feature request #30

Closed leinemann closed 1 year ago

leinemann commented 2 years ago

Are you a Fivetran customer? yes, Christoph, Sustain.life Your Question Our business have started to look at the outcome this dbt package (another great dbt package btw :-) ) and their first comment was that they would like to order the pnl and balance sheet in the common way at the top level i.e. Assets, Liabilities but also at the account level. My thinking is that we could introduce a 'static data' table with an ordinal for each relevant account name that could be joined into the top level tables but the question is: could this be a feature of the dbt package (i.e. the ability to join an order column if desired) or should be be solved downstream or are there more elegant ways to solve this?

Additional context

Please indicate the level of urgency and business impact of this request I have to solve this one way or another and I'm wondering if I could contribute this to this package based on your guidance.

fivetran-joemarkiewicz commented 2 years ago

Hey @leinemann that's great to hear you are able to leverage this package as well 😄.

This was actually a thought I had when originally developing this package. However, I decided to not implement the ordering within the package by default since we received some feedback from users of our dbt_netsuite (which the Income Statement model used to provide an order by) package that the ordering was an unnecessary query cost and was instead a function they did in the BI layer instead.

I am interested in your thought on this matter. Do you feel an order by would add more cost than the amount of benefit it would be to have this included in the package by default?

leinemann commented 2 years ago

hey @fivetran-joemarkiewicz, thanks for looking at this! :-) I think that baking in an ordinal comes at very little cost. It would be up to the user to apply the ordering with associated cost or not. So in my opinion it would be great to have.

fivetran-joemarkiewicz commented 2 years ago

@leinemann would you be able to share an example of what one of these "static data" models would be? I am trying to understand the use case for this a bit more and ensure I have the right understanding.

leinemann commented 2 years ago

hey @fivetran-joemarkiewicz, in simple terms I'm thinking of an optional pre-populated table like:

ACCOUNT_CLASSORDINAL
Asset1
Liability2
Equity3

now this could be joined to the actual balance sheet if desired so that the ordinal column appears in the balance sheet model so that the line items can be shown in the order expected from a balance sheet. Same could be applied for parent_account_name although it might be challenging to obtain a complete list. From my perspective it doesn't have to be complete as long as me as a user could add values in that static data table which would then control the ordinal column it could work I believe.

fivetran-joemarkiewicz commented 2 years ago

Ahhh okay I see what you are saying now. I could see this being a good enhancement to the package and help with the overall understanding and analytic use of these final models.

That being said I think this would be a good addition to incorporate along with the other feature request you submitted for the Cash Flow statement. This way the next major release of the package can include these features. Similar to the timing of the Cash Flow statement, we most likely will not integrate this until next quarter. I will come back here once we start working on this.

Thanks again for a great feature request 😃

fivetran-avinash commented 1 year ago

Hi @leinemann ! We've implemented ordering for the balance sheet, profit-and-loss, and cash flow in our 0.7.0 release.

To solve the ordering issue, we decided to create a very interesting solution where you can either (a) utilize the default logic in our model, or (b) utilize our custom solution that involves importing your own seed csv with your custom logic.

More details on why we set up this implementation are available in our Fivetran community post on seed configuration.

For thorough instructions, you can read more in the README section under Step 5: Additional Configurations in the "Customize the account ordering of your financial models." section.

We encourage you to update your packages.yml, test it out, and leave us any thoughts!

We're going to go ahead and close this issue, but if you have any feedback please leave your comments here in the issue.

Happy ordering!