> For the complete documentation index, see [llms.txt](https://api-docs.realfinity.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.realfinity.io/api/api-reference/reports.md).

# Reports

Loan reporting and analytics. Every endpoint is scoped to the calling application's company by Realfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that.

## POST /reports/conditions-by-outcome

> Condition categories vs. loan outcomes

```json
{"openapi":"3.0.4","info":{"title":"HomeDashboard","version":"v1.2"},"tags":[{"name":"Reports","description":"Loan reporting and analytics. Every endpoint is scoped to the calling application's company by\r\nRealfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that."}],"servers":[{"url":"/homedashboard"}],"security":[{}],"paths":{"/reports/conditions-by-outcome":{"post":{"tags":["Reports"],"summary":"Condition categories vs. loan outcomes","requestBody":{"content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"}}}},"responses":{"200":{"description":"Per-category outcome counts","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"The client application is not authorized to access this resource"},"500":{"description":"Internal Server Error","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}},"components":{"schemas":{"Realfinity.Public.Api.Models.Reports.LoanFilterDto":{"type":"object","properties":{"searchText":{"type":"string","description":"Case-insensitive match on loan number and borrower first/last name and email. All whitespace-separated tokens must match.","nullable":true},"statuses":{"type":"array","items":{"type":"string"},"description":"Exact MLM status names, OR'd together (e.g. \"Loan Funded\", \"Loan Underwriting\").","nullable":true},"loanTypes":{"type":"array","items":{"type":"string"},"description":"Exact loan type names (e.g. \"Conventional\", \"FHA\", \"VA\"). See GET /reports/metadata.","nullable":true},"purposes":{"type":"array","items":{"type":"string"},"description":"Exact loan purpose names (e.g. \"Purchase\", \"Refinance\"). See GET /reports/metadata.","nullable":true},"statusDateFrom":{"type":"string","description":"Loans whose CURRENT status was set on/after this date. Not \"closed in period\" - use the milestones report for that.","format":"date-time","nullable":true},"statusDateTo":{"type":"string","format":"date-time","nullable":true},"closingDateFrom":{"type":"string","description":"Estimated closing date. Sparsely populated - an empty result usually means the field is unset, not that nothing closed.","format":"date-time","nullable":true},"closingDateTo":{"type":"string","format":"date-time","nullable":true},"updatedFrom":{"type":"string","format":"date-time","nullable":true},"updatedTo":{"type":"string","format":"date-time","nullable":true},"loanOfficerIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Restrict to these loan officers. Always applied in addition to your company scope, so it can only narrow the result.","nullable":true},"referringAgentId":{"type":"string","format":"uuid","nullable":true},"processorId":{"type":"string","format":"uuid","nullable":true},"loanAmountMin":{"type":"number","format":"double","nullable":true},"loanAmountMax":{"type":"number","format":"double","nullable":true},"commissionMin":{"type":"number","description":"Locked compensation range, in USD.","format":"double","nullable":true},"commissionMax":{"type":"number","format":"double","nullable":true},"propertyState":{"type":"string","description":"Two-letter subject-property state code, e.g. \"FL\".","nullable":true}},"additionalProperties":false,"description":"Caller-supplied loan filter for the reporting endpoints."},"Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeResponse":{"type":"object","properties":{"closedLoanTotal":{"type":"integer","format":"int32"},"failedLoanTotal":{"type":"integer","format":"int32"},"categories":{"type":"array","items":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeRow"},"nullable":true},"note":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Reporting.ConditionOutcomeRow":{"type":"object","properties":{"conditionCategory":{"type":"string","nullable":true},"closedLoanCount":{"type":"integer","format":"int32"},"failedLoanCount":{"type":"integer","format":"int32"},"closedConditionCount":{"type":"integer","format":"int32"},"failedConditionCount":{"type":"integer","format":"int32"},"failedShare":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## Loans reaching each milestone per period

> Reads persisted historical status crossings, so it still counts loans whose current status has> \
> since moved on. This is the endpoint for "how much did we close last quarter". A loan counts> \
> once per stage, in the period of its earliest crossing inside the look-back window, so the> \
> periods sum to unique loans; changing the look-back can move which period a loan falls in.

```json
{"openapi":"3.0.4","info":{"title":"HomeDashboard","version":"v1.2"},"tags":[{"name":"Reports","description":"Loan reporting and analytics. Every endpoint is scoped to the calling application's company by\r\nRealfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that."}],"servers":[{"url":"/homedashboard"}],"security":[{}],"paths":{"/reports/loan-milestones":{"get":{"tags":["Reports"],"summary":"Loans reaching each milestone per period","description":"Reads persisted historical status crossings, so it still counts loans whose current status has\r\nsince moved on. This is the endpoint for \"how much did we close last quarter\". A loan counts\r\nonce per stage, in the period of its earliest crossing inside the look-back window, so the\r\nperiods sum to unique loans; changing the look-back can move which period a loan falls in.","parameters":[{"name":"granularity","in":"query","schema":{"type":"string","default":"Month"}},{"name":"lookback","in":"query","schema":{"type":"integer","format":"int32","default":4}},{"name":"groupByNorthstar","in":"query","schema":{"type":"boolean","default":true}},{"name":"excludeStages","in":"query","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Milestone buckets","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse"}}}},"400":{"description":"Invalid granularity"},"401":{"description":"Unauthorized"},"403":{"description":"The client application is not authorized to access this resource"},"500":{"description":"Internal Server Error","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}},"components":{"schemas":{"Realfinity.Common.Models.Pos.Reporting.LoanMilestoneReportResponse":{"type":"object","properties":{"granularity":{"type":"string","nullable":true},"groupBy":{"type":"string","nullable":true},"truncated":{"type":"boolean"},"note":{"type":"string","nullable":true},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.MilestoneBucket"},"nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Reporting.MilestoneBucket":{"type":"object","properties":{"period":{"type":"string","nullable":true},"stage":{"type":"string","nullable":true},"stageOrder":{"type":"integer","format":"int32"},"loanCount":{"type":"integer","format":"int32"},"loanAmount":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## GET /reports/loan-pipeline

> Current pipeline by stage, with monthly trend

```json
{"openapi":"3.0.4","info":{"title":"HomeDashboard","version":"v1.2"},"tags":[{"name":"Reports","description":"Loan reporting and analytics. Every endpoint is scoped to the calling application's company by\r\nRealfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that."}],"servers":[{"url":"/homedashboard"}],"security":[{}],"paths":{"/reports/loan-pipeline":{"get":{"tags":["Reports"],"summary":"Current pipeline by stage, with monthly trend","parameters":[{"name":"lookbackMonths","in":"query","schema":{"type":"integer","format":"int32","default":3}}],"responses":{"200":{"description":"Pipeline snapshot","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"The client application is not authorized to access this resource"},"500":{"description":"Internal Server Error","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}},"components":{"schemas":{"Realfinity.Common.Models.Pos.Reporting.LoanPipelineReportResponse":{"type":"object","properties":{"currentPipelineByStage":{"type":"array","items":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelineStageCount"},"nullable":true},"monthlyTrend":{"type":"array","items":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanPipelinePeriodCount"},"nullable":true},"activeLoanCount":{"type":"integer","format":"int32"},"note":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Reporting.LoanPipelineStageCount":{"type":"object","properties":{"stage":{"type":"string","nullable":true},"order":{"type":"integer","format":"int32"},"isTerminal":{"type":"boolean"},"count":{"type":"integer","format":"int32"},"totalLoanAmount":{"type":"number","format":"double","nullable":true},"statuses":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Reporting.LoanPipelinePeriodCount":{"type":"object","properties":{"period":{"type":"string","nullable":true},"count":{"type":"integer","format":"int32"},"totalLoanAmount":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## GET /reports/loan-tasks

> Search loan tasks and conditions

```json
{"openapi":"3.0.4","info":{"title":"HomeDashboard","version":"v1.2"},"tags":[{"name":"Reports","description":"Loan reporting and analytics. Every endpoint is scoped to the calling application's company by\r\nRealfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that."}],"servers":[{"url":"/homedashboard"}],"security":[{}],"paths":{"/reports/loan-tasks":{"get":{"tags":["Reports"],"summary":"Search loan tasks and conditions","parameters":[{"name":"searchText","in":"query","schema":{"type":"string"}},{"name":"taskStatus","in":"query","schema":{"type":"string"}},{"name":"conditionCategory","in":"query","schema":{"type":"string"}},{"name":"assignedToUserName","in":"query","schema":{"type":"string"}},{"name":"orderBy","in":"query","schema":{"type":"string"}},{"name":"top","in":"query","schema":{"type":"integer","format":"int32","default":25}},{"name":"skip","in":"query","schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"Matching tasks","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.GetTasksPipelineResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"The client application is not authorized to access this resource"},"500":{"description":"Internal Server Error","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}},"components":{"schemas":{"Realfinity.Common.Models.Pos.GetTasksPipelineResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32"},"value":{"type":"array","items":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.TaskPipelineItem"},"nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.TaskPipelineItem":{"type":"object","properties":{"loanApplicationId":{"type":"string","format":"uuid"},"externalLoanNumber":{"type":"string","nullable":true},"borrowers":{"type":"array","items":{"type":"string"},"nullable":true},"agent":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.LoanAppUser"},"referredBy":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.LoanAppUser"},"id":{"type":"string","format":"uuid","nullable":true},"taskStatusTimestamp":{"type":"string","format":"date-time","nullable":true},"updatedTimestamp":{"type":"string","format":"date-time"},"createdTimestamp":{"type":"string","format":"date-time"},"item":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Item"},"assignedToBorrowerId":{"type":"string","format":"uuid","nullable":true},"status":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.TaskStatus"},"document":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Document"},"rejectionReasonNote":{"type":"string","nullable":true},"rejectionReason":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.TaskRejectionReason"},"creditReportType":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.CreditReportType"},"isForPrimaryBorrower":{"type":"boolean","nullable":true},"isRequired":{"type":"boolean"},"isAccountMainTask":{"type":"boolean"},"questionType":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.TaskQuestionType"},"yesNoResponse":{"type":"boolean","nullable":true},"shortAnswer":{"type":"string","nullable":true},"assignedToUser":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.LoanAppUser"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"displayOrder":{"type":"integer","format":"int32","nullable":true},"type":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.TaskType"},"code":{"type":"string","nullable":true},"conditionNo":{"type":"integer","format":"int32","nullable":true},"conditionCategory":{"type":"string","nullable":true},"conditionDueDate":{"type":"string","format":"date","nullable":true},"conditionAssignedUserFullName":{"type":"string","nullable":true},"conditionBorrowerFullName":{"type":"string","nullable":true},"conditionAppliesToBorrower":{"type":"boolean","nullable":true},"notes":{"type":"string","nullable":true},"taskAssignmentType":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.TaskAssignmentType"},"isSubscribed":{"type":"boolean","nullable":true},"conditionTaskId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.LoanAppUser":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Item":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"canCreateManually":{"type":"boolean"},"canUploadDocument":{"type":"boolean"}},"additionalProperties":false},"Realfinity.Common.Models.Pos.TaskStatus":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Document":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"externalId":{"type":"string","nullable":true},"isPdfConversionComplete":{"type":"boolean"},"loanApplicationId":{"type":"string","format":"uuid","nullable":true},"loanApplicationTaskId":{"type":"string","format":"uuid","nullable":true},"blobName":{"type":"string","nullable":true},"createdTimestamp":{"type":"string","format":"date-time"},"updatedTimestamp":{"type":"string","format":"date-time"},"updatedBy":{"type":"string","format":"uuid","nullable":true},"documentTypeId":{"type":"string","format":"uuid","nullable":true},"isVault":{"type":"boolean"},"loanDocumentTypeId":{"type":"string","format":"uuid","nullable":true},"loanDocumentTypeName":{"type":"string","nullable":true},"loanDocumentTypeExternalId":{"type":"string","nullable":true},"loanDocumentTypeFolderName":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"isDeleted":{"type":"boolean"},"isInternal":{"type":"boolean"},"isObsolete":{"type":"boolean"},"title":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.TaskRejectionReason":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"code":{"type":"string","nullable":true},"displayOrder":{"type":"integer","format":"int32","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.CreditReportType":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.TaskQuestionType":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"code":{"type":"string","nullable":true},"displayOrder":{"type":"integer","format":"int32","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.TaskType":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.TaskAssignmentType":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## Aggregate loans by dimension and metric

> A point-in-time aggregate over loans' CURRENT attributes. It cannot answer "how much did we> \
> close in period X" - loans do not stay at a terminal status, so a current-status filter> \
> undercounts badly. Use the milestones report for that.

```json
{"openapi":"3.0.4","info":{"title":"HomeDashboard","version":"v1.2"},"tags":[{"name":"Reports","description":"Loan reporting and analytics. Every endpoint is scoped to the calling application's company by\r\nRealfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that."}],"servers":[{"url":"/homedashboard"}],"security":[{}],"paths":{"/reports/loans":{"post":{"tags":["Reports"],"summary":"Aggregate loans by dimension and metric","description":"A point-in-time aggregate over loans' CURRENT attributes. It cannot answer \"how much did we\r\nclose in period X\" - loans do not stay at a terminal status, so a current-status filter\r\nundercounts badly. Use the milestones report for that.","requestBody":{"content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto"}}}},"responses":{"200":{"description":"Aggregation buckets","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"The client application is not authorized to access this resource"},"500":{"description":"Internal Server Error","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}},"components":{"schemas":{"Realfinity.Public.Api.Models.Reports.ReportLoansRequestDto":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/Realfinity.Public.Api.Models.Reports.LoanFilterDto"},"groupBy":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanGroupByDimension"},"metric":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMetricFunction"},"metricField":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanMetricField"},"dateField":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanDateField"}},"additionalProperties":false,"description":"Group-by + metric aggregation over the loan snapshot."},"Realfinity.Public.Api.Models.Reports.LoanFilterDto":{"type":"object","properties":{"searchText":{"type":"string","description":"Case-insensitive match on loan number and borrower first/last name and email. All whitespace-separated tokens must match.","nullable":true},"statuses":{"type":"array","items":{"type":"string"},"description":"Exact MLM status names, OR'd together (e.g. \"Loan Funded\", \"Loan Underwriting\").","nullable":true},"loanTypes":{"type":"array","items":{"type":"string"},"description":"Exact loan type names (e.g. \"Conventional\", \"FHA\", \"VA\"). See GET /reports/metadata.","nullable":true},"purposes":{"type":"array","items":{"type":"string"},"description":"Exact loan purpose names (e.g. \"Purchase\", \"Refinance\"). See GET /reports/metadata.","nullable":true},"statusDateFrom":{"type":"string","description":"Loans whose CURRENT status was set on/after this date. Not \"closed in period\" - use the milestones report for that.","format":"date-time","nullable":true},"statusDateTo":{"type":"string","format":"date-time","nullable":true},"closingDateFrom":{"type":"string","description":"Estimated closing date. Sparsely populated - an empty result usually means the field is unset, not that nothing closed.","format":"date-time","nullable":true},"closingDateTo":{"type":"string","format":"date-time","nullable":true},"updatedFrom":{"type":"string","format":"date-time","nullable":true},"updatedTo":{"type":"string","format":"date-time","nullable":true},"loanOfficerIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Restrict to these loan officers. Always applied in addition to your company scope, so it can only narrow the result.","nullable":true},"referringAgentId":{"type":"string","format":"uuid","nullable":true},"processorId":{"type":"string","format":"uuid","nullable":true},"loanAmountMin":{"type":"number","format":"double","nullable":true},"loanAmountMax":{"type":"number","format":"double","nullable":true},"commissionMin":{"type":"number","description":"Locked compensation range, in USD.","format":"double","nullable":true},"commissionMax":{"type":"number","format":"double","nullable":true},"propertyState":{"type":"string","description":"Two-letter subject-property state code, e.g. \"FL\".","nullable":true}},"additionalProperties":false,"description":"Caller-supplied loan filter for the reporting endpoints."},"Realfinity.Common.Models.Pos.Reporting.LoanGroupByDimension":{"enum":["None","Status","LoanType","Purpose","LoanOfficer","ReferringAgent","Month","Quarter","Year"],"type":"string"},"Realfinity.Common.Models.Pos.Reporting.LoanMetricFunction":{"enum":["Count","Sum","Average","Min","Max"],"type":"string"},"Realfinity.Common.Models.Pos.Reporting.LoanMetricField":{"enum":["LoanAmount","LockedCompensation","EstimatedCompensation"],"type":"string"},"Realfinity.Common.Models.Pos.Reporting.LoanDateField":{"enum":["StatusDate","ClosingDate","Updated"],"type":"string"},"Realfinity.Common.Models.Pos.Reporting.LoanAggregationResponse":{"type":"object","properties":{"groupBy":{"type":"string","nullable":true},"metric":{"type":"string","nullable":true},"function":{"type":"string","nullable":true},"totalCount":{"type":"integer","format":"int32"},"bucketCount":{"type":"integer","format":"int32"},"truncated":{"type":"boolean"},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanAggregationBucket"},"nullable":true}},"additionalProperties":false},"Realfinity.Common.Models.Pos.Reporting.LoanAggregationBucket":{"type":"object","properties":{"key":{"type":"string","nullable":true},"keyId":{"type":"string","format":"uuid","nullable":true},"count":{"type":"integer","format":"int32"},"sum":{"type":"number","format":"double","nullable":true},"average":{"type":"number","format":"double","nullable":true},"min":{"type":"number","format":"double","nullable":true},"max":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## GET /reports/metadata

> Valid values accepted by the reporting endpoints

```json
{"openapi":"3.0.4","info":{"title":"HomeDashboard","version":"v1.2"},"tags":[{"name":"Reports","description":"Loan reporting and analytics. Every endpoint is scoped to the calling application's company by\r\nRealfinity.Public.Api.Security.ICompanyScopeProvider; there is no way for a caller to widen that."}],"servers":[{"url":"/homedashboard"}],"security":[{}],"paths":{"/reports/metadata":{"get":{"tags":["Reports"],"summary":"Valid values accepted by the reporting endpoints","responses":{"200":{"description":"Reporting vocabulary","content":{"application/json;odata.metadata=minimal;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.streaming=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.streaming=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=minimal;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=full;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.metadata=none;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.streaming=true;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;odata.streaming=false;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;IEEE754Compatible=false":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/json;IEEE754Compatible=true":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"The client application is not authorized to access this resource"}}}}},"components":{"schemas":{"Realfinity.Common.Models.Pos.Reporting.LoanReportingMetadataResponse":{"type":"object","properties":{"statuses":{"type":"array","items":{"type":"string"},"nullable":true},"loanTypes":{"type":"array","items":{"type":"string"},"nullable":true},"purposes":{"type":"array","items":{"type":"string"},"nullable":true},"groupByDimensions":{"type":"array","items":{"type":"string"},"nullable":true},"metricFunctions":{"type":"array","items":{"type":"string"},"nullable":true},"metricFields":{"type":"array","items":{"type":"string"},"nullable":true},"dateFields":{"type":"array","items":{"type":"string"},"nullable":true},"orderByOptions":{"type":"array","items":{"type":"string"},"nullable":true},"northstarStages":{"type":"array","items":{"type":"string"},"nullable":true},"milestoneGranularities":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false}}}}
```
