Inspiration

Our big problem statement was predatory lending practices, how can we help people who struggle financially work towards better financial practices. From there we found the shadow economy and gig workers. The CRA has admitted they struggle to properly track income from these people. Despite earning consistent income, they are often denied access to credit because their earnings don’t fit into conventional underwriting models.

We saw an opportunity to bridge this gap by redefining how financial reliability is measured by moving beyond static credit scores and toward a dynamic, data-driven understanding of income behavior. Which we called the GSS.


What it does

Basis is a financial identity platform that transforms raw transaction data into a Gig Stability Score (GSS) a standardized measure of income reliability.

The platform:

  • Ingests raw user transaction data
  • Classifies and analyzes income streams
  • Builds time-series models of income behavior
  • Computes a stability-based risk score
  • Enhances scoring with assets, credit, and application history
  • Allows lenders to view and export borrower profiles

This enables gig workers to prove financial stability, and lenders to make faster, more accurate underwriting decisions.


How we built it

The system was built as a full-stack application combining:

  • Frontend: HTML, CSS, and JavaScript for a dynamic dashboard and user experience
  • Backend: Node.js with Express for API handling and data persistence
  • Data Processing Pipeline (Python):
    • ingestion.py → cleans and validates transaction data
    • classification.py → categorizes income sources
    • timeseries.py → builds monthly income trends
    • features.py → extracts key metrics (volatility, growth, diversification)
    • risk.py → computes the Gig Stability Score
    • output.py → formats structured analytics output

Data is stored in JSON files and dynamically updated through user interactions (transactions, assets, credit, applications).


Challenges I ran into

  • Data consistency: Handling duplicate transaction uploads and ensuring only the most recent data is used per user
  • User identity linking: Ensuring consistent user IDs across frontend, backend, and analytics pipeline
  • Asynchronous processing: Coordinating Node.js API calls with Python-based analytics execution
  • UI integration: Making modular components (charts, insights, breakdowns) dynamically update with backend data
  • Scoring design: Balancing multiple financial signals into a single interpretable and fair score

Accomplishments that I'm proud of

  • Built an end-to-end data pipeline from raw CSV → structured analytics → frontend visualization
  • Designed a novel scoring system (GSS) tailored to non-traditional income
  • Integrated multi-factor scoring, incorporating assets, liabilities, and behavioral signals
  • Enabled lender-side data sharing and export, simulating real underwriting workflows
  • Delivered a clean, interactive dashboard with real-time updates and visual insights

What I learned

  • How to design and implement a full-stack data product under time constraints
  • The importance of data normalization and consistency in real-world systems
  • How to combine financial logic with technical implementation
  • Building systems that are not just functional, but interpretable and explainable
  • How small UX decisions (modals, flows, feedback) significantly impact usability
  • The quantity of features required to build a platform of this scale file organization and labelling

What's next for Basis

  • Transition from JSON storage to a scalable database architecture
  • Integrate real-time bank APIs instead of CSV uploads
  • Enhance the scoring model with machine learning and predictive analytics
  • Build a lender decision engine with automated approval recommendations
  • Add user-facing insights and financial coaching tools
  • Expand into a full financial identity layer for the modern workforce

Share this project:

Updates