In our last SFS blog, we talked about how the technical challenges in the performance and scaling of our Quotient architecture were solved through the integration of our backend with Snowflake’s Snowpark for Python. We called Snowpark a “game changer” for developers wanting to build faster data analytic tools on a platform that supports dynamically adding processors, memory and users. Okay, that probably describes all developers. 🙂
Also in that blog, we briefly referred to, dare we say teased about The Quble – Quotient‘s core data calculation and caching engine.
But what is the Quble? And why should you care?
SFS’ team of Quantitative Analysts and Data Scientists each have many years of Python development experience and of heavily using the Pandas library. Pandas is awesome and in past lives we’ve built very complex factors and models using the data structure and methods of that library. But unfortunately, Pandas, from our quant finance/data science perspective, has some major limitations…. limitations that we needed addressed if we were going to build an impactful data science tool.
While the Quble Library was developed to functionally address these limitations, it took the release of Snowpark to give us a platform to make it a viable solution.
To develop Quotient, we had to start with The Quble.
Pandas is a proven and popular library in Quant Finance. So let’s highlight some ways The Quble improves upon Pandas, how Snowpark makes this possible, and why the Snowpark platform might be a great solution for your projects.
Over the past six months, Quble has been redesigned to place Snowpark at the core of SFS’ new flagship product Quotient for Snowflake™. With Snowflake under the covers, Qubles can handle massive problems with user scalable resources.
For a sense of the power of the Python library we built on Snowpark, here are some of Quble’s features:
- Quble objects distinguish between index & value columns (simplifying joins and merges).
- Quble columns also have metadata to describe their contents. For example…
- Date columns can have time frequencies and Numeric columns can have currencies.
- Such metadata automatically manages frequencies and currencies during joins and transformations.
- Qubles provide automated reindexing during joins. This feature allows for automated reconciliation of security identifiers using our Dynamic Security Master.
- Qubles supports hundreds of powerful finance-oriented data manipulation and time-series calculation methods that are written in Python in Snowpark.
- Most importantly, the Quble Library in Snowpark allows users to run calculations that are co-located with their data.
- No need to move data back and forth to calculation servers.
- All of the data matching, manipulating and filtering occurs on the data servers.
- User generated results can persist on Snowflake or any alternative data store.
Now let’s see The Quble in action…
# First import RootLib, which is pre-configured to find your data whether in SQL, CSV or other data structures
from qubles.io.base.rootlib import RootLib
# create handles to a couple of datasets
rf = RootLib()[‘Reuters Fnd (CFT)’]
ds = RootLib()[‘Datastream’]
# Create a Quble using a basic moving sum formula
# rules for dealing with missing data have already been defined
# Note that this is summing across trailing Fiscal quarters
sales_sum4q = rf[‘SALES_FQ’].msum1d(4, ‘Fiscal’)
# A few more calculations to get a Sales to Enterprise Value Quble
# mapping identifiers and standardizing currencies all happen behind the scenes
# Note that Fiscal data combines with Calendarized data to create a calendarized ev.
ev = ds[‘MKT_CAP_M’] + rf[‘LTD_FQ’] – rf[‘CASH_FQ’]
sales2ev = sales_sum4q / ev
# easy translation to (and from) pandas!
This just touches the surface of why we think The Quble is part of what makes Quotient such a powerful and flexible data science tool and can be of interest to you.
We did it again, we brushed over a huge innovation available in Quotient. Did you notice when we mentioned the Dynamic Security Master?Please watch for our next Blog… “One Security Master to Rule Them All”.