Skip to content
Strata v1.2.6

Mental Model

There is no “Portfolio” entity or screen in Strata. The concept is simpler:

Your portfolio is the sum of all the assets you track.

  • Add assets → they become part of your portfolio automatically
  • Dispose of an asset → it is excluded from net worth calculations
  • Categories and tags handle all the grouping you need (see below)
  • PortfolioSnapshot records the total value at a specific moment in time — it is a global snapshot, not a sub-view of a named group
All non-disposed assets
Latest AssetSnapshot per asset (you enter these manually)
Sum → PortfolioSnapshot (created via "Take Snapshot" in the UI or POST /api/v1/portfolio-snapshots)
Net Worth Chart (shows your wealth over time)

Loans and liabilities are assets with negative snapshot values. They subtract from the total automatically — no special configuration needed.


Mental Model — WordPress-Style Classification System

Section titled “Mental Model — WordPress-Style Classification System”

Asset management system uses a two-layer approach inspired by WordPress:

Layer 1: Asset Type (Accounting Classification)

Section titled “Layer 1: Asset Type (Accounting Classification)”

Purpose: High-level financial/accounting categorization
Cardinality: ~10/15 types maximum
Relationship: Many-to-one (each asset has exactly ONE type)
Examples:

  • CHECKING_ACCOUNT
  • SAVINGS_ACCOUNT
  • CASH
  • REAL_ESTATE
  • STOCKS
  • CRYPTO
  • BONDS
  • LOAN
  • VEHICLE
  • PERSONAL_PROPERTY
  • COLLECTIBLES
  • BUSINESS
  • OTHER

Think of it as: “What type of asset is this for accounting/tax purposes?”


Layer 2: Categories (WordPress-Style, Many-to-Many)

Section titled “Layer 2: Categories (WordPress-Style, Many-to-Many)”

Purpose: Flexible, multi-dimensional organization
Cardinality: Unlimited, user-defined hierarchy
Relationship: Many-to-many (each asset can belong to MULTIPLE categories)
Structure: Hierarchical (parent/child relationships via parent_id)

Examples:

  • Clothing > T-Shirts > Summer T-Shirts
  • Real Estate > Residential > Apartments > Paris
  • Furniture > Dining > Wooden Chairs
  • Toys > Building Sets > LEGO > Star Wars
  • Income Generating Assets
  • Primary Residence
  • Athletic Wear
  • Collectibles > Investment Grade
  • Multi-Purpose Items
  • Office Equipment

Think of it as: “What organizational buckets does this belong to?” (Answer: potentially many!)


Purpose: Additional metadata and filtering
Cardinality: Unlimited, user-defined
Relationship: Many-to-many (each asset can have MANY tags)
Structure: Flat (no hierarchy)

Examples:

  • summer, cotton, breathable
  • paris, airbnb, sold
  • star_wars, vintage, unopened
  • wood, stackable, versatile

Think of it as: “What additional attributes describe this?”


Just like WordPress posts, your assets can belong to multiple categories simultaneously:

✅ Clothing > T-Shirts (hierarchical path)
✅ Athletic Wear (functional category)
✅ Casual Wear (style category)

✅ Real Estate > Residential > Apartments (hierarchical path)
✅ Primary Residence (legal classification)
✅ Income Generating Assets (financial classification)

✅ Toys > Building Sets > LEGO (hierarchical path)
✅ Collectibles > Investment Grade (purpose)
✅ Kids Room Items (location)


ScenarioSingle Category (Old Model)Multiple Categories (WordPress Model)
Apartment used as home + rentalMust choose ONE: “Primary Residence” OR “Rental”BOTH: “Primary Residence” AND “Income Generating Assets”
T-shirts for sports + casualMust choose ONE pathBOTH: “Clothing > T-Shirts” AND “Athletic Wear” AND “Casual Wear”
LEGO as toy + investmentMust choose ONE purposeBOTH: “Toys > LEGO” AND “Collectibles”

Benefit: Assets can be organized from multiple perspectives without duplication.


Asset: "Summer T-Shirts"
Asset Type: PERSONAL_PROPERTY (choose ONE)
Categories:
✓ Clothing > T-Shirts
✓ Athletic Wear
✓ Casual Wear
(select as many as needed)
Tags: summer, cotton, breathable

Filter by “Athletic Wear” → Returns:

  • Summer T-Shirts
  • Running Shoes
  • Yoga Mat

Filter by “Clothing > T-Shirts” → Returns:

  • Summer T-Shirts
  • Winter T-Shirts
  • Designer T-Shirts

Filter by “Income Generating Assets” → Returns:

  • Paris Apartment
  • Rental Property Barcelona
  • Vending Machine

Filter by both “Clothing > T-Shirts” AND “Athletic Wear” → Returns:

  • Summer T-Shirts (intersection)

Categories can have parent/child relationships just like WordPress:

Real Estate (parent)
├── Residential (child)
│ ├── Apartments (grandchild)
│ └── Houses (grandchild)
└── Commercial (child)
├── Office Buildings (grandchild)
└── Retail Spaces (grandchild)

An asset can belong to:

  • Just “Real Estate” (parent only)
  • “Real Estate” AND “Residential > Apartments” (parent + full path)
  • “Residential > Apartments” AND “Income Generating Assets” (hierarchy + cross-cutting)

FeatureAsset TypeCategoriesTags
ControlControlled vocabularyUser-definedComplete freedom
StructureFlat listTree hierarchyFlat labels
Per AssetExactly 10 to many0 to many
PurposeAccounting/taxOrganization/navigationFiltering/metadata
RelationshipMany-to-oneMany-to-manyMany-to-many
HierarchyNoYes (parent_id)No

  1. Asset Type = Legal/Accounting classification (required, singular, stable)
  2. Categories = Organizational flexibility (optional, multiple, hierarchical)
  3. Tags = Descriptive metadata (optional, multiple, flat)

This gives you:

  • Precision (Asset Type for accounting)
  • Flexibility (Multiple categories per asset)
  • Discoverability (Find assets from multiple angles)
  • Simplicity (WordPress-familiar model)

FeatureWordPressYour Model
Posts/AssetsPostsAssets
Post TypePost, Page, CustomAsset Type
CategoriesMany-to-many + hierarchyMany-to-many + hierarchy ✓
TagsMany-to-many, flatMany-to-many, flat ✓

Your model = WordPress categories + Asset Type for accounting structure

This is the most flexible approach while maintaining clear accounting boundaries via Asset Type.