Skip to content
Samuel Higgins
Projects
Personal ProjectSoftware

CS2 Ledger

Personal Chrome extension and local dashboard for classifying, valuing and analysing a Counter-Strike inventory.

Overview

CS2 Ledger is a personal software project. It is not a professional hospitality or EPOS system. It exists because inventory management for a game collection has the same shape as a small ledger: items, valuations, transactions and history.

The Problem

Marketplace pages show a current price. They do not show how an inventory was acquired, what a trade-up expected to do, or whether a case opening made or lost money over time. Spreadsheets drift as soon as the inventory moves.

Requirements

  • Classify inventory items
  • Pull valuations from pricing integrations
  • Record a transaction ledger
  • Support trade-up planning
  • Track case profit and loss
  • Keep history and allow exports
  • Present analytics on a local dashboard

My Role

Personal project: design, implementation, pricing integrations and the local analytics view. Built to scratch an operational itch, not as a commercial product.

Approach

  • Keep data local where possible — this is a ledger, not a social app
  • Treat pricing as an input that changes, not as a stored truth
  • Separate inventory state from transaction history
  • Export early so the project cannot trap the data

System / Architecture

The extension reads inventory context, classification and user-recorded transactions. Pricing integrations enrich items. A local dashboard presents valuation, ledger, trade-up planning, case P&L and history. No claim is made that this is production trading infrastructure.

Inventory
Pricing
Ledger
Analytics
Personal project architecture. Pricing is an input; the ledger is the record.

Implementation

  • Chrome extension for inventory-adjacent workflows
  • Classification and valuation views
  • Transaction ledger
  • Trade-up planning
  • Case profit/loss
  • History, exports and a local dashboard

Challenges

  • Pricing sources that move and disagree
  • Keeping extension permissions and local data handling conservative
  • Modelling trade-ups without pretending the outcome is certain
  • UI that stays useful when the inventory is large

Outcome

A personal ledger for a game inventory: classified, valued, historically traceable and exportable. Useful as evidence of product thinking and software delivery; separate from professional EPOS and finance work.

  • Inventory treated as a ledger, not a screenshot
  • Valuations and history in one place
  • Trade-up and case performance visible without another spreadsheet

Technologies

Chrome extensionJavaScript / TypeScriptLocal dashboardPricing APIsExportsInventory classificationTransaction ledgerAnalytics

What I Learned

  • Ledgers are a general pattern — the domain can be hospitality or a game inventory
  • Exports prevent personal tools from becoming a trap
  • Pricing belongs at the edge, not buried in item identity

Future Improvements

  • Richer trade-up scenarios
  • Cleaner reconciliation between inventory snapshot and ledger
  • Performance work on large inventories