Private analytics on a synthetic real estate portfolio. Everything runs on this computer.
PIQ_DEMO_PASSWORD in the project's .env file.| # | Property | Occupancy | NOI YoY | TTM NOI | Budget | Shortfall | Rules triggered |
|---|
Answers come from verified calculations. The local model only explains them.
| Loan | Status | Covenant tests | Balance | Matures |
|---|
The API checks the signed-in user's token and loads only the funds they're granted (SQL join on user_portfolio_access).
Plain code (not the model) picks the answer type, or gives a fixed reply for unsupported questions.
A fixed, parameterized query computes the numbers. The model never sees SQL and never does math.
qwen3:4b-instruct-2507-q4_K_M on Ollama at 127.0.0.1. It gets the question, a verified summary and the minimized facts.
Every $ and % in the draft must match the facts; flagged properties must all be named. Otherwise the verified summary is shown.
Shown with the facts used, the record IDs, and a link to this trace.
| Answer type | Facts come from |
|---|---|
| underperforming_summary | finance.prioritize |
| portfolio_summary | chat.portfolio_totals |
| property_why | analytics.monthly_series (trend) |
| When | User | Answer type | Answer | Numbers | Model | Total |
|---|
| Model | Role | Family | Parameters | Quantization | Size | Allowlisted | In memory | Digest |
|---|---|---|---|---|---|---|---|---|
qwen3:4b-instruct-2507-q4_K_M tools, thinking, completion | chat (in use) | qwen3 | 4.0B | Q4_K_M | 2.50 GB | ✓ Yes | No | 0edcdef34593 |
nomic-embed-text:latest embedding | embeddings (reserved for document search) | nomic-bert | 137M | F16 | 0.27 GB | ✓ Yes | No | 0a109f422b47 |
qwen3:4b completion, tools, thinking | installed, not used | qwen3 | 4.0B | Q4_K_M | 2.50 GB | ✓ Yes | No | 359d7dd4bcda |
| Function | Kind | Returns | Scope | Used by |
|---|
| Table | What it holds | Columns | Rows | Links to |
|---|
| When | Step | Mode | Test connection to the internet | Outside connections | From PropertyIQ programs |
|---|
Ollama, the API (Python), the web app (Node.js) and Docker Desktop can't reach the internet. They still talk to each other on this PC. Everything else on the computer, including remote access, keeps working.
Blocks all outbound internet traffic from this PC. Your local network and PropertyIQ keep working.
Removes every PropertyIQ firewall rule and puts the firewall back exactly as it was.
| Result | Check | Evidence |
|---|---|---|
| ✓ Pass | PropertyIQ API listens on this PC only | Port 8000 listens on 127.0.0.1 only (loopback). |
| ✓ Pass | PropertyIQ web app listens on this PC only | Port 3000 listens on 127.0.0.1 only (loopback). |
| ✓ Pass | Postgres (Docker) listens on this PC only | Port 5432 listens on 127.0.0.1 only (loopback). |
| ✓ Pass | Ollama (local model) listens on this PC only | Port 11434 listens on 127.0.0.1 only (loopback). |
| Result | Check | Evidence |
|---|---|---|
| ✓ Pass | Lockdown status | On: PropertyIQ programs blocked. 7 PropertyIQ firewall rules; since 2026-10-13T14:31:58. |
| ! Warning | Windows Firewall is the firewall in charge | McAfee is registered as the active firewall, so it may override Windows Firewall rules. The connection tests below show whether blocking really works. |
| ✓ Pass | The PropertyIQ API (Python) can't reach the internet | Test connection to 1.1.1.1:443: blocked. |
| ✓ Pass | The database container can't reach the internet | Test connection to 1.1.1.1:443: blocked. |
| i Info | Remote-access software | Running: AnyViewer. 'Whole computer' lockdown will disconnect remote sessions; 'PropertyIQ programs' lockdown won't. |
Scripted loop recreated from PropertyIQ screenshots. All data is synthetic.