# Performance Report

## Positive Findings

- List pages use server-side pagination.
- Common list pages eager-load visible relationships.
- Dashboard and reports use scoped aggregate queries.
- Search limits result sets.
- Useful indexes exist on branch/status/reference-style fields.

## Risks

- Reports weighted forecast currently loads opportunities into PHP for calculation.
- Large select dropdowns load all branch users/companies/contacts; this will not scale to very large data sets.
- No query-count instrumentation was run.
- No large dataset benchmark was run.

## Recommendations

- Move weighted forecast calculation to SQL.
- Add async searchable selects for large related-record lists.
- Add performance test command/seed for large data.

## Verdict

Acceptable for small/local datasets; not benchmarked for enterprise scale.
