Stackrate

Odoo vs Xero vs Sage Intacct for ERP & Core Accounting

Published May 11, 2026 · 4 requirements · 3 vendors

Share:

Executive Summary

4/11 supported
Vendor fit ranking. Each row is a vendor with their weighted fit score and evidence confidence grade.
VendorFitConfidence
Sage Intacct83% · Strong fit
B · Solid
Odoo65% · Good fit
A · High
Xero19% · Significant gaps
A · High

For a $180M, 8-entity operation where the controller loses 12+ days each month to manual intercompany eliminations and the board demands audit-ready financials within a year, Sage Intacct is the strongest fit at 83% overall (2/2 critical requirements met), delivering native real-time consolidation with automated intercompany eliminations, SAML 2.0 SSO via the Microsoft Entra gallery, and a contractual 99.5% uptime SLA with defined severity tiers. Its one gap is the lack of a built-in customer payment portal, requiring a certified marketplace add-on such as Versapay or Sage AR Automation, which the buyer should budget and scope alongside the core implementation. Odoo lands at 65% overall (2/2 critical met) but carries material risk: its consolidation module handles intercompany entries through journal exclusion rather than formal double-entry elimination postings, meaning the controller would likely need custom development or a third-party consolidation layer to produce audit-grade group statements on the board's timeline, and its published 99.9% uptime target is explicitly non-binding with no severity framework or service credits. Xero is the weakest option at 19% overall (1/2 critical met), with no native consolidation capability whatsoever: producing group financials would require exporting data from each of 8 isolated Xero organizations into spreadsheets and performing manual eliminations, replicating the exact workflow this project is meant to eliminate. Sage Intacct should be advanced to detailed scoping, with early validation of its AR portal add-on for US/Canada multi-entity payment routing and confirmation that SCIM provisioning for 320 users can be handled through its XML API or a third-party connector.

Vendor Verdicts

Comparison Matrix

RequirementOdooXeroSage Intacct

Customer portal for invoice access and online payment

SupportedPartialPartial

Real-time consolidated financial statements (not batch/overnight)

PartialNot supportedSupported

SSO via Azure Active Directory

PartialN/ASupported

Guaranteed 99.5%+ uptime SLA with defined severity levels and response times

PartialNot supportedSupported

Detailed Findings

Critical · Customer portal for invoice access and online payment

Odoo: SupportedXero: PartialSage Intacct: Partial

SummaryOdoo supports this: For a $180M professional services and distribution company moving off QuickBooks Enterprise, Odoo delivers a fully native customer-facing AR portal without any third-party add-on. Xero partially supports this: For a $180M professional services and distribution company expecting a self-service customer portal, Xero's mechanism works as follows: when a seller sends an invoice, the customer receives a unique email link to an 'Online Invoice' page where they can view and pay that specific invoice using a connected payment service. Sage Intacct partially supports this: For a $180M multi-entity professional services and distribution company preparing for audited financials, Sage Intacct's native AR module handles invoice creation, delivery, and payment recording internally but does not ship with a branded, customer-facing self-service portal out of the box.

OdooSupported · 97% fit · Grade A

Supported

For a $180M professional services and distribution company moving off QuickBooks Enterprise, Odoo delivers a fully native customer-facing AR portal without any third-party add-on. The mechanism works as follows: an administrator enables "Invoice Online Payment" under Accounting > Configuration > Settings > Customer Payments, then grants portal access to each customer contact via the "Grant portal access" action on the contact record. Once an invoice is issued, the staff member clicks Send, and the customer receives an email with a link redirecting them to the invoice on their Customer Portal. As documented across Odoo v13 through v19, activating Invoice Online Payment adds a "Pay Now" button on the Customer Portal, allowing customers to see their invoices online and pay directly with their favorite payment method. After logging in, customers access their portal by clicking their username and selecting "My Account," where they can view all their documents in one place, including invoices. Payment processing is handled by Odoo's embedded Payment Provider framework: Odoo embeds several payment providers that allow customers to pay on their customer portals, covering invoices with payment methods such as credit cards. For US-based entities, ACH is supported: starting in Odoo 17, ACH in Stripe is supported, and from Odoo 15 onward, ACH payments via Authorize.net support one-shot flows including online invoices. Payment confirmation closes the loop in the AR subledger automatically: the journal entry is recorded directly when Odoo receives confirmation of payment authentication from the online payment provider. Odoo apps delegate sensitive information handling to the certified payment provider, and no sensitive information such as credit card numbers is stored on Odoo servers.

Limitations

ACH availability for the buyer's US and Canadian entities requires configuring a supported payment provider (Authorize.net or Stripe) with ACH/eCheck activated on that provider's account; it is not on by default. The portal presents invoices per-entity as issued, so customers transacting with multiple of the buyer's 8 legal entities will see separate invoice lists per entity rather than a single consolidated statement across all entities.

Was this accurate?

Are you from Odoo?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

XeroPartially supported · 88% fit · Grade A

Partial

For a $180M professional services and distribution company expecting a self-service customer portal, Xero's mechanism works as follows: when a seller sends an invoice, the customer receives a unique email link to an 'Online Invoice' page where they can view and pay that specific invoice using a connected payment service. Xero enables a 'pay now' button on online invoices, and customers click it to pay directly from their invoice. When an online payment is received, Xero marks the invoice as paid and reconciles the payment automatically. Payment services supported include Stripe, GoCardless, and Square. As of October 2025, Xero confirmed that bulk payment of multiple outstanding invoices from an emailed customer statement is now live, with a 'Review and pay' option that takes customers to an online statement view where they can pay via Stripe. However, there is no persistent customer login portal: customers cannot independently log in at any time to browse their invoice history, download documents, or view account status without first receiving a new link from the seller. A third-party solution such as Method CRM is explicitly positioned as the way to give Xero customers a 'custom online portal' for full self-service access.

Limitations

This buyer's AR customers, particularly business accounts in a $180M professional services and distribution context, will not have a persistent, login-based portal to self-serve invoice history; access is entirely link-driven and seller-initiated, meaning customers cannot retrieve past invoices without staff action. The bulk-pay statement feature requires Stripe specifically and does not cover ACH or other payment methods natively, and full portal history browsing requires a third-party add-on.

Based on

  • Know your numbers. Control your cash flow. Automated invoices, online payments, and real-time reporting to save you time. (hub, hero) source
  • Automated features to save you time. From reconciling bank transactions to sending invoice reminders, Xero works for you. (hub, body) source
Was this accurate?

Are you from Xero?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

Sage IntacctPartially supported · 90% fit · Evidence: insufficient

Partial
?

For a $180M multi-entity professional services and distribution company preparing for audited financials, Sage Intacct's native AR module handles invoice creation, delivery, and payment recording internally but does not ship with a branded, customer-facing self-service portal out of the box. Both Sage Intacct and Sage 100 share the same core gap: Sage tracks AR but doesn't automate the payment collection and cash application workflow around it. The standard path to a full customer portal is via certified Sage Intacct Marketplace partners. Versapay, for example, provides an easy-to-use online self-service portal with 24/7 access to payment processing data; payments are synced immediately in Sage Intacct, and customers can view open and paid invoices, download PDFs, and pay multiple open invoices. Other certified options include Quadient AR, EBizCharge, Paystand, and Invoiced, all of which write payment status back to the Intacct AR subledger in real time. Sage also offers its own Sage AR Automation product, which helps customers see what's due and make payments through a secure self-service portal that automatically syncs with the ERP, and it connects to Sage Intacct among 40+ ERPs. A newer native option is emerging: Customer Payment Services powered by Fortis introduces a secure, self-service experience for customers to make electronic payments, with instant settlement and automated reconciliation to reduce manual AR work; it is currently available to Early Adopters globally.

Limitations

No branded customer-facing invoice portal is included in the base Sage Intacct subscription; achieving this requirement means procuring and implementing a separate certified integration (Versapay, Quadient, EBizCharge, Sage AR Automation, etc.) or waiting for the Fortis-powered Customer Payment Services to exit Early Adopter status, both of which add cost, implementation scope, and timeline risk against the buyer's 12-month audit deadline. The buyer should budget for this add-on as a separate line item and validate US/Canada multi-entity payment routing with the chosen partner before contract.

Based on

  • Automate billing – Customize invoices, streamline payment processing and get paid faster. (product, body) source
  • Online invoicing – Generate and send invoices automatically, add secure online payments, and manage invoices on the go. (product, body) source
Was this accurate?

Are you from Sage Intacct?

This assessment uses AI inference. Upload official documentation to verify and strengthen these findings.

Claim & Respond

Critical · Real-time consolidated financial statements (not batch/overnight)

Sage Intacct: SupportedOdoo: PartialXero: Not supported

SummarySage Intacct supports this: For a $180M company with 8 legal entities across the US and Canada, Sage Intacct's native Global Consolidations module directly addresses the real-time consolidation requirement. Odoo partially supports this: For a $180M company migrating from QuickBooks with 8 legal entities across the US and Canada, Odoo addresses this requirement through its native Consolidation module introduced in v18/v19, running against a single shared PostgreSQL database. Xero does not support this: This buyer operates 8 legal entities across the US and Canada and needs consolidated financials available on-demand, not on a batch schedule.

Sage IntacctSupported · 90% fit · Grade A

Supported

For a $180M company with 8 legal entities across the US and Canada, Sage Intacct's native Global Consolidations module directly addresses the real-time consolidation requirement. The architecture works as follows: each legal entity maintains its own sub-ledger within a shared dimensional framework, and a consolidation book is configured once with entity membership, a designated elimination entity, currency translation rules (USD/CAD), and intercompany elimination account mappings. When the controller needs a consolidated view, they trigger 'Run consolidation' on demand from the Consolidation menu; the system processes only new, modified, or deleted transactions since the last run, leaving unchanged transactions unprocessed, which means runs complete in minutes rather than hours. Intercompany receivable and payable balances are automatically eliminated in the single reporting currency of the consolidation book, replacing the manual spreadsheet eliminations that currently drive the buyer's 12-day close. Automatically computed OANDA live exchange rates eliminate the need for manual exchange rate management, handling the USD/CAD translation requirement. Other Sage Intacct subscriptions automatically post transactions to the General Ledger in real-time, meaning sub-ledger data (AP, AR, expenses) is always current when the consolidation run is triggered. Financial reports can then be run directly from the consolidation books to produce consolidated financial statements.

Limitations

For the buyer's multi-currency scenario (USD entities plus CAD entities), consolidated statements are not updated purely at query time: the controller must trigger a consolidation run before reports reflect transactions posted since the last run. This is on-demand and completes in minutes, so it satisfies the 'not batch/overnight' requirement, but it does mean the consolidated P&L is current as of the last run, not the last posted transaction. For same-currency domestic entities only, dimensional roll-up reporting at the top-level entity can reflect live data without a separate run step.

Based on

  • Manage all your entities in a single system. Get a global view and drill into any entity in real-time. Consolidate 100s of entities across currencies and geographies in minutes, not days. (hub, body) source
  • Get AI-powered accounting with real-time visibility across your full operation in one single source. (hub, hero) source
Was this accurate?

Are you from Sage Intacct?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

OdooPartially supported · 82% fit · Grade A

Partial

For a $180M company migrating from QuickBooks with 8 legal entities across the US and Canada, Odoo addresses this requirement through its native Consolidation module introduced in v18/v19, running against a single shared PostgreSQL database. Financial reports are available and updated in real-time, meaning there is no scheduled ETL or overnight batch job: when the controller selects all entities in the multi-company selector and opens the consolidating parent's view, the system queries live sub-ledger data on demand. Multi-Ledgers are fundamental to consolidation: each company has its own regular ledger recording day-to-day transactions, while the consolidating company holds a special multi-ledger that includes all subsidiaries' consolidation adjustment journals. Account mapping allows similar accounts from different companies to be combined correctly in consolidated reports. Intercompany transaction automation (auto-generated mirror journal entries at posting time) feeds into this architecture: the Inter-Company Transactions feature allows one company to sell or purchase from another within the same database, with counterpart documents for orders and invoices automatically generated and synchronized. The glass ceiling, however, is the elimination mechanism: rather than generating formal double-entry elimination postings at group level, Odoo's approach isolates intercompany entries in dedicated journals and excludes them from the consolidation multi-ledger view. Odoo supports multi-company, multi-currency, and basic consolidation including account mapping and group-level reporting, but when it comes to advanced consolidation requirements like intercompany eliminations (revenue/cost, dividends, intra-profit), the native tooling falls short. This is a material gap for a buyer explicitly targeting audited financials within 12 months.

Limitations

The real-time query architecture satisfies the 'not batch/overnight' requirement for this buyer's 8-entity setup, provided all entities are in one Odoo database instance. However, intercompany elimination is handled through journal exclusion and account mapping rather than formal double-entry elimination postings, which means consolidated statements may not meet the audit-grade presentation standards the buyer's board is demanding within 12 months; achieving that level would require custom development or a third-party consolidation layer.

Was this accurate?

Are you from Odoo?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

XeroNot supported · 98% fit · Grade A

Not Supported

This buyer operates 8 legal entities across the US and Canada and needs consolidated financials available on-demand, not on a batch schedule. Xero's architecture is fundamentally incompatible with that requirement: when a new organization is added, Xero creates an entirely separate database for that entity, and each organization is an isolated instance with its own chart of accounts and data; consolidation happens outside the system, either through reporting tools like Fathom or through manual spreadsheet work. Out of the box, Xero doesn't have any native consolidation features. To produce consolidated statements today, a user must manually export entity-level P&L, balance sheet, and cash flow reports from each organization, paste them into Excel, map divergent chart-of-accounts structures, and manually execute intercompany eliminations — a workflow that mirrors exactly what this buyer's controller is already doing in QuickBooks. Xero's own product team has acknowledged the need for consolidated reporting but confirmed that work on developing it is not currently planned, directing users to Xero App Store partners instead. Third-party apps such as Joiin, Fathom, Spotlight Reporting, Syft Analytics, and Translucent exist in the Xero marketplace, but native Xero doesn't support consolidation, so a third-party consolidation app must be chosen and each Xero organization connected separately — and most consolidation tools allow automated report delivery on a scheduled basis, which reintroduces the batch lag the buyer explicitly wants to eliminate.

Limitations

Xero doesn't offer native consolidation features; to produce group statements a user must export reports from each organization manually, combine them in Excel, and handle eliminations independently, or use an automated third-party solution. For an 8-entity business with a real-time mandate and an audit-readiness deadline, this is a structural ceiling: even the best Xero App Store consolidation add-ons operate as separate subscription layers that pull data on a sync schedule rather than querying a shared ledger on demand.

Was this accurate?

Are you from Xero?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

Important · SSO via Azure Active Directory

Sage Intacct: SupportedOdoo: Partial

SummarySage Intacct supports this: For a $180M multi-entity company already running Azure Active Directory (now Microsoft Entra ID) for identity management, Sage Intacct delivers native SAML 2.0-based SSO through a dedicated integration path. Odoo partially supports this: For a 320-employee, 8-entity organization preparing for audited financials, Odoo provides a native OAuth 2.0 / OpenID Connect integration with Microsoft Entra ID (Azure Active Directory), documented in official help across versions 14 through 19.

Sage IntacctSupported · 93% fit · Grade A

Supported

For a $180M multi-entity company already running Azure Active Directory (now Microsoft Entra ID) for identity management, Sage Intacct delivers native SAML 2.0-based SSO through a dedicated integration path. SSO with Entra ID requires specific configuration settings; the admin enables it on the Company Information page, and Intacct uses those settings to establish a direct connection between the company and Entra ID. Sage Intacct is listed as a pre-built application in the Microsoft Entra gallery, which simplifies setup: to configure the integration, an IT admin adds Sage Intacct from the gallery to the list of managed SaaS apps in the Entra admin center. Sage Intacct supports IDP-initiated SSO, meaning users can launch Intacct directly from the Microsoft My Apps portal without re-entering credentials. When SSO is enabled, the admin can individually require users to use SSO; once configured, that user can no longer log in with a password and must authenticate through the Entra ID identity provider. The glass ceiling for this buyer is automated user lifecycle management: Sage Intacct does not expose a native SCIM 2.0 endpoint, so automated SCIM provisioning from Azure AD requires a third-party connector or a custom integration built on Intacct's XML API.

Limitations

Okta and Entra ID integrations support SAML SSO only; automated provisioning requires a custom integration built on the XML API or a third-party connector, meaning offboarding a departing employee in Azure AD will not automatically deprovision their Intacct account, creating a manual security step for this 320-person organization. Additionally, users must log in from a computer that has access to the SSO system, and SSO login from mobile devices is not currently supported.

Was this accurate?

Are you from Sage Intacct?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

OdooPartially supported · 82% fit · Grade A

Partial

For a 320-employee, 8-entity organization preparing for audited financials, Odoo provides a native OAuth 2.0 / OpenID Connect integration with Microsoft Entra ID (Azure Active Directory), documented in official help across versions 14 through 19. An admin registers an application in the Azure portal under Microsoft Entra ID, then copies the OAuth 2.0 Client ID and authorization endpoint (v2) into Odoo's Settings > Integrations > OAuth Authentication module, scoping the token for openid, profile, and email via Microsoft Graph. Integrating the Microsoft sign-in function requires configuration on both Microsoft and Odoo: the admin activates developer mode, navigates to Settings > Technical > System Parameters, and adds the auth_oauth.authorization_header key. Odoo needs permission to read the signed-in user's profile information from Microsoft Graph during the OAuth flow; at minimum, the delegated permission User.Read must be granted on the Azure app registration, otherwise the login process may fail. This is particularly helpful if the organization uses Azure Workspace and wants employees to connect to Odoo using their Microsoft accounts. However, SCIM user provisioning is not natively available in Odoo: the only known SCIM provisioning solution is a third-party miniOrange plugin, meaning automated user lifecycle management from Azure AD must be handled outside the core product. SAML 2.0 (as distinct from OAuth/OIDC) is available only through the OCA community module `auth_saml`, which is maintained by the Odoo Community Association, a nonprofit supporting collaborative Odoo development, not as a first-party Odoo Enterprise feature.

Limitations

The native mechanism is OAuth 2.0 / OIDC, not SAML 2.0, which may not satisfy stricter enterprise IdP policies that require SAML federation; more critically, there is no native SCIM provisioning, so user deprovisioning across this buyer's 8 entities remains manual, creating an offboarding security risk that is material for a company pursuing audited financials. Additionally, for a user to log in to Odoo using Microsoft Azure, the user must first access the Odoo password reset page, which is the only way Odoo can link the Microsoft Azure account, adding friction to the initial onboarding of all 320 employees.

Was this accurate?

Are you from Odoo?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

Important · Guaranteed 99.5%+ uptime SLA with defined severity levels and response times

Sage Intacct: SupportedOdoo: PartialXero: Not supported

SummarySage Intacct supports this: For a $180M professional services company moving toward audited financials, Sage Intacct's 'Buy with Confidence' program is the governing contractual SLA. Odoo partially supports this: This $180M company preparing for its first audit needs a vendor-backed uptime guarantee and tiered incident response commitments it can rely on for month-end close deadlines. Xero does not support this: For a $180M company preparing for audited financials and needing a contractually backed 99.5%+ uptime SLA with defined severity levels and response times, Xero offers no such mechanism.

Sage IntacctSupported · 85% fit · Evidence: insufficient

Supported
?

For a $180M professional services company moving toward audited financials, Sage Intacct's 'Buy with Confidence' program is the governing contractual SLA. The program commits to 24x7 availability and triggers service credits for any month in which uptime falls below 99.8%, paying 10% of that month's subscription fees per percentage point below the threshold, up to 50% of monthly fees. This contractually backed 99.8% uptime guarantee exceeds the buyer's 99.5% requirement. The SLA also documents a published weekly 4-hour scheduled maintenance window (excluded from the availability calculation), with extended maintenance capped at 8 hours per week and 48-hour advance notice for planned extended windows. On the support-severity side, Sage's Buy with Confidence datasheet identifies issue categories by severity (critical system unavailability, major function impairment, minor/intermittent issues) with differentiated response and resolution targets: critical issues receive continuous work-to-resolution with a 4-hour average resolution goal, while major function issues require a workaround within 24 hours and a correction plan within 5 business days. A real-time status page at status.sage.com provides incident monitoring and subscription-based outage alerts.

Limitations

Scheduled maintenance time is explicitly excluded from Sage's uptime calculation, meaning the buyer's effective availability window is narrower than the headline 99.8% figure when quarterly release windows fall during business hours. Buyers implementing through a reseller partner rather than Sage directly should confirm in writing that direct Sage support is accessible, as Sage's own partner channel structure means direct vendor support may not be readily available for partner-implemented accounts.

Was this accurate?

Are you from Sage Intacct?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

OdooPartially supported · 92% fit · Grade A

Partial

This $180M company preparing for its first audit needs a vendor-backed uptime guarantee and tiered incident response commitments it can rely on for month-end close deadlines. Odoo publishes a Cloud SLA page that states a 99.9% monthly uptime target for Odoo Online (SaaS), hosted in Tier-III certified data centers with N+1 redundancy and near-real-time database replication for failover. However, the page carries an explicit footnote: "these uptime and recovery objectives are defined based on our infrastructure's design and operational goals" and are "not legally binding guarantees." The Odoo Enterprise Subscription Agreement references the same 99.9% network uptime figure and directs customers to the cloud-sla page for details, but the agreement itself does not contain service credit provisions, breach remedies, or defined severity tiers (P1/P2/P3) with response time windows. Support under the Enterprise agreement covers unlimited tickets for bugs and standard feature guidance via web form or phone subject to local business hours; Odoo's Success Pack model (prepaid consulting hours) handles customization support separately. No Odoo SA-published document defines tiered severity classifications with contractual initial response or resolution time targets.

Limitations

The buyer cannot obtain a contractually enforceable uptime guarantee with service credits directly from Odoo SA; the published 99.9% target is explicitly non-binding, and the support model lacks a published P1/P2 severity framework with defined response windows, which creates material risk for an organization planning its first audit with hard month-end close deadlines. Third-party Odoo hosting partners (e.g., OEC.sh) do offer binding SLAs with severity tiers and credits, but that introduces a multi-vendor support boundary that the buyer must evaluate separately.

Was this accurate?

Are you from Odoo?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

XeroNot supported · 97% fit · Grade A

Not Supported

For a $180M company preparing for audited financials and needing a contractually backed 99.5%+ uptime SLA with defined severity levels and response times, Xero offers no such mechanism. Xero's standard subscriber agreement explicitly provides services on an 'as is' basis with no uptime commitment: the Terms of Use state that services are 'made available to you on an "as is" basis,' and the developer platform terms similarly disclaim 'continuous operation.' Xero does operate a public status page at status.xero.com for real-time incident visibility, but this is a transparency tool only; it is not backed by any contractual uptime percentage, service credits, tiered P1/P2/P3 severity classifications, or defined initial response or resolution time windows. No enterprise or premium support tier offering financially-backed SLA guarantees was found in any Xero documentation.

Limitations

Xero cannot provide the legally binding uptime guarantee, severity tiering, or response/resolution time commitments this buyer needs to satisfy auditors or demonstrate operational reliability for 8 legal entities; there is no negotiable enterprise SLA path available in Xero's standard commercial model. Third-party monitoring data has observed Xero's 30-day uptime as low as 86.87% against a stated 99.9% aspirational target, with no contractual remedy available to subscribers when that target is missed.

Was this accurate?

Are you from Xero?

Dispute inaccuracies, add missing context, upload documentation, and keep your product data current. Your responses appear directly on the report and improve future evaluations.

Claim & Respond

Have your own requirements?

Upload an RFP or describe your process, and get a structured comparison tailored to your specific needs.