---
id: financeiros/carteira-do-fundo
industry: Financial services
usage: common
effort: high
grain: Contract x closing date (tape); instrument x reference date (inventory); ledger account x date (trial balance); quota series x date
---

# Fund portfolio

A loan tape per contract at every closing date, with balance, status, provision, deferred revenue and fund quotas, that matches the fund administrator and serves reporting, audit and portfolio sales.

## Executive summary

**For:** FIDC managers, securitizers, lending fintechs and funding platforms that close the portfolio every month and report to investors.

**What it solves**

- Each contract's balance, status and provision at the closing date match the administrator and do not change after being reported.
- The fund's balance sheet, income statement and quotas come from the administrator's files, with no hand-built spreadsheet.
- The dataset to sell or assign the portfolio is ready, with personal data isolated.

**Why it matters:** The portfolio is the fund's asset: it drives the quota value, the provision, the revenue and the price in a sale. When the tape is recalculated over itself, a sold contract returns to the portfolio or a charge-off disappears, and the number sent to the investor no longer matches the auditor's. Building the balance sheet and quotas from the administrator's files turns Nekt into the fund's analytical ledger.

**Business questions it answers**

- What was the portfolio's principal and interest balance at the September close?
- How much of the portfolio is past due, charged off or sold at this close?
- How much origination fee is still deferred?
- What were the fund's net asset value and its senior and subordinated quotas this month?
- What changed in the portfolio between this close and the previous one, and why?
- Which contracts go into the sale dataset for this portfolio?

**What you need**

- The contract or receivables source connected to Nekt: core, servicer or receivables system
- The fund administrator's files arriving by SFTP or shared folder
- The closing cutoff date and the status, provision and charge-off policy

**What you get**

- A tape per contract and closing date that only grows
- Trial balance, ledger, balance sheet, income statement and quotas by fund and date
- A month-over-month check that blocks a close outside the expected range
- An AI agent that answers about the portfolio with the right status and date

## Detailed

### The problem

The core shows the contract as it is today: the sold one disappears, the charged-off one shows a zero balance and the origination fee already appears in full as revenue. The administrator delivers trial balance, ledger and portfolio composition in files that repeat and change headers. Whoever builds the close from today's snapshot and adds up the files without deduplicating rewrites the past, counts entries twice and ends up with a quota that does not match the administrator's.

### Business rules

1. **The tape is a snapshot per closing date.** Write one row per contract at each closing date, with balances, status, days past due, provision and deferred revenue. The table only grows: each run appends closing dates after the last one written and never rewrites a closed date. Reprocessing the current month is allowed until the close; after that, adjustments go into the next close. (Avoid: Recalculating every close from the core's current snapshot.)
2. **Exclusive status, in priority order.** Each contract has a single status on the date: sold or assigned (only from the sale date), in judicial recovery or bankruptcy, charged off, paid off and in portfolio. A contract disbursed after the cutoff stays out of that close. The status drives the balance: in portfolio carries the outstanding balance; charged off has a zero balance and the amount goes to cumulative charge-off; judicial recovery keeps the balance while the filing is pending and becomes a loss when it is approved or discharged; sold leaves the portfolio and the provision. (Avoid: Marking as sold, in every close, the contract that was sold today.)
3. **A charge-off does not come back.** The core may zero out the charged-off amount after a renegotiation or a migration. On the tape, the contract's cumulative charge-off is the greater of what the core reports and the previous tape. Recoveries after the charge-off go into their own column, without reducing the charge-off. (Avoid: Reading the charge-off from the core at every close.)
4. **A missing metric inherits the last close, flagged.** When the core does not send a metric for a contract on a date (interest paid, fee, unpaid balance), use the last non-null value from a previous close and keep the date it came from. That way an incomplete file does not zero out the contract, and the number's origin stays traceable. (Avoid: Filling nulls with zero.)
5. **Origination fee is deferred revenue.** The fee charged at origination is recognized over the life of the contract. Deferred revenue = fee received minus the part already recognized, by proportion paid or by elapsed term, as the policy says. A sold or charged-off contract recognizes or reverses the deferred balance at the close of the event. (Avoid: Recognizing the whole fee in the origination month.)
6. **The administrator's inventory is the source when it exists.** The inventory file carries, per instrument and reference date, nominal value, present value, acquisition value, PDD (loan-loss provision) bucket and amount, the date the fund acquired it and the adjusted due date. Use the ready values and the latest reference date for the position. Instruments in the write-off buckets stay out of the active inventory and go into losses. (Avoid: Recalculating the PDD and present value the administrator already delivered.)
7. **Fund, securitizer and vehicles kept apart.** The same system often holds the fund and other group companies, such as the securitizer, under a company code. Every answer states whether it refers to the fund, another vehicle or the consolidated view. An assignment between vehicles within scope does not change the asset balance; an assignment out of scope leaves the portfolio on the assignment date. (Avoid: Adding fund and securitizer together without saying so.)
8. **Fund accounting from the right file.** The balance sheet comes from the administrator's trial balance. The income statement comes from the accounting ledger, with effective entries only (types A and M); opening balance (I) and closing or total (F) lines do not enter. The ledger arrives in cumulative files that repeat the period: deduplicate on the entry hash, without the file name, keeping the most recent file. The last date of each month is the close; the current month is the current position. (Avoid: Building the income statement from the trial balance or adding up every ledger file.)
9. **Net assets and quotas on the same date.** Economic net assets are the accounting equity plus the result not yet incorporated, equal to assets minus liabilities. Senior and subordinated quotas come from the portfolio composition for the same date, or the last one before it within the same month, never a future date. The difference between net assets and the sum of the series sits on a visible unallocated adjustment line. (Avoid: Using the most recent portfolio composition for any date.)
10. **Month-over-month check before publishing.** Compare each metric with the previous close and block the close when the change exceeds the limit: for example, 10% on contract count, 15% on principal balance, 20% on interest and deferred revenue, 25% on provision, 30% on charge-offs and 40% on recoveries. A first close and a metric with no history stay as a warning, not an approval. (Avoid: Publishing the close because the pipeline ran without errors.)

### How each contract enters the tape

Status on the closing date, in priority order.

- **sale or assignment date <= closing date** → Sold or assigned (`out of the portfolio and the provision`)
- **filing pending; approved or discharged becomes a loss** → Judicial recovery or bankruptcy (`balance kept, provision at a fixed factor`)
- **charged off in the core or in a write-off bucket** → Charged off (`balance 0, cumulative charge-off`)
- **balance paid off by the date** → Paid off (`balance 0`)
- **active, disbursed by the cutoff date** → In portfolio (`outstanding balance, days past due, provision`)
- **disbursed after the cutoff date** → Outside this close

### Definitions

| Metric | Definition |
|---|---|
| Principal balance | unpaid principal of contracts in portfolio at the closing date; zero for sold, paid off and charged off |
| Outstanding balance | principal plus unpaid interest and charges of contracts in portfolio, at the closing date |
| Cumulative charge-off | greater of the charge-off reported by the core and the previous tape's, per contract |
| Provision | outstanding balance times the policy factors (by days-past-due bucket, by balance bucket and by employer or payroll agreement, multiplied); judicial recovery at a fixed factor; or the PDD amount from the administrator's inventory when it exists |
| Deferred origination revenue | origination fee received minus the part recognized up to the closing date, per contract |
| Inventory present value | sum of the present value reported by the administrator per instrument, at the latest reference date, without the write-off buckets |
| Economic net assets | equity accounts plus the period's income statement accounts, equal to assets minus liabilities, by fund and date |
| Subordination ratio | net assets of the subordinated quotas / the fund's economic net assets, on the same date |

### Pitfalls

- **Wrong file in the same folder.** Two administrator files with similar names (portfolio composition and asset composition) were read together and mixed quotas with instruments. How to avoid: Filter files by an exact name pattern and fail when a valid file cannot be read.
- **Ledger counted twice.** Cumulative ledger reports repeated the whole period every day, and a hash that included the file name let the same entry through several times. How to avoid: Hash the entry without the source file, keeping the most recent.
- **Adjustment hidden in the code.** Days past due for some contracts were hard-coded in the query, by id, and nobody remembered why. How to avoid: An exceptions table per contract, with reason, author and date.
- **A charge-off that vanishes.** After a renegotiation, the core zeroed the charged-off amount and last month's loss disappeared from the next close. How to avoid: Cumulative charge-off as the greater of the current and previous values.
- **Renaming breaks consumers.** Tables promoted from staging to production under a different name left reports and the agent reading stale tables. How to avoid: A stable output name, with the version in a column, not in the name.
- **Personal data in the sale dataset.** The dataset for the portfolio buyer combined borrowers' contact, employment and bankruptcy status in the open layer. How to avoid: Build the sale dataset in a restricted layer and deliver only the fields in the assignment agreement.

### Acceptance test

- [ ] For each closing date, the tape's principal balance matches the core or administrator report (difference below 0.5%).
- [ ] Each contract has exactly one status per closing date, and no sold contract shows a balance or provision from the sale date on.
- [ ] Running the pipeline again does not change any row of a closing date already written.
- [ ] Assets minus liabilities on the balance sheet equal economic net assets, and senior plus subordinated quotas plus unallocated adjustment equal net assets, by fund and date.
- [ ] No ledger entry appears twice in the income statement, and the income statement has no opening or closing balance lines.

### Context document

```text
Fund portfolio
- Tape: one row per contract and closing date in <table>. A closed closing date is never recalculated. Always filter the closing date.
- Status by priority: sold or assigned (from the sale date), judicial recovery or bankruptcy, charged off, paid off, in portfolio. Disbursed after the cutoff date stays out of the close.
- Balance: in portfolio = outstanding balance; charged off = 0 with cumulative charge-off; sold = out of the portfolio and the provision.
- Cumulative charge-off = greater of the core value and the previous tape's. Recoveries in their own column.
- Deferred origination revenue = fee received - part recognized up to the date.
- Administrator inventory in <table>: use the ready nominal value, present value, bucket and PDD, from the latest reference date. Buckets <WOP/WOM> are write-off and stay out of the active inventory.
- Company: <code 1> = fund, <code 2> = securitizer. If the question does not say which, ask whether they want them separate, one of them or consolidated.
- Balance sheet from the trial balance; income statement from the ledger with entries A and M, without I and F. Last day of the month = close.
- Economic net assets = assets - liabilities. Senior and subordinated quotas from the portfolio composition for the same date.
- Never expose borrowers' personal data. The sale dataset lives in <restricted layer>.
Client exceptions:
- <client>: contracts sold before <date> have no sale date; treat them as sold from <date>.
- <client>: different provision factor for employer or payroll agreement <group>.
```

### Variations

- **Portfolio sale or assignment:** A dataset from the last close with the fields agreed with the buyer, built in a restricted layer and checked against the tape.
- **Trade receivables FIDC:** Inventory per instrument with assignor, debtor and collection label, exposure by assignor and the administrator's PDD.
- **Real estate funding:** Capital deployed per project, realized contributions minus buybacks, reconciled between the finance control sheet and the operational base.
