diff --git a/EstateReportingAPI/Controllers/FactSettlementController.cs b/EstateReportingAPI/Controllers/FactSettlementController.cs
new file mode 100644
index 0000000..c7c464a
--- /dev/null
+++ b/EstateReportingAPI/Controllers/FactSettlementController.cs
@@ -0,0 +1,76 @@
+using EstateManagement.Database.Contexts;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System.Diagnostics.CodeAnalysis;
+
+namespace EstateReportingAPI.Controllers
+{
+ using Shared.EntityFramework;
+
+ [ExcludeFromCodeCoverage]
+ [Route(FactSettlementsController.ControllerRoute)]
+ [ApiController]
+ public class FactSettlementsController : ControllerBase
+ {
+ #region Others
+
+ ///
+ /// The controller name
+ ///
+ public const String ControllerName = "settlements";
+
+ ///
+ /// The controller route
+ ///
+ private const String ControllerRoute = "api/facts/" + FactSettlementsController.ControllerName;
+
+ #endregion
+
+ private readonly IDbContextFactory ContextFactory;
+
+ public FactSettlementsController(IDbContextFactory contextFactory)
+ {
+ this.ContextFactory = contextFactory;
+ }
+
+ private const String ConnectionStringIdentifier = "EstateReportingReadModel";
+
+ [HttpGet]
+ [Route("todayssettlement")]
+ public async Task TodaysSettlement([FromHeader] Guid estateId, [FromQuery] DateTime comparisonDate, CancellationToken cancellationToken)
+ {
+ EstateManagementGenericContext? context = await this.ContextFactory.GetContext(estateId, FactSettlementsController.ConnectionStringIdentifier, cancellationToken);
+
+ // First we need to get a value of todays sales
+ Decimal todaysSettlement = (from s in context.Settlements
+ join f in context.MerchantSettlementFees on s.SettlementReportingId equals f.SettlementReportingId
+ where f.IsSettled && s.SettlementDate == DateTime.Now.Date
+ select f.CalculatedValue).Sum();
+
+ Int32 todaysSettlementCount = (from s in context.Settlements
+ join f in context.MerchantSettlementFees on s.SettlementReportingId equals f.SettlementReportingId
+ where f.IsSettled && s.SettlementDate == DateTime.Now.Date
+ select f.CalculatedValue).Count();
+
+ Decimal comparisonSettlement = (from s in context.Settlements
+ join f in context.MerchantSettlementFees on s.SettlementReportingId equals f.SettlementReportingId
+ where f.IsSettled && s.SettlementDate == comparisonDate
+ select f.CalculatedValue).Sum();
+
+ Int32 comparisonSettlementCount = (from s in context.Settlements
+ join f in context.MerchantSettlementFees on s.SettlementReportingId equals f.SettlementReportingId
+ where f.IsSettled && s.SettlementDate == comparisonDate
+ select f.CalculatedValue).Count();
+
+ var response = new
+ {
+ TodaysSettlementValue = todaysSettlement,
+ TodaysSettlementCount = todaysSettlementCount,
+ ComparisonSettlement = comparisonSettlement,
+ ComparisonSettlementCount = comparisonSettlementCount
+ };
+
+ return this.Ok(response);
+ }
+ }
+}