Share this
Tableau Extract Refresh Every 15 Minutes: Practical Strategies For Enterprise BI
by Bobbie Ann Grant on Apr 28, 2026 8:15:01 AM
Every 15 minutes can feel like an eternity when executives are staring at dashboards that drive real-time decisions. As more of our operations, customer interactions, and revenue streams become data-driven, the pressure builds: "Can't we just refresh our Tableau extract every 15 minutes and call it real-time?"
Technically, we often can. Operationally and financially, it's not that simple.
In this text, we'll walk through what it really takes to run a Tableau extract refresh every 15 minutes in an enterprise environment: the limits of Tableau's scheduling engine, how to design extracts for short cycles, how to orchestrate refreshes with enterprise schedulers like ATRS from ChristianSteven, and when we should stop pushing extracts and move to live connections or hybrid setups instead.
Understanding Tableau Extract Refresh Capabilities And Limits
How Tableau Extracts Work In Server And Cloud Environments
Tableau extracts are columnar, compressed snapshots of our data sources. On Tableau Server or Tableau Cloud, those extracts sit on the server, and backgrounder processes handle refresh jobs according to the schedules we define.
At a high level, a refresh job:
- Connects to the underlying data source
- Runs the extract query (full or incremental)
- Writes the updated extract file
- Updates any dependent workbooks or data sources
In Server and Cloud, backgrounders are shared across all scheduled tasks: extract refreshes, subscriptions, flows, and more. That shared capacity is where the real constraint lives. When we ask for 15‑minute refreshes, we're not just changing a setting: we're committing a slice of backgrounder capacity every 15 minutes, potentially for hundreds of workbooks.
If we don't design for that, we end up with queues, stacked jobs, and users seeing yesterday's data while they expect near–real-time insight.
Supported Refresh Frequencies Versus Near–Real-Time Needs
Tableau's native scheduling allows short intervals (as low as every 15 minutes) on Tableau Server, depending on version and configuration. Tableau Cloud is more opinionated and often restricts very aggressive schedules or throttles based on load.
Just because the UI lets us choose "every 15 minutes" doesn't mean it's always a good idea. We need to weigh:
- Source system load – Are we hammering the data warehouse or the transaction system every 15 minutes?
- Job duration – If a refresh takes 12 minutes, a 15‑minute schedule is effectively continuous.
- Concurrency – How many other extracts are fighting for the same backgrounders at the same time window?
- Business value – Does the dashboard actually need sub‑hour freshness, or are we over-engineering?
Other BI platforms face the same reality. Even in tools like Power BI, which Microsoft positions as a unified, self-service and enterprise BI platform, there are similar tradeoffs between refresh frequency, capacity, and governance.
When A 15-Minute Extract Refresh Actually Makes Sense
A 15‑minute Tableau extract refresh cadence tends to be justified in a few clear enterprise scenarios:
- Operational monitoring – Contact center performance, logistics tracking, production line metrics, or fraud signals where teams act within minutes.
- Digital product analytics – Live campaign monitoring, user behavior tracking, or revenue dashboards tied to web/app activity.
- Critical SLAs – Situations where we've promised stakeholders, or even customers, that KPIs update at least every 15 or 30 minutes.
On the other hand, a 15‑minute schedule is usually overkill for:
- Monthly/quarterly financials
- HR headcount reports
- Static compliance dashboards
The rule we use internally: if no one is going to change a decision in the next hour, the dashboard probably doesn't need a 15‑minute refresh.
Designing Extracts For High-Frequency Refresh
Choosing Between Full And Incremental Extracts
For 15‑minute cycles, we almost always start with incremental extracts:
- Full refresh: Rebuilds the entire extract each time. Simple, but expensive and often too slow.
- Incremental refresh: Only pulls new rows (based on a key column, like CreatedDate). Much faster and lighter.
Incremental is ideal for append-only or mostly append-only tables: event logs, fact tables with a timestamp, transaction histories. But we have to account for:
- Updates & deletes – Incremental extracts don't automatically handle changed or deleted records. We may need:
- A periodic full refresh (nightly/weekly) to clean things up
- Soft-delete flags or change data capture logic in the source
- Watermarks – The incremental key must be stable and monotonic (not reused or changed).
A common pattern is:
- Incremental refresh every 15 minutes during business hours
- Full refresh once per night (or per week) to avoid drift and fragmentation.
Optimizing Data Sources And Queries For Fast Refresh Cycles
A "slow" extract that runs once a day might be tolerable. The same extract running every 15 minutes will bring systems to their knees.
We focus on:
- Pre-aggregating upstream – Let the warehouse or ETL job roll up data to the grain the dashboard actually needs, instead of asking Tableau to process millions of rows per refresh.
- Targeted views – Use database views that present exactly the columns and filters required by the dashboard.
- Predicate pushdown – Ensure filters are applied by the source database, not post-processed in Tableau.
- Indexing – Add or tune indexes on incremental key columns and join keys.
In other words, the goal isn't just "make Tableau faster": it's design the whole pipeline so the 15‑minute window is realistic.
Managing Extract Size, Partitions, And Data Retention Windows
We don't want a 5‑year history in a 15‑minute refresh extract unless the dashboard truly needs it. Size is the silent killer of frequent refreshes.
Strategies that help:
- Data retention windows – Keep only what's required for decision-making. For operational dashboards, this might be 30–90 days, with older data moved to a separate historical workbook.
- Partitioning by time – Partitioned tables in the data warehouse can make incremental refreshes much faster, especially if our filters align with partition keys.
- Separate "hot" and "cold" datasets – Use a smaller, frequently refreshed extract for current data and a larger, infrequently refreshed extract for history, then blend or join at the dashboard level.
Getting this right often turns a 20‑minute extract into a 3‑minute job, which is the difference between "nice idea" and "stable production schedule."
Configuring A 15-Minute Extract Refresh In Tableau
Scheduling Frequent Extract Refreshes In Tableau Server And Tableau Cloud
On Tableau Server, setting up a 15‑minute schedule is straightforward:
- Publish the data source or workbook with an extract.
- Go to Schedules in the admin panel.
- Create or modify a schedule with a 15‑minute interval (where supported by your version and policy).
- Attach the extract refresh task to that schedule.
In Tableau Cloud, we often work within more constrained schedule options and potential throttling. That's where we start thinking about:
- Staggering refreshes so not all jobs fire on the quarter-hour
- Splitting a single heavy extract into multiple lighter extracts
- Being selective, only mission-critical content gets the 15‑minute treatment
Coordinating Multiple Extracts, Dependencies, And Job Priority
In any sizable deployment, one extract rarely lives alone. We end up with chains:
- Warehouse load finishes
- Core conformed data sources refresh
- Subject-area extracts (sales, finance, operations) refresh
- Downstream dashboards rely on each of those
If we schedule everything naively at the same time, we get contention and stale dependencies. Instead, we:
- Define dependencies (directly in Tableau where possible, or externally via an enterprise scheduler)
- Use separate schedules for different SLAs, 15 minutes for operational, 60 minutes for tactical, daily for strategic
- Reserve higher priority backgrounders for the tightest SLAs
This is where we start to outgrow purely in-Tableau scheduling and look to external orchestrators.
Monitoring Refresh Status, Failures, And Performance Impact
A 15‑minute schedule ups the odds that something will fail, network blips, source locks, credential issues. We can't afford to find out from executives.
We recommend:
- Reviewing Admin Views regularly to spot slow and failing jobs
- Setting up alerts (email, Teams, Slack) when specific high-priority extracts fail
- Tracking average refresh duration and concurrency over time to catch trends
Orchestrating Short-Interval Refresh With Enterprise Schedulers
Using External Job Schedulers And APIs To Trigger Tableau Refreshes
When our data landscape includes multiple warehouses, ETL tools, and line-of-business systems, native Tableau scheduling often isn't enough. We need orchestration.
This is where an enterprise scheduler like ATRS software from ChristianSteven becomes valuable. ATRS can:
- Call Tableau Server or Tableau Cloud APIs to trigger extract refreshes on demand
- Sequence jobs (ETL → validation → Tableau refresh → report distribution)
- Apply complex calendars, blackout windows, and conditional logic that go beyond Tableau's built-in schedule options
Instead of "refresh this extract every 15 minutes no matter what," we can express richer logic, such as:
"Run the 15‑minute refresh only if the upstream warehouse load has successfully completed and hasn't exceeded its SLA."
That protects us from pointlessly re-querying stale data and avoids piling work on busy systems.
Aligning Tableau Refresh With ETL, Data Warehouse, And Application Loads
The 15‑minute window doesn't exist in isolation: it sits inside a broader data pipeline. With ATRS, we can align Tableau refreshes with upstream activities by:
- Listening for ETL job completion (from tools like SSIS, Informatica, or custom scripts)
- Waiting on signals from cloud warehouses or databases
- Triggering Tableau extracts only after data quality checks pass
Business example: a retail operations team tracks near–real-time store performance. We can configure ATRS to:
- Kick off incremental loads from POS systems every 10 minutes
- Run a quick anomaly-detection script
- Trigger the Tableau extract refresh for the "Store Command Center" workbook
- Notify store managers if key metrics cross thresholds
The result is a tightly coupled pipeline instead of independent jobs hoping to run in the right order.
Handling Credentials, Security, And Governance For Automated Refresh
Frequent refreshes often mean more service accounts, tokens, and cross-system access. We have to get this right.
Key practices include:
- Using least-privilege service accounts for ATRS and Tableau API operations
- Rotating credentials regularly and storing them in secure vaults
- Centralizing scheduling and orchestration ownership so we know who changes what
On the BI side, we've seen organizations apply the same governance rigor they use for other enterprise tools. For example, many teams lean on admin communities like the Power BI forums to benchmark governance practices, then adapt those lessons to Tableau and their broader analytics ecosystem.
Balancing Live Connections Versus Frequent Extract Refresh
When To Prefer Live Connections Over Extracts
If we push extract refresh frequency hard enough, we eventually reinvent live connections with extra steps. At that point, we should ask: why not go live?
Live connections shine when:
- The source system is built for analytic workloads (modern cloud warehouses, scalable MPP databases)
- We need genuine real-time or near–real-time views (seconds, not minutes)
- Data volumes are large and changing rapidly
Extracts remain preferable when:
- Source systems are fragile, slow, or operational (we don't want a dashboard query slowing down production)
- We need offline capabilities or consistent point-in-time snapshots
- We must enforce row-level security in ways that are easier to manage in Tableau extracts
Often, 15‑minute extracts sit in the middle: not truly real-time, but fresher than daily. At scale, though, we have to ensure we're not masking a design that really wants a live model.
Hybrid Approaches: Mixed Dashboards And Tiered SLAs
Many enterprises do best with a hybrid strategy:
- Tier 1 (critical) – True real-time or sub‑minute data via live connections
- Tier 2 (operational) – 15–60 minute extract refreshes
- Tier 3 (analytical/strategic) – Daily or weekly refreshes
We can even mix these tiers within a single dashboard: a live tile for current queue length, a 15‑minute extract for intraday trends, and a nightly extract for historical context.
From a reporting standpoint, this is where ATRS from ChristianSteven can again help, coordinating different refresh cadences and downstream report deliveries (emails, file drops, or portal updates) so stakeholders get data on the schedule that matches their decisions.
Cost, Infrastructure, And Licensing Considerations
A 15‑minute refresh strategy isn't free:
- Infrastructure – More backgrounder nodes, more database capacity, more network utilization
- Licensing – Tableau Server and Cloud SKUs, warehouse compute, possibly additional ATRS capabilities for orchestration
- Operations – Admin time, monitoring, troubleshooting
We've seen organizations justify these costs very clearly, for example, a logistics provider that reduced delayed shipments by catching exceptions within 10–20 minutes. We've also seen others roll back from aggressive schedules after realizing the business impact didn't warrant the continuous load.
Our recommendation: model the total cost of ownership of your 15‑minute refresh strategy and tie it directly to specific business outcomes (faster decisions, avoided losses, SLA compliance).
Best Practices For Reliable 15-Minute Tableau Extract Refreshes
Capacity Planning And Backgrounder Configuration
We can't treat 15‑minute schedules as "just another job." We need deliberate capacity planning:
- Benchmark – Measure current extract durations and concurrency before turning up frequency.
- Scale backgrounders – Add nodes or reallocate processes so critical jobs have enough throughput.
- Isolate workloads – Use separate backgrounder pools for high-frequency extracts versus batch jobs.
Then, run load tests that simulate peak usage, especially at times when both ETL and Tableau refreshes are active.
Error Handling, Alerting, And Retry Strategies
At 15‑minute intervals, occasional failures are inevitable. The question is how gracefully we recover.
We've found these patterns effective:
- Automatic retries with short delays for transient errors (network hiccups, brief locks)
- Escalation rules, for example, if a critical extract fails three times in a row, notify on-call support
- Fallback behavior, define what the dashboard should show if the latest refresh isn't available (e.g., clearly marked stale data rather than broken views)
ATRS software fits naturally here by managing these retry policies and alerts across systems, not just within Tableau. It can, for example, rerun a failed ETL job, then retrigger the Tableau extract refresh, and finally send a summary email to the data operations team when everything's back on track.
Documenting Schedules And Communicating Data Freshness To Stakeholders
Finally, we need to set expectations. A 15‑minute refresh cadence is only valuable if users understand what it means.
Best practices include:
- Documenting SLAs – For each major dashboard, clearly state the target refresh frequency and expected latency from source to screen.
- Surfacing freshness – Show "Data last updated" timestamps prominently in key dashboards.
- Providing runbooks – Document what to check when a dashboard looks stale: Tableau status, ATRS schedule status, warehouse load, and so on.
This turns the 15‑minute promise into something tangible and trustworthy for executives and front-line teams alike.
Conclusion
Refreshing a Tableau extract every 15 minutes is absolutely achievable at enterprise scale, but only when we treat it as a full data engineering and orchestration problem, not just a Tableau setting.
If we design lean extracts, align refreshes with upstream data loads, right-size our backgrounder capacity, and use an enterprise scheduler like ATRS from ChristianSteven to coordinate the moving pieces, we can deliver near–real-time insights without burning out our infrastructure.
The next step is to identify where a 15‑minute cadence truly moves the needle, then pilot those use cases first. From there, we can grow a disciplined, tiered refresh strategy that gives the business the speed it needs, with the reliability it expects.
Key Takeaways
- Running a Tableau extract refresh every 15 minutes is technically possible but requires careful capacity planning, short job durations, and strict prioritization of backgrounder resources.
- High-frequency schedules work best with well-designed incremental extracts, lean data models, and tight data retention windows so each refresh finishes comfortably within the 15-minute cycle.
- Enterprise schedulers like ATRS from ChristianSteven should orchestrate the full pipeline—ETL, validation, Tableau refresh, and notifications—rather than relying only on native Tableau scheduling.
- Use a tiered strategy that mixes 15-minute Tableau extract refresh cadences, daily extracts, and live connections so each dashboard’s freshness matches its actual business decision window.
- Treat “Tableau extract refresh every 15 minutes” as an engineering and governance initiative by implementing robust monitoring, alerting, retry policies, and clear data freshness SLAs for stakeholders.
Frequently Asked Questions
How often can I schedule a Tableau extract refresh every 15 minutes on Tableau Server or Tableau Cloud?
On Tableau Server, you can typically schedule extract refreshes as frequently as every 15 minutes, depending on version and admin policies. Tableau Cloud is more restrictive and may throttle or limit very frequent schedules based on load, so only carefully selected, mission‑critical content should use 15‑minute cadences.
When does a Tableau extract refresh every 15 minutes actually make business sense?
A 15‑minute Tableau extract refresh cadence is most appropriate for operational monitoring, digital product analytics, and dashboards tied to strict SLAs where teams act within minutes. If no one will change a decision within the next hour, the added infrastructure and complexity usually aren’t justified.
How should I design extracts for a reliable Tableau extract refresh every 15 minutes?
Design for short, predictable jobs: use incremental extracts against append‑only tables, pre‑aggregate data upstream, and expose only necessary columns via database views. Limit history to recent “hot” data, align filters with database partitions, and keep a separate, slower‑refreshing historical dataset if long‑term trends are needed.
What’s the best way to coordinate Tableau extract refreshes with ETL and data warehouse loads?
Use an enterprise scheduler or orchestration tool to trigger Tableau refreshes only after upstream ETL and warehouse loads complete successfully. Sequence jobs (ETL → validation → Tableau refresh), honor blackout windows, and avoid overlapping heavy workloads to prevent querying stale data or overloading shared backgrounder and database resources.
Should I use live connections instead of frequent Tableau extract refreshes for near–real-time dashboards?
If you need sub‑minute or true real‑time data, and your warehouse or database is built for analytic workloads, live connections are usually better. Extracts suit fragile or operational systems, offline needs, or strict snapshotting. If 15‑minute extracts feel like “continuous refresh,” it’s a sign to reconsider live or hybrid models.
How can I monitor and troubleshoot frequent Tableau extract refresh failures?
Regularly review Tableau Admin Views to track refresh duration, failures, and backgrounder load. Configure alerts via email or collaboration tools for high‑priority extracts, implement short automatic retries for transient errors, and define escalation rules. Also surface “last updated” timestamps on dashboards so users immediately see when data is stale.
Share this
- PBRS (198)
- Business Intelligence (185)
- Power BI (181)
- Power BI Reports (176)
- Power BI Reports Scheduler (163)
- IntelliFront BI (127)
- Microsoft Power BI (118)
- Business Intelligence Tools (87)
- Data Analytics (82)
- Dashboards (81)
- Data Analytics Software (81)
- Data Analytics Tools (80)
- Reports (79)
- KPI (78)
- Crystal Reports (37)
- Crystal Reports Scheduler (36)
- SSRS (33)
- Tableau Report Automation (29)
- ATRS (27)
- CRD (25)
- SSRS Reports (25)
- SSRS Reports Scheduler (25)
- Tableau Report Scheduler (25)
- SSRS Reports Automation (23)
- Power BI Report Scheduler (22)
- Power BI report automation (21)
- Tableau Report Export (19)
- Tableau report (19)
- Tableau (18)
- Power BI scheduling tools (17)
- Schedule Tableau reports (17)
- Automated Tableau Workflows (11)
- Crystal Reports Server (10)
- KPI software (10)
- Business Analytics (9)
- Bi dashboard (8)
- Power BI Dashboards (8)
- Tutorial (8)
- Power BI to CSV (7)
- Power BI to Excel (7)
- Crystal Reports automation (6)
- Tableau scheduled reports (6)
- business intelligence reports (6)
- business intelligence software (5)
- business reporting portal (5)
- data analytics solutions (4)
- scheduling Power BI reports (4)
- share power bi reports (4)
- ATRS Release (3)
- ChristianSteven (3)
- Dynamic Power BI reports (3)
- KPIs (3)
- Reporting (3)
- Tableau Automation Tools (3)
- Tableau user permissions (3)
- bi dashboard solution (3)
- business intelligence for finance department (3)
- tableau dashboards (3)
- tools for business intelligence (3)
- BI, data exploration (2)
- Best Tableau charts (2)
- CRD software (2)
- Data-driven scheduling (2)
- PBRS Release (2)
- Report automation (2)
- Self-Service Data Analytics Tools (2)
- TSC API Integration (2)
- Tabcmd Scripting (2)
- Tableau charts (2)
- Tableau data optimization (2)
- Tableau financial reporting (2)
- best tableau dashboards (2)
- centralized BI platform (2)
- crystal reports software (2)
- data analytics product (2)
- key performance indicators (2)
- power bi email subscriptions (2)
- power bi refresh (2)
- schedule power bi reports (2)
- tableau extensions (2)
- tableau software (2)
- Advanced DAX Power BI (1)
- Automated report delivery (1)
- Automated reporting trigger (1)
- Business Intelligence Solutions (1)
- CRD automation features (1)
- Conditional report distribution (1)
- Conditional report generation (1)
- DAX optimization techniques (1)
- Data Driven Schedules (1)
- Data Visualization Skills (1)
- Dynamic report generation (1)
- Free Tableau License (1)
- GH1 (1)
- Power BI calculation groups (1)
- Scheduled report distribution (1)
- Static Power BI Report (1)
- Tableau Public Projects (1)
- Tableau access levels (1)
- Tableau financial dashboard (1)
- Tableau for Students (1)
- Tableau for finance (1)
- Tableau guide (1)
- Tableau images (1)
- Tableau permissions (1)
- Tableau server multi-factor authentication (1)
- Types of Tableau charts (1)
- ad-hoc reporting (1)
- automated distribution (1)
- automation in power bi (1)
- batch reporting (1)
- benefits of automation in power BI (1)
- bi data (1)
- bi roi (1)
- business intelligence implementation challenges (1)
- construct bi reports with power bi (1)
- construction bi (1)
- creating tableau dashboards (1)
- crysyal reports distribution (1)
- dashboard software (1)
- data analytics business intelligence difference (1)
- data analytics techniques (1)
- databest practices (1)
- distribute power bi report (1)
- email power bi (1)
- enterprise bi server (1)
- enterprise bi software (1)
- enterprise reporting strategy (1)
- export tableau to Excel (1)
- hospital business intelligence (1)
- how to save tableau workbook (1)
- images in Tableau (1)
- incisive analytics (1)
- intuitive business intelligence (1)
- kpi dashboard (1)
- on-prem BI report (1)
- on-premises (1)
- power BI exporting (1)
- power bi emails to share reports (1)
- power bi for construction project (1)
- power bi gateway (1)
- power bi healthcare (1)
- print power bi report (1)
- real estate business intelligence (1)
- reducing reporting noise (1)
- retail BI report (1)
- retail KPI (1)
- sap crystal reporting (1)
- sap crystal reports (1)
- save tableau workbook with data (1)
- schedule power bi (1)
- scheduled power bi emails (1)
- scheduled reports (1)
- share power BI reports by email (1)
- share your Power BI reports as PDF (1)
- stories in tableau (1)
- tableau add-ons (1)
- tableau data export (1)
- tableau for Excel (1)
- tableau mobile (1)
- tableau mobile app (1)
- tableau multi-factor authentication (1)
- tableau plugin (1)
- tableau story (1)
- tableau story example (1)
- tableau storytelling (1)
- tableau workbook (1)
- tableau workbooks (1)
- time intelligence DAX best practices (1)
- use drop box to share Power BI Reports (1)
- user-friendly analytics (1)
- what is Tableau (1)
- what is Tableau software used for (1)
- April 2026 (23)
- March 2026 (18)
- February 2026 (9)
- January 2026 (4)
- December 2025 (1)
- November 2025 (4)
- October 2025 (5)
- August 2025 (5)
- July 2025 (5)
- June 2025 (4)
- May 2025 (5)
- April 2025 (2)
- March 2025 (6)
- February 2025 (4)
- January 2025 (1)
- October 2024 (1)
- September 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (1)
- January 2024 (1)
- December 2023 (1)
- November 2023 (1)
- October 2023 (2)
- September 2023 (1)
- August 2023 (1)
- July 2023 (1)
- June 2023 (1)
- May 2023 (1)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (1)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (1)
- November 2021 (1)
- October 2021 (2)
- September 2021 (1)
- August 2021 (2)
- July 2021 (1)
- June 2021 (4)
- May 2021 (5)
- April 2021 (3)
- March 2021 (2)
- February 2021 (2)
- January 2021 (2)
- December 2020 (2)
- November 2020 (2)
- September 2020 (8)
- August 2020 (3)
- July 2020 (5)
- June 2020 (11)
- May 2020 (2)
- April 2020 (3)
- March 2020 (2)
- February 2020 (5)
- January 2020 (7)
- December 2019 (9)
- November 2019 (9)
- October 2019 (10)
- September 2019 (5)
- August 2019 (6)
- July 2019 (13)
- June 2019 (8)
- May 2019 (3)
- April 2019 (5)
- March 2019 (4)
- February 2019 (3)
- January 2019 (10)
- December 2018 (2)
- November 2018 (22)
- October 2018 (10)
- September 2018 (12)
- August 2018 (5)
- July 2018 (23)
- June 2018 (29)
- May 2018 (25)
- April 2018 (12)
- March 2018 (22)
- February 2018 (15)
- January 2018 (15)
- December 2017 (6)
- November 2017 (4)
- October 2017 (4)
- September 2017 (4)
- August 2017 (4)
- July 2017 (7)
- June 2017 (12)
- May 2017 (10)
- April 2017 (6)
- March 2017 (10)
- February 2017 (7)
- January 2017 (5)

No Comments Yet
Let us know what you think