agentsclimarketplace

Fpa portfolio learn

Skill JeffBrines/openfpa/skills/fpa-portfolio-learn

The FP&A toolbelt for AI coding agents. Claude Code or Codex does the thinking; openfpa gives it a tested finance kernel, durable company memory, and a Karpathy inspired research loop that improves forecasts against your actuals. By Guiderail and Jeff Brines.

Install
npx -y skills add JeffBrines/openfpa --skill fpa-portfolio-learn

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when you run FP&A for several clients and want your practice to compound - mines patterns that generalize across your same-type clients, validates them by leave-one-out cross-client backtesting, and promotes ratified priors and skills into a local library that seeds every new client. All local; nothing leaves your machine.

SKILL.md

2.6 KB, as published. Nobody here has run it

Portfolio Learn (Loop B)

Overview

Loop A makes the model better at one client. This makes your practice compound: client #10 starts smarter than client #1 because your library carries what generalized across #1–9. Everything is local - your own book, on your own machine.

Core principle: self-improving, never self-ratifying - propose, you accept. The objective metric is cross-client: does a pattern learned on some clients fail to degrade the others' backtest?

Setup

A portfolio manifest ~/.fpa/portfolio.yaml lists your clients + a business-type tag:

library: ~/.fpa/library
clients:
  - { path: ~/clients/acme,  type: d2c-inventory }
  - { path: ~/clients/peak,  type: d2c-inventory }
  - { path: ~/clients/haul,  type: trucking }

Workflow

  1. Load the manifest (pyfpa.load_portfolio).
  2. For each business-type with at least 3 clients:
    • Priors: let type_clients = pyfpa.portfolio.clients_of_type(portfolio, type). pyfpa.mine_priors(portfolio, type) finds drivers that cluster tightly; validate each with pyfpa.validate_prior(driver, type_clients) (leave-one-out). Surface validated ones first (by cross-client delta), then unvalidated/judgment.
    • Skills: pyfpa.find_recurring_skills(portfolio, type) for recurring generated skills. Also weigh recurring structural corrections across clients (read each .fpa/corrections/ for type: structural) - a human-authored pattern that repeats is strong signal.
  3. Present candidates ranked by evidence (support count + cross-client delta).
  4. Ratify. On your acceptance, pyfpa.promote_prior / pyfpa.promote_skill writes the ~/.fpa/library/ and library-log.md. Reversible.

Guardrails

  • Local-only; nothing phones home.
  • At least 3 clients to propose; tight-cluster only; a prior must not degrade held-out clients.
  • You ratify everything; priors are seeds, not mandates - each client's Loop A refines.

The payoff

New clients inherit the library: fpa-learn-business seeds their starting model from your promoted priors (pyfpa.seed_from_library) and offers the promoted skills.

Next

Promoted → the next new client onboarded via fpa-learn-business starts smarter.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.